本帖最后由 海天一色001 于 2017-6-3 16:20 编辑
第8个CM,看了一下,难度一星,保护方式是Serial,再看8、9、10、11都是这个Andrénalin的作品,怎么看都觉得字符怪怪的!
运行一下,标题上的字符还是怪怪的!看明白了括号中的非常非常容易!
随意输入字符,点击OK,弹出错误窗口:
老规矩,先查壳,VB程序,无壳:
第一步汉化:
使用VB程序汉化专用工具VBExplorer,这也是一个练习的过程。修改时,查找字符串时才知道这是德语!汉化后另存为CM008.exe。
第二步爆破:
CM008导入OD中,搜索字符串,直接看到了我汉化后的字符串!
点击成功的地址进入CPU窗口,来到地址00401DD3处,向上看了一下,在00401D9D处找到了一个跳转命令“je CM008.00401E43”,跳过了成功。
所以可以将这一句nop掉,爆破就成功了!
再向下查看,
[Asm] 纯文本查看 复制代码 00401E3E . /E9 95000000 jmp CM008.00401ED8
这一句指令跳过了错误,所以不用动!只从这里来说,确实是very,very easy!
将nop后的程序保存为CM008_nop.exe即可。
第三步追码:
因为要追码,所以重新载入OD中,搜索字符串,随意点击一个提示,进入CPU窗口中;然后向上找到这些代码的段首处00401CD0下断(根据经验可能就是OK按钮事件的段首了):F9运行程序,随意输入字符“1111111111”,再点击OK按钮,程序果然在这里中断了:
单步向下,来到00401D70处,此时ecx的值为我输入的假码“1111111111”;再向下,00401D74处,push CM008.00401A54指令是显示字符串“SynTaX 2oo1”的;下句的call dword ptr ds:[<&MSVBVM50.__vbaStrCmp>]指令说明是对这两个字符串进行比较,那么很可能字符串“SynTaX 2oo1”就是真码了!
[Asm] 纯文本查看 复制代码 00401D70 > \8B4D D8 mov ecx,dword ptr ss:[ebp-0x28] ; ecx=假码
00401D73 . 51 push ecx
00401D74 . 68 541A4000 push CM008.00401A54 ; SynTaX 2oo1
00401D79 . FF15 08314000 call dword ptr ds:[<&MSVBVM50.__vbaStrCmp>] ; msvbvm50.__vbaStrCmp
00401D7F . 8BF8 mov edi,eax
00401D81 . 8D4D D8 lea ecx,dword ptr ss:[ebp-0x28]
00401D84 . F7DF neg edi
00401D86 . 1BFF sbb edi,edi
00401D88 . 47 inc edi
00401D89 . F7DF neg edi
00401D8B . FF15 5C314000 call dword ptr ds:[<&MSVBVM50.__vbaFreeStr>] ; msvbvm50.__vbaFreeStr
00401D91 . 8D4D D4 lea ecx,dword ptr ss:[ebp-0x2C]
00401D94 . FF15 60314000 call dword ptr ds:[<&MSVBVM50.__vbaFreeObj>] ; msvbvm50.__vbaFreeObj
00401D9A . 66:3BFE cmp di,si
00401D9D 0F84 A0000000 je CM008.00401E43
先试一试:“SynTaX 2oo1”粘贴入文本框,点击OK按钮,程序又中断!F9运行,程序弹出正确的信息框!
这样看来,这个CM确实挺简单的!
原来不知道“SynTaX 2oo1”这个字符串是干什么的,汉化时没管它,现在知道了,再汉化试试,看能不能用汉字作为真码:
还是用VB,打开CM008,修改后先点击绿色的三角形运行一下,成功!保存文件!
008附件压缩包中,有原程序Andrénalin.1(真码是“SynTaX 2oo1”),汉化后的程序CM008(真码是“吾爱破解”),爆破后的汉化程序CM008_nop,可任意输入或不输入均可成功。
百度链接是:http://pan.baidu.com/s/1skMkJY9 密码: 86pm,160个CM、个人学习过的前8个crackme程序都在里面。
未汉化的原程序中标题栏写着very,very easy,发了007的帖子后才开始做这个练习,现在做完了,感觉确实是很容易的一个程序!
|