安装好软件后,进入帮助,点击注册,弹出一个失败窗口,将错误信息记入下来:yourname and registration code do not match please check your name and code then try agagin.
启动w32dasm ,将acdsee32.exe文件反汇编一下,查找上面的出错信息。
记录下汇编出的地址:00407B40
启动od,打开acdsee32.exe,右键,go to ?〉expression ,输入00407B40,在od中没有可疑的call,然后,在该部分的最前方(ret命令后,为什么是ret后,自己想去),抄写地址:00407B37 ,在od中查找,跳转到这个地址的地方,右键,go to ?〉expression ,输入00407B37
,在od中不好找,切换到w32dasm中,查找,找到了,而且只有一处::00407ACA 7E6B jle 00407B37 在od中go to 00407ACA地址,然后往上找,最近的call应该最可疑了,f2 下断点,执行(然后,再进行注册),od挺在断点处。F7跟入,
发现跟入后的代码不像注册计算过程,仔细查找call,发现可疑就跟入看看:
004072F0 /$ 56 PUSH ESI
004072F1 |. 8B7424 08 MOV ESI,DWORD PTR SS:[ESP+8]
004072F5 |. 56 PUSH ESI
004072F6 |. C705 40E04B00 >MOV DWORD PTR DS:[4BE040],0
00407300 |. E8 2B000000 CALL ACDSee32.00407330
00407305 |. 83C4 04 ADD ESP,4
00407308 |. 85C0 TEST EAX,EAX
0040730A |. 75 02 JNZ SHORT ACDSee32.0040730E
0040730C |. 5E POP ESI
0040730D |. C3 RETN
0040730E |> 8B4424 0C MOV EAX,DWORD PTR SS:[ESP+C]
00407312 |. 50 PUSH EAX
00407313 |. 56 PUSH ESI
00407314 |. 68 50E44B00 PUSH ACDSee32.004BE450 ; ASCII "-294378973"
00407319 |. E8 F2BB0300 CALL ACDSee32.00442F10
0040731E |. 83C4 0C ADD ESP,0C
00407321 |. F7D8 NEG EAX
00407323 |. 1BC0 SBB EAX,EAX
00407325 |. 5E POP ESI
00407326 |. F7D8 NEG EAX
00407328 |. A3 40E04B00 MOV DWORD PTR DS:[4BE040],EAX
0040732D \. C3 RETN
最后,发现00407319 |. E8 F2BB0300 CALL ACDSee32.00442F10
处可疑,跟入,代码如下:
00442F10 /$ 8B4C24 08 MOV ECX,DWORD PTR SS:[ESP+8]
00442F14 |. 81EC 84000000 SUB ESP,84
00442F1A |. 8D4424 00 LEA EAX,DWORD PTR SS:[ESP]
00442F1E |. 53 PUSH EBX
00442F1F |. 56 PUSH ESI
00442F20 |. 57 PUSH EDI ; USER32.GetDlgItemTextA
00442F21 |. 50 PUSH EAX
00442F22 |. 51 PUSH ECX
00442F23 |. E8 D8060000 CALL ACDSee32.00443600
00442F28 |. 8D7C24 14 LEA EDI,DWORD PTR SS:[ESP+14]
00442F2C |. 83C9 FF OR ECX,FFFFFFFF
00442F2F |. 33C0 XOR EAX,EAX
00442F31 |. 83C4 08 ADD ESP,8
00442F34 |. F2:AE REPNE SCAS BYTE PTR ES:[EDI]
00442F36 |. F7D1 NOT ECX
00442F38 |. 49 DEC ECX
00442F39 |. B8 ABAAAA2A MOV EAX,2AAAAAAB
00442F3E |. 8BF1 MOV ESI,ECX
00442F40 |. F7EE IMUL ESI
00442F42 |. 8BC2 MOV EAX,EDX
00442F44 |. C1E8 1F SHR EAX,1F
00442F47 |. 8D7C02 01 LEA EDI,DWORD PTR DS:[EDX+EAX+1]
00442F4B |. 33D2 XOR EDX,EDX
00442F4D |. 85F6 TEST ESI,ESI
00442F4F |. 7E 11 JLE SHORT ACDSee32.00442F62
00442F51 |. 33C0 XOR EAX,EAX
00442F53 |> 8A4C04 0C /MOV CL,BYTE PTR SS:[ESP+EAX+C]
00442F57 |. 03C7 |ADD EAX,EDI
00442F59 |. 884C14 38 |MOV BYTE PTR SS:[ESP+EDX+38],CL
00442F5D |. 42 |INC EDX
00442F5E |. 3BC6 |CMP EAX,ESI
00442F60 |.^7C F1 \JL SHORT ACDSee32.00442F53
00442F62 |> 8B8424 9C00000>MOV EAX,DWORD PTR SS:[ESP+9C]
00442F69 |. 8B8C24 9400000>MOV ECX,DWORD PTR SS:[ESP+94]
00442F70 |. C64414 38 00 MOV BYTE PTR SS:[ESP+EDX+38],0
00442F75 |. 8D5424 64 LEA EDX,DWORD PTR SS:[ESP+64]
00442F79 |. 6A 29 PUSH 29
00442F7B |. 52 PUSH EDX
00442F7C |. 50 PUSH EAX
00442F7D |. 51 PUSH ECX
00442F7E |. E8 5D000000 CALL ACDSee32.00442FE0
00442F83 |. 83C4 10 ADD ESP,10
00442F86 |. 8D7424 64 LEA ESI,DWORD PTR SS:[ESP+64]
00442F8A |. 8D4424 38 LEA EAX,DWORD PTR SS:[ESP+38]
00442F8E |> 8A10 /MOV DL,BYTE PTR DS:[EAX]
00442F90 |. 8A1E |MOV BL,BYTE PTR DS:[ESI]
00442F92 |. 8ACA |MOV CL,DL
00442F94 |. 3AD3 |CMP DL,BL
00442F96 |. 75 2F |JNZ SHORT ACDSee32.00442FC7
00442F98 |. 84C9 |TEST CL,CL
00442F9A |. 74 16 |JE SHORT ACDSee32.00442FB2
00442F9C |. 8A50 01 |MOV DL,BYTE PTR DS:[EAX+1]
00442F9F |. 8A5E 01 |MOV BL,BYTE PTR DS:[ESI+1]
00442FA2 |. 8ACA |MOV CL,DL
00442FA4 |. 3AD3 |CMP DL,BL
00442FA6 |. 75 1F |JNZ SHORT ACDSee32.00442FC7
00442FA8 |. 83C0 02 |ADD EAX,2
00442FAB |. 83C6 02 |ADD ESI,2
00442FAE |. 84C9 |TEST CL,CL
00442FB0 |.^75 DC \JNZ SHORT ACDSee32.00442F8E
00442FB2 |> 33C0 XOR EAX,EAX
00442FB4 |. 33C9 XOR ECX,ECX
00442FB6 |. 85C0 TEST EAX,EAX
00442FB8 |. 0F94C1 SETE CL
00442FBB |. 8BC1 MOV EAX,ECX
00442FBD |. 5F POP EDI
00442FBE |. 5E POP ESI
00442FBF |. 5B POP EBX
00442FC0 |. 81C4 84000000 ADD ESP,84
00442FC6 |. C3 RETN
仔细读一下,不要太多的汇编知识,发现下面三处是跳点
00442F96 |. 75 2F |JNZ SHORT ACDSee32.00442FC7
00442FA6 |. 75 1F |JNZ SHORT ACDSee32.00442FC7
00442FB0 |.^75 DC \JNZ SHORT ACDSee32.00442F8E
因为是暴力破解吗,所以将他们改成9090即可,
最后,
打开二进制编辑器,查找8A108A1E8ACA3AD3752F
将752F改成9090 然后向下找 将751F 改成9090 接下来 75DC 改成 9090
完成。
要说明的是:该程序有一处检查输入密码长度,太短是无法通过的,所以在尝试注册时最好在6位以上。
本文只适合初级用户,而且像我一样的汇编不好的人。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!