好友
阅读权限40
听众
最后登录1970-1-1
|
CM是什么?Crackme是什么?这是什么东西?楼主发的什么?
他们都是一些公开给别人尝试破解的小程序,制作 Crackme 的人可能是程序员,想测试一下自己的软件保护技术,也可能是一位 Cracker,想挑战一下其它 Cracker 的破解实力,也可能是一些正在学习破解的人,自己编一些小程序给自己破解,KeyGenMe是要求别人做出它的 keygen (序号产生器), ReverseMe 要求别人把它的算法做出逆向分析, UnpackMe 是要求别人把它成功脱壳,本版块禁止回复非技术无关水贴。
1,脱壳
PEID显示:ASPack 2.x (without poly) -> Alexey Solodovnikov [Overlay]
我的笨方法:开始按两次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:[1]
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:[ebp-31F]; |
004014E5|.50pusheax; |Arg2 = 0012F6D5 ASCII "T03852-123"
004014E6|.8D85 E1FDFFFF lea eax, dword ptr ss:[ebp-21F]; |
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:[ebp-39] ; |
00401634|. |50pusheax; |Title = NULL
00401635|. |8D45 D3 lea eax, dword ptr ss:[ebp-2D] ; |
00401638|. |50pusheax; |Text = NULL
00401639|. |FF75 08 push[arg.1]; |hOwner = 00230374 ('TheBigMan's CrackMe #6',class='#32770')
0040163C|. |E8 1B010000 call<jmp.&USER32.MessageBoxA>; \MessageBoxA
关键跳也出来了,将jeshort 1212313.00401682 这里 nop 掉,爆破就成功了。
3,算法
呵呵,o(∩_∩)o...,留个坑! |
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|