• 标 题:转贴 Ronnier 的 AcqURL 5.1 注册黑名单的破解 (7千字)
  • 作 者:fishs
  • 时 间:2001-5-14 22:52:08
  • 链 接:http://bbs.pediy.com

软件名称:AcqURL 5.1 汉化版
下载地址:http://fishs.guomai.sh.cn/soft/wl/pacqurl51-f.exe (830kb)
软件介绍:很不错的书签工具。
破解目的:用老版本的注册机生成的注册码注册时,过一段时间就会跳出警告框,说检测到一个非法的注册码。
破解工具:W32Dsm89

    用 W32Dsm 反汇编 AcqURL.exe 文件,如果没有破解而使用网上的注册码,点击一个书签后会弹出“XXX(当前用户名) You have been identified...”这样一个对话框,所以,在 W32Dsm 中用查找->查找文本查找 You have been identified,可以找到就一处调用,为了方便说明我把整块相关代码都给抄出来,而找到的地方在这块代码的最后(注意找找哦^_^):

:0051746F E8BCB8EEFF              call 00402D30
:00517474 8BF0                    mov esi, eax
:00517476 81FEBFD8A700            cmp esi, 00A7D8BF
:0051747C 0F8FFD000000            jg 0051757F
:00517482 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"Hex19571"
                                  |
:00517485 BAA0775100              mov edx, 005177A0
:0051748A E8E1CAEEFF              call 00403F70
:0051748F 0F84EA000000            je 0051757F
:00517495 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"$1957197"
                                  |
:00517498 BAB4775100              mov edx, 005177B4
:0051749D E8CECAEEFF              call 00403F70
:005174A2 0F84D7000000            je 0051757F
:005174A8 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"12345432"
                                  |
:005174AB BAC8775100              mov edx, 005177C8
:005174B0 E8BBCAEEFF              call 00403F70
:005174B5 0F84C4000000            je 0051757F
:005174BB 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000323"
                                  |
:005174BE BADC775100              mov edx, 005177DC
:005174C3 E8A8CAEEFF              call 00403F70
:005174C8 0F84B1000000            je 0051757F
:005174CE 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000347"
                                  |
:005174D1 BAF0775100              mov edx, 005177F0
:005174D6 E895CAEEFF              call 00403F70
:005174DB 0F849E000000            je 0051757F
:005174E1 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000360"
                                  |
:005174E4 BA04785100              mov edx, 00517804
:005174E9 E882CAEEFF              call 00403F70
:005174EE 0F848B000000            je 0051757F
:005174F4 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000423"
                                  |
:005174F7 BA18785100              mov edx, 00517818
:005174FC E86FCAEEFF              call 00403F70
:00517501 747C                    je 0051757F
:00517503 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000452"
                                  |
:00517506 BA2C785100              mov edx, 0051782C
:0051750B E860CAEEFF              call 00403F70
:00517510 746D                    je 0051757F
:00517512 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000489"
                                  |
:00517515 BA40785100              mov edx, 00517840
:0051751A E851CAEEFF              call 00403F70
:0051751F 745E                    je 0051757F
:00517521 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000702"
                                  |
:00517524 BA54785100              mov edx, 00517854
:00517529 E842CAEEFF              call 00403F70
:0051752E 744F                    je 0051757F
:00517530 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000703"
                                  |
:00517533 BA68785100              mov edx, 00517868
:00517538 E833CAEEFF              call 00403F70
:0051753D 7440                    je 0051757F
:0051753F 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000893"
                                  |
:00517542 BA7C785100              mov edx, 0051787C
:00517547 E824CAEEFF              call 00403F70
:0051754C 7431                    je 0051757F
:0051754E 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10000931"
                                  |
:00517551 BA90785100              mov edx, 00517890
:00517556 E815CAEEFF              call 00403F70
:0051755B 7422                    je 0051757F
:0051755D 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10001148"
                                  |
:00517560 BAA4785100              mov edx, 005178A4
:00517565 E806CAEEFF              call 00403F70
:0051756A 7413                    je 0051757F
:0051756C 8B45FC                  mov eax, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"10001156"
                                  |
:0051756F BAB8785100              mov edx, 005178B8
:00517574 E8F7C9EEFF              call 00403F70
:00517579 0F85E9010000            jne 00517768

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0051747C(C), :0051748F(C), :005174A2(C), :005174B5(C), :005174C8(C)
|:005174DB(C), :005174EE(C), :00517501(C), :00517510(C), :0051751F(C)
|:0051752E(C), :0051753D(C), :0051754C(C), :0051755B(C), :0051756A(C)
|
:0051757F 8D45F8                  lea eax, dword ptr [ebp-08]
:00517582 8B9398040000            mov edx, dword ptr [ebx+00000498]
:00517588 8B5228                  mov edx, dword ptr [edx+28]
:0051758B E8ECC6EEFF              call 00403C7C
:00517590 8D45F4                  lea eax, dword ptr [ebp-0C]

* Possible StringData Ref from Code Obj ->" You have been identified as someone "
                                        ->"using AcqURL with an ILLEGAL registration "
                                        ->"number!  "
                                  |
:00517593 BACC785100              mov edx, 005178CC
:00517598 E8DFC6EEFF              call 00403C7C
:0051759D 8D45F0                  lea eax, dword ptr [ebp-10]

    看到这里又一大堆跳转点了吧?就是 0051757F 那里,上面有一大堆地方条件跳转到此处,这里往下就是程序处理这些黑名单注册码的代码段了,我就不抄出来了,您看看就清楚了,大概就是修改 REG.DAT,把软件改为 Expired,并在 ACQ.INI 中添上一个 [Check] 段,加入变量 Crack,值为此注册码在黑名单中的序号,把当前书签文件复制到 C:\bdatab.dat,然后破坏当前书签文件等等吧,具体我也看不懂,因为俺不会编程。^O^
    OK, OK, 来看看破解方法,0051757F 的上面,就是 00517579 那里,有一个非零跳转到 00517768,这里 00517768 开始就是正常的启动浏览器打开 URL 的程序段了。那么,找到刚才那一大堆的条件跳转的第一个,就是 0051747C 这里,把原来的 jg 0051757F 改为 jmp 00517768,这样就永远跳过这段处理非法注册码的程序段了。代码这么算:先把目标地址减去指令地址,00517768-0051747C=2EC,由于这条 jmp 指令本身长度为 5,所以再减 5,2EC-5=2E7,这就是相对偏移了。所以把原来的 0F8FFD000000 改为 E9E7020000,E9 是 jmp,后面是相对偏移,字节少一个,补上一个 nop,就是 90,搞定。:)
    嗯,我所理解的就是这样了,因为自己也不会编程,所以都是些自己的理解,如果哪里说错了千万别笑我哦。^_^


Ronnier
http://ronnier.yeah.net/