新CrackMe160之045 - CrackMe
Delphi2的程序,太老了,只有Delphi Decompiler可以反编译,dede与IDR无法反编译成功, 反编译查看到按键事件入口00425040, 查看代码大概分析算法在00425088 call 004251A0这行,因为下面就有个比较关键跳0042508F cmp edi, esi 其中esi就是系列号,需要转整形,说明是纯数字, edi肯定就是通过用户名计算出来的数值了,看具体算法代码:
004251A0 53 push ebx
004251A1 89C3 mov ebx, eax ; 用户名
004251A3 83FB00 cmp ebx, +$00
004251A6 7413 jz 004251BB
004251A8 B801000000 mov eax, $00000001
004251AD 31C9 xor ecx, ecx ; ecx = 0
004251AF 8A0B mov cl, byte ptr [ebx] ; 取一位用户名
004251B1 80F900 cmp cl, $00 ; 是否最后一位了
004251B4 7405 jz 004251BB
004251B6 F7E1 mul ecx ; eax *= ecx
004251B8 43 inc ebx ; 下一位
004251B9 EBF4 jmp 004251AF
004251BB 25FFFFFF0F and eax, $0FFFFFFF ; 保留后7位
004251C0 5B pop ebx
004251C1 C3 ret
是不是太简单了, OD都不需要上
code = user[0] * user[1} * user[2] ...
code &= 0x0FFFFFFF
就搞定了
示例:
用户名: abc
系列号: (97 * 98 * 99) & 0x0FFFFFFF = 941094
用户名: a
系列号: 97
用户名: 0
系列号: 48
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载
下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~


浙公网安备 33010602011771号