易语言关键是定位事件按钮Call,参照老大们的方法,我再复制一遍!
alt+e----------krnln.fnr-------FF 55 FC=按钮事件
就是OD载入,运行,然后Alt+E,找到krnln.fnr模块,查看代码,然后查找二进制字串FF 55 FC,会看到一个
........
10028ED1 FF75 F0 push dword ptr
10028ED4^ EB DF jmp short 10028EB5
10028ED6 FF55 FC call dword ptr 在这里下断
10028ED9 5F pop edi
10028EDA 5E pop esi
........
再点按钮,程序会断在这里,我们会在OD中看到这个Call的地址,本例中在我的机子上为crackme2.00425CFD,这就是我们PJ的入口关键点了!
可以重载入进程,点注册,从00425CFD往下看,应该不难,本例中都为明码,很简单,真码藏在这里:
...........
0425F21push -1
00425F23push 8
00425F25push 16010014
00425F2Apush 52010001
00425F2Fcall 00426122
00425F34add esp, 10
00425F37mov dword ptr , eax ; 假码
00425F3Amov eax, dword ptr ; 真码
00425F3Dpush eax
00425F3Epush dword ptr
00425F41call 00425C60 ; 不用说,这个就是关键的比对Call了
00425F46add esp, 8
00425F49cmp eax, 0
00425F4Cmov eax, 0
00425F51sete al
00425F54mov dword ptr , eax
00425F57mov ebx, dword ptr
00425F5Atest ebx, ebx
00425F5Cje short 00425F67
00425F5Epush ebx
00425F5Fcall 00426116
00425F64add esp, 4
00425F67cmp dword ptr , 0
00425F6Bje 00425FA6
00425F71push 0
.............
[ 本帖最后由 x80x88 于 2008-8-15 16:47 编辑 ] 再补上第一个crackme的贴图/:012
[ 本帖最后由 x80x88 于 2008-8-15 16:59 编辑 ] 1: i love you chinapyg116307200forzen
2: gogolo**gogolo**gogolo**gogolo**gogolo**gogolo**66frozenlove72frozenlove6Ffrozenlove7Afrozenlove65frozenlove6Efrozenlove
3: hanyu
skygogopyg520chianpyg 第三个crackme的过程,先贴图!/:014
同样是应用前面说过的按钮事件方法,可以跟踪看到程序将注册信息写在注册表里
...........
00411BEBtest eax, eax
00411BEDjnz short 00411BF4
00411BEFmov eax, 0040C16B
00411BF4push eax
00411BF5push 80000004
00411BFApush 0
00411BFCpush 0040C195 ; ASCII "software\microsft\Internet Explorer\Main\new"
00411C01push 80000301
00411C06push 0
00411C08push 3
00411C0Dpush 3
00411C12mov ebx, 6A4
00411C17call 00411D4D
00411C1Cadd esp, 28
00411C1Fmov dword ptr , eax
00411C22push 80000004
00411C27push 0
00411C29mov eax, dword ptr
00411C2Ctest eax, eax
00411C2Ejnz short 00411C35
00411C30mov eax, 0040C16B
00411C35push eax
00411C36push 80000004
00411C3Bpush 0
00411C3Dpush 0040C119 ; ASCII "software\microsft\Internet Explorer\Main\password"
00411C42push 80000301
00411C47push 0
..........
接下来重载程序,用API函数调用RegOpenKeyExA下断,很快又能定位到关键代码:
..........
0041195Eje short 00411969
00411960push ebx
00411961call 00411D47
00411966add esp, 4
00411969pop eax
0041196Amov dword ptr , eax
0041196Dmov eax, dword ptr ; crackme3.0040C103
00411970push eax ; 真码入栈
00411971push dword ptr ; 假码入栈
00411974call 00411831
00411979add esp, 8
0041197Ccmp eax, 0
0041197Fjnz 004119DA
00411985push 0
00411987push 0040C14B
0041198Cpush -1
0041198Epush 8
..........
[ 本帖最后由 x80x88 于 2008-8-15 17:13 编辑 ]
页:
1
[2]