能力值:
(RANK:10 )
|
-
-
2 楼
啥意思,没输入窗口,暴掉?
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
建议把出错提示换中文,以免……:D
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
爆掉就没意思了,这是一个注册文件检测的CrackMe,做出注册文件才算数.
|
能力值:
(RANK: )
|
-
-
5 楼
论坛精华里面有不完全破解教程,这个好象不怎么简单,没搞定,但看过前辈写的教程。
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
哈哈,如果大家想看我就写一篇吧!不过水平有限,不过最好自已试试!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
peid查壳ASPack 2.11 -> Alexey Solodovnikov这个壳很好脱,PEID就可搞定.
入口点为00401000,脱完后再查为MASM32 / TASM32所写!那一定有窗口了.资源工具上.Resource Hacker打
开脱壳后的文件,可以看到窗口.点击注册按钮看到
CONTROL "退出", 2, BUTTON, BS_PUSHBUTTON | BS_CENTER | BS_FLAT | WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 160, 290, 75, 14
CONTROL "关于", 1, BUTTON, BS_PUSHBUTTON | BS_CENTER | BS_FLAT | WS_CHILD | WS_VISIBLE |
WS_TABSTOP, 8
..
CONTROL "注册", 3, BUTTON, BS_PUSHBUTTON | BS_FLAT | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 84,
290, 75, 14 它的ID=3了.OK之前还有2和1所以一定有一个类似于CASE的语句来区分的.OD载入停在401000
处.00401000 >/$ 6A 00 PUSH 0
00401002 |. E8 91010000 CALL <JMP.&kernel32.GetModuleHandleA>
00401007 |. A3 22204000 MOV DWORD PTR DS:[402022],EAX
0040100C |. 68 0C214000 PUSH up_.0040210C
00401011 |. 68 04204000 PUSH up_.00402004
00401016 |. E8 AD010000 CALL <JMP.&advapi32.GetUserNameA>
0040101B |. 6A 00 PUSH 0
0040101D |. 68 37104000 PUSH up_.00401037 这里就是处理消息的地方了.
00401022 |. 6A 00 PUSH 0
00401024 |. 6A 02 PUSH 2
00401026 |. FF35 22204000 PUSH DWORD PTR DS:[402022]
0040102C |. E8 8B010000 CALL <JMP.&user32.DialogBoxParamA>
00401031 |. 50 PUSH EAX
00401032 \. E8 55010000 CALL <JMP.&kernel32.ExitProcess>
这些就是主程序了,因为是汇编的特点嘛.
0040101D |. 68 37104000 PUSH up_.00401037
这里就是处理消息的地方了我们来到00401037
00401037 . C8 000000 ENTER 0,0
0040103B . 817D 0C 11010>CMP DWORD PTR SS:[EBP+C],111 这就是COMMAND命令了,也就是我们按下
钮时触发的了.
00401042 . 74 2A JE SHORT up_.0040106E 如果是按了就会来到040106E
00401044 . 817D 0C 10010>CMP DWORD PTR SS:[EBP+C],110
0040104B . 74 0C JE SHORT up_.00401059
0040104D . 837D 0C 10 CMP DWORD PTR SS:[EBP+C],10
00401051 . 74 37 JE SHORT up_.0040108A
00401053 . 33C0 XOR EAX,EAX
00401055 . C9 LEAVE
00401056 . C2 1000 RETN 10
我们来到040106E
0040106E > \837D 10 01 CMP DWORD PTR SS:[EBP+10],1 哈哈1.2.3这不正是我们在资源文件所看
到的ID号吗.注册按钮的ID为 3,
00401072 . 0F84 FA000000 JE up_.00401172
00401078 . 837D 10 02 CMP DWORD PTR SS:[EBP+10],2
0040107C . 74 0C JE SHORT up_.0040108A
0040107E . 837D 10 03 CMP DWORD PTR SS:[EBP+10],3
00401082 . 74 14 JE SHORT up_.00401098 是点注册就走
00401084 . 33C0 XOR EAX,EAX
00401086 . C9 LEAVE
00401087 . C2 1000 RETN 10
我们来到
00401098 > \6A 00 PUSH 0
0040109A . 68 EF204000 PUSH up_.004020EF
0040109F . 6A 03 PUSH 3
004010A1 . 6A 00 PUSH 0 没有注册输入窗口,那检测是否注册,很可能
就是用KeyFile来检测了.
004010A3 . 6A 03 PUSH 3
004010A5 . 68 000000C0 PUSH C0000000
004010AA . 68 E5204000 PUSH up_.004020E5 ; ASCII "[BCG].Key"
004010AF . E8 DE000000 CALL <JMP.&kernel32.CreateFileA>这里可以看出文件名是[BCG].Key我
们就在对应的目录下弄一个这样的文件吧.新建一个文本文件输入123456789 另存为[BCG].Key记住扩展名
要改为.key哦.
004010B4 . A3 00204000 MOV DWORD PTR DS:[402000],EAX
004010B9 . 833D 00204000>CMP DWORD PTR DS:[402000],-1
004010C0 . 0F84 92000000 JE up_.00401158 判断[BCG].Key文件是否存在
..
004010D4 . FF35 00204000 PUSH DWORD PTR DS:[402000]
004010DA . E8 C5000000 CALL <JMP.&kernel32.ReadFile>读我们的注册文件呀
004010DF . 85C0 TEST EAX,EAX
004010E1 . 74 75 JE SHORT up_.00401158
..
00401106 . E8 93000000 CALL <JMP.&kernel32.CloseHandle>
0040110B . 33C0 XOR EAX,EAX
0040110D . EB 04 JMP SHORT up_.00401113 直接跳到0401113
0040110F . C9 LEAVE
00401110 . C2 1000 RETN 10
我们来到0401113
00401113 > 80B0 F3204000>XOR BYTE PTR DS:[EAX+4020F3],58 每一个字节都与58异或.
0040111A . |40 INC EAX
0040111B . |80B8 F3204000>CMP BYTE PTR DS:[EAX+4020F3],0
00401122 .^\75 EF JNZ SHORT up_.00401113 直到为文件未尾
00401124 . 68 F3204000 PUSH up_.004020F3
00401129 . 68 FD204000 PUSH up_.004020FD
0040112E . E8 77000000 CALL <JMP.&kernel32.lstrcmp> 比较
00401133 . 83F8 00 CMP EAX,0 是否为0
00401136 . 74 06 JE SHORT up_.0040113E 为0就成功
00401138 . EB 1E JMP SHORT up_.00401158
0040113A . C9 LEAVE
0040113B . C2 1000 RETN 10
看了上面的,其实关键就是XOR BYTE PTR DS:[EAX+4020F3],58 这一句,只要文件中的ASCII为58就行了.哈
哈.查一查才知大写的"X"就是了.重新打开[BCG].Key输入XXXXXXX个数随你便了.保存再打开CrackMe成功
了.就这么简单.
|
能力值:
(RANK: )
|
-
-
8 楼
楼上弄错了吧?!附件中可不是上面的答案,上面答案是BCG的一个考题的再看看吧。你看看 精华4/软件保护/KEYFILE/CRACKME中的第二篇文章,你给弄成第一篇的了。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
哦,放在同一目录下给弄错了.
|