破解HomeWatcher v1.2 第二回合 (6千字)
最先最先得感谢TRW2000的作者朱楠灏和刘涛涛。破解HomeWatcher v1.2 第二回合(转载希望保持完整)
级别:入门级-----前辈们请指点。
软件名称:HomeWatcher
整理
最新版本:1.2 Beta 9
文件大小:968KB
软件授权:共享软件
使用平台:Win95/98/NT
发布公司:Home Page
软件简介:
能够定时拍照,能在景物发生变化时将照片保存下来,然后制作成网页,连接到internet,再通过FTP将照片上传
http://www.newhua.com/down/hw12.exe
第二回合较量。
用TRW2000,看一看能否可以TRACE出它的注册码,当然我个人感觉有一点麻麻地(广东话)。Do my best!
再通看一遍程序(在出现错误窗口的时候)
015F:00413250 MOV CL,[EBX]
015F:00413252 MOV [EDI],CL
015F:00413254 INC DWord Ptr [ESP+08]
015F:00413258 INC EDI
015F:00413259 INC ESI
015F:0041325A INC EBX
015F:0041325B LEA EAX,[ESP+0C]
015F:0041325F PUSH EAX
015F:00413260 CALL 0047B320
^^^^^^^^^^^^^^^^-------------------------->注意这个CALL号
015F:00413265 POP ECX
015F:00413266 CMP EAX,ESI
015F:00413268 JA 00413232
015F:0041326A MOV EDX,[ESP+04]
015F:0041326E LEA EAX,[ESP+70]
015F:00413272 MOV Byte Ptr [ESP+1*EDX+70],00
015F:00413277 MOV ECX,[ESP+08]
015F:0041327B MOV Byte Ptr [ESP+1*ECX+00000084],00
015F:00413283 PUSH EAX
015F:00413284 CALL 0047B320
^^^^^^^^^^^^^^^^-------------------------->又注意这个CALL号
015F:00413289 POP ECX
015F:0041328A CMP EAX,00000011
015F:0041328D JNZ 004132A2----------->不等,KEY就非法
015F:0041328F LEA EDX,[ESP+00000084]
015F:00413296 PUSH EDX
015F:00413297 CALL 0047B320
^^^^^^^^^^^^^^^^-------------------------->又再注意这个CALL号
看来这软件的作者的CALL号一定是47B320
记得哦,去了美国,别忘了CALL他^_^
一定有鬼,去捉鬼好不好!可要带好武器喔!
015F:0041329C POP ECX
015F:0041329D CMP EAX,00000010
015F:004132A0 JZ 004132CC
015F:004132A2 PUSH 00000030
015F:004132A4 PUSH 004A1E35
015F:004132A9 PUSH 004A1E28
015F:004132AE MOV EAX,[ESP+0C]
015F:004132B2 CALL 0045F960
015F:004132B7 PUSH EAX
015F:004132B8 CALL `USER32!MessageBoxA`------出错窗口
想想清楚罗、(远处有一个鬼屋)开了门,就不要往回走罗!好!GO GO 按F8,进入 call 47b320
好象都是黑乎乎的代码!
015F:0047B320 MOV EAX,[ESP+04]------->EAX指向存KEY的地方 用D EAX 可以看到注册码
015F:0047B324 TEST AL,03
015F:0047B326 JNZ 0047B355
015F:0047B328 MOV EDX,[EAX]---------->把前四位,付给EDX,我的是1234。不过你看到是HEX
015F:0047B32A ADD EAX,00000004------->移动KEY的指针,到下四位。
015F:0047B32D MOV ECX,EDX
015F:0047B32F SUB EDX,01010101------->为什么都减1呢??我也不明白.
015F:0047B335 AND EDX,80808080------->为什么都AND 80呢???
015F:0047B33B JZ 0047B328
015F:0047B33D NOT ECX -------> 为什么??
015F:0047B33F AND EDX,ECX --------> 为什么??
经过反复多次的输入KEY值,跟踪、跟踪、再跟踪。我先说这段程序作用-----计算EAX指向的字符串的长度
这段的程序挺有趣的。可以分析一下。
几点TIPS: 1、HEX-01是判断当没有输入值的时候HEX为00
2、AND 80 因为能输入的字符的HEX都是小于80的
3、HEX是输入的键盘的16进制值,比如:'1'--->HEX为31。
015F:0047B341 JZ 0047B328
015F:0047B343 TEST DL,DL
015F:0047B345 JNZ 0047B36F
015F:0047B347 TEST DH,DH
015F:0047B349 JNZ 0047B370
015F:0047B34B TEST EDX,00FF0000
015F:0047B351 JNZ 0047B371
015F:0047B353 JMP 0047B372
015F:0047B355 ADD EAX,00000004
015F:0047B358 TEST Byte Ptr [EAX-04],FF
015F:0047B35C JZ 0047B36F
015F:0047B35E TEST Byte Ptr [EAX-03],FF
015F:0047B362 JZ 0047B370
015F:0047B364 TEST Byte Ptr [EAX-02],FF
015F:0047B368 JZ 0047B371
015F:0047B36A DEC EAX
015F:0047B36B AND AL,FC
015F:0047B36D JMP 0047B328
015F:0047B36F DEC EAX
015F:0047B370 DEC EAX
015F:0047B371 DEC EAX
015F:0047B372 MOV ECX,[ESP+04]
015F:0047B376 DEC EAX
015F:0047B377 SUB EAX,ECX ------->得出Key的长度,确切的说是EAX指向的字符串的长度
015F:0047B379 RET
既然读懂了子程序,再跳回来看它的程序。
015F:00413284 CALL 0047B320
^^^^^^^^^^^^^^^^
015F:00413289 POP ECX
015F:0041328A CMP EAX,00000011
^^^^^^^^------->看来是11位的,错应是0X11
015F:0041328D JNZ 004132A2----------->不等,KEY就说是非法
015F:0041328F LEA EDX,[ESP+00000084]
看来KEY是任意17位,YEAH!!!
试一试,噢,又是Invalid。
再看(眼睛好痛啊!!!)
015F:00413250 MOV CL,[EBX]
015F:00413252 MOV [EDI],CL
015F:00413254 INC DWord Ptr [ESP+08]
015F:00413258 INC EDI
015F:00413259 INC ESI
015F:0041325A INC EBX
015F:0041325B LEA EAX,[ESP+0C]
015F:0041325F PUSH EAX
015F:00413260 CALL 0047B320
^^^^^^^^^^^^^^^^
015F:00413265 POP ECX
015F:00413266 CMP EAX,ESI
015F:00413268 JA 00413232
以上程序是取键入KEY值的奇数位,-----------很容易的,自己去折磨一下,我现在手好累。*_*
015F:0041326A MOV EDX,[ESP+04]
015F:0041326E LEA EAX,[ESP+70]
015F:00413272 MOV Byte Ptr [ESP+1*EDX+70],00
015F:00413277 MOV ECX,[ESP+08]
015F:0041327B MOV Byte Ptr [ESP+1*ECX+00000084],00
015F:00413283 PUSH EAX
015F:00413284 CALL 0047B320
^^^^^^^^^^^^^^^^
015F:00413289 POP ECX
015F:0041328A CMP EAX,00000011
^^^^^^^^^^^^---------->因此KEY值是OX11*2=0X22=34(位)
计算真确,加10000分:)
为了好计算我输入1234567891234567891234567891234567(根据个人爱好)
015F:0041328D JNZ 004132A2----------->不等,KEY就非法
015F:0041328F LEA EDX,[ESP+00000084]
015F:00413296 PUSH EDX
015F:00413297 CALL 0047B320
^^^^^^^^^^^^^^^^---------------
015F:0041329C POP ECX
015F:0041329D CMP EAX,00000010
015F:004132A0 JZ 004132CC
填好后,按确定出现“restar HomeWatcher to apply the changes”,重新启动HomeWatcher,瞧一瞧
好象还是不行。没有关系,CRACK的精神就是一追到底,誓不休。说的远一点,可以培养每个人的坚定不移的
斗志。即使不作CRACKER,追女孩法则之一也是一追到底喔!:))
希望有些收获,我可不管这些,反正,我功力可是增加了3点!!!现在经验值是23点^_^
(待续)
完成时间
2000.2.28 23:08
费时3个小时
