玩小生60个CRACKME之第一个
1,脱壳PEID显示:ASPack 2.x (without poly) -> Alexey Solodovnikov
我的笨方法:开始按两次F7进CALL
0040500060pushad
00405001 >E8 03000000 callcrackme6.00405009//F7进去
00405006- E9 EB045D45 jmp 459D54F6
00405007 /EB 04 jmp short crackme6.0040500D
00405009 |5Dpop ebp; kernel32.7C816D4F
0040500A |45inc ebp; crackme6.00405007
0040500B |55pushebp; crackme6.00405007
0040500C |C3retn
0040500D \90nop
0040500EE8 01000000 callcrackme6.00405014//F7进去
一路向下,遇到回跳的光标点击下一行,F4
直到:
004053AF61popad
004053B075 08 jnz short crackme6.004053BA
004053B2B8 01000000 mov eax, 1
004053B7C2 0C00 retn0C
004053BA68 CB114000 pushcrackme6.004011CB
004053BFC3retn//跳向OEP
跳过去看到的是:
004011CB64db64 ;CHAR 'd'
004011CCA1dbA1
004011CD01db01
004011CE00db00
004011CF00db00
很多新手问这个问题,为什么OEP是在数据段,其实不是的,按 ctrl+a 分析,看到变成了:
004011CB .64:A1 01000000 mov eax, dword ptr fs:
004011D1/.55 pushebp
004011D2|.89E5 mov ebp, esp
004011D4|.6A FFpush-1
004011D6|.68 1C204000pushcrackme6.0040201C
004011DB|.68 9A104000pushcrackme6.0040109A
这个壳直接用OD JUMP出来,但是,我在重建输入表时用方式一,则程序无法运行,用方式二则成功。
2,爆破
PEID再次查看:LCC Win32 1.x -> Jacob Navia(lcc-Win32是WINDOWS下的C编译器,由Jacob Navia编写)
OD载入···
右键··搜索··当前模块中的名称(标签)
看到有个GetDlgItemTextA,在它上面下断。
F9运行,用户名写12345,注册码写67890,点cherk,断了下来。
在寄存器窗口还可以看到:
ESI 0040255E ASCII "SHiT ... you entered the correct serial!"
F8跟踪,直到:
004014DE|.50pusheax; /Arg3 = 0012F6D5 ASCII "T03852-123"
004014DF|.8D85 E1FCFFFF lea eax, dword ptr ss:; |
004014E5|.50pusheax; |Arg2 = 0012F6D5 ASCII "T03852-123"
004014E6|.8D85 E1FDFFFF lea eax, dword ptr ss:; |
004014EC|.50pusheax; |Arg1 = 0012F6D5 ASCII "T03852-123"
004014ED|.E8 D0FDFFFF call1212313.004012C2 ; \1212313.004012C2
开始比较,真码T03852-123也出现了。
0040162D|. /74 53 jeshort 1212313.00401682
0040162F|. |6A 40 push40 ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
00401631|. |8D45 C7 lea eax, dword ptr ss: ; |
00401634|. |50pusheax; |Title = NULL
00401635|. |8D45 D3 lea eax, dword ptr ss: ; |
00401638|. |50pusheax; |Text = NULL
00401639|. |FF75 08 push; |hOwner = 00230374 ('TheBigMan's CrackMe #6',class='#32770')
0040163C|. |E8 1B010000 call<jmp.&USER32.MessageBoxA>; \MessageBoxA
关键跳也出来了,将jeshort 1212313.00401682 这里 nop 掉,爆破就成功了。
3,算法
呵呵,o(∩_∩)o...,留个坑! CM在哪里
~~~~~~ 想问问楼主! ; |hOwner = 00230374 ('TheBigMan's CrackMe #6',class='#32770')这些标示是自己写的还是,什么软件搞的看来很不错想学习下!
分析很周到,我还一直在为脱出来的那个壳愁呢 小生有60个CM? 这么强 都是他写的???
页:
[1]