飘云 发表于 2004-12-12 18:53:09

超级电脑助手 V2004 build 08.15破解分析

【破文标题】超级电脑助手V2004 build 08.15破解分析
【破文作者】飘云
【破解平台】win98th
【作者邮箱】[email protected]
【软件名称】超级电脑助手 V2004 Bulid 0.85
【软件大小】1.04MB
【下载地址】http://laofuzi.3322.net/index.htm
【破解工具】PE-SCAN3.31中文版、W32Dasm10.0汉化版、keymake1.73
【保护方式】序列号
【软件限制】部分功能限制
【破解难度】简单,适合初学者。
【破解目的】学习破解。
【破解声明】我乃小菜鸟一只,偶得一点心得,愿与大家分享:)
【软件介绍】超级电脑助手”软件是一个小巧、实用的电脑辅助软件。
    软件从多方面帮助你更好地运用你的电脑。软件启动后缩成图标并位于任务栏上,可以安全地增强你的电脑功能。软件使用简单,傻瓜式操作。
    本软件主要提供下列功能:桌面时钟,闹钟提醒,网络计时,快捷输入,快捷启动,MP3播放,彩票号码随机选取,系统各类实用信息检测,个性化设置电脑桌面,即时更换桌布,清理垃圾,整理内存,优化IE浏览器,提取图标,抓取图像,万年历等等各种实用个性功能。内容丰富并对注册用户不断添加新的功能。
----------------------------------------------------------------------
【破解分析】首先用PE-SCAN查壳,爽!无壳!打开W32DASM载入程序,在“串是式数据参考”找到“友好提示!”
* Possible StringData Ref from Code Obj ->"谢谢注册,注册成功!"
                                  |
:0055D8E8 B8C0D95500            mov eax, 0055D9C0
:0055D8ED E8926AEEFF            call 00444384
:0055D8F2 EB17                  jmp 0055D90B

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0055D851(C)   ===============>程序从这里跳过来的,找到它(快捷方法:双击鼠标右键)
|

* Possible StringData Ref from Code Obj ->"注册码错误,请重新输入!"   
                                  |
:0055D8F4 B8E0D95500            mov eax, 0055D9E0
:0055D8F9 E8866AEEFF            call 00444384
:0055D8FE 33D2                  xor edx, edx
:0055D900 8B8344030000            mov eax, dword ptr
:0055D906 E8F9D2EEFF            call 0044AC04
======================================================================
我们来到下面:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0055D7C2(C)
|
:0055D7D3 8D55F0                  lea edx, dword ptr
:0055D7D6 8B8344030000            mov eax, dword ptr
:0055D7DC E8F3D3EEFF            call 0044ABD4
:0055D7E1 8B45F0                  mov eax, dword ptr
:0055D7E4 50                      push eax
:0055D7E5 8D55E8                  lea edx, dword ptr
:0055D7E8 8B8348030000            mov eax, dword ptr
:0055D7EE E8E1D3EEFF            call 0044ABD4
:0055D7F3 8B45E8                  mov eax, dword ptr
:0055D7F6 E85DBEEAFF            call 00409658
:0055D7FB B954DB0400            mov ecx, 0004DB54
:0055D800 99                      cdq
:0055D801 F7F9                  idiv ecx
:0055D803 8BC2                  mov eax, edx
:0055D805 8D55EC                  lea edx, dword ptr
:0055D808 E8A7BDEAFF            call 004095B4
:0055D80D 8D45EC                  lea eax, dword ptr
:0055D810 50                      push eax
:0055D811 8D55DC                  lea edx, dword ptr
:0055D814 8B8348030000            mov eax, dword ptr
:0055D81A E8B5D3EEFF            call 0044ABD4
:0055D81F 8B45DC                  mov eax, dword ptr
:0055D822 E831BEEAFF            call 00409658
:0055D827 8D55E0                  lea edx, dword ptr
:0055D82A E85DFBFFFF            call 0055D38C
:0055D82F 8B45E0                  mov eax, dword ptr
:0055D832 E821BEEAFF            call 00409658
:0055D837 8D55E4                  lea edx, dword ptr
:0055D83A E82DFCFFFF            call 0055D46C
:0055D83F 8B55E4                  mov edx, dword ptr
:0055D842 58                      pop eax
:0055D843 E8CC74EAFF            call 00404D14
:0055D848 8B55EC                  mov edx, dword ptr
:0055D84B 58                      pop eax
:0055D84C E8FF75EAFF            call 00404E50 ========>这里是关键CALL!进入!
:0055D851 0F859D000000            jne 0055D8F4 ========>这里跳则 GAME OVER! 爆破则改为 JE
:0055D857 B201                  mov dl, 01
=====================================================================================
进入关键CALL:E8FF75EAFF            call 00404E50
------------------------------------------------------------------------------------------------
:00404E50 53                      push ebx
:00404E51 56                      push esi
:00404E52 57                      push edi
:00404E53 89C6                  mov esi, eax   ========>假码送给EAX   
:00404E55 89D7                  mov edi, edx   ========>真码送给EDX
:00404E57 39D0                  cmp eax, edx   //真假码对比
:00404E59 0F848F000000            je 00404EEE    //相等则跳!   ~_~ 绝对经典的比较哦!
:00404E5F 85F6                  test esi, esi
:00404E61 7468                  je 00404ECB
:00404E63 85FF                  test edi, edi
:00404E65 746B                  je 00404ED2
:00404E67 8B46FC                  mov eax, dword ptr
:00404E6A 8B57FC                  mov edx, dword ptr
:00404E6D 29D0                  sub eax, edx
:00404E6F 7702                  ja 00404E73
:00404E71 01C2                  add edx, eax
=====================================================================================
总结:
   其实不用进入:0055D84C E8FF75EAFF    call 00404E50 也能得到注册码(在TRW2000中设断后,D EDX即可看到真码),我把关键CALL帖出来是让大家看看里面的对比过程,毕竟对初学者有用嘛!
   1、爆破法:将:0055D851 0F859D000000            jne 0055D8F4处的“jne” 改为“je”
   2、注册机:
   中断地址:0055D84C
   中断次数:1
   第一字节:E8
   指令长度:5
   内存方式-寄存器-edx
=====================================================================================
【版权声明】 本文纯属技术交流, 转载请注明作者并保持文章的完整, 谢谢!

viking 发表于 2005-2-15 09:32:41

收起来先。从那么多的Call ,跳里找 关键CALL,关键跳 可不容易。。。

遗忘 发表于 2005-2-15 15:06:15

.........还是看不懂上面的注册码是怎么算出来的....

diyicilai 发表于 2008-9-22 13:18:02

不太明白。收藏了
页: [1]
查看完整版本: 超级电脑助手 V2004 build 08.15破解分析