首页
社区
课程
招聘
[初级会员],暴力破解“ACDSee 32 2.3版”练习
发表于: 2005-6-30 11:12 5598

[初级会员],暴力破解“ACDSee 32 2.3版”练习

2005-6-30 11:12
5598
安装好软件后,进入帮助,点击注册,弹出一个失败窗口,将错误信息记入下来: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位以上。
本文只适合初级用户,而且像我一样的汇编不好的人。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 108
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
OD直接可以修改指令的吧
2005-6-30 11:55
0
游客
登录 | 注册 方可回帖
返回
//