海天一色001 发表于 2017-6-3 16:04

初练160个CrakeMe程序之008

本帖最后由 海天一色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掉,爆破就成功了!


         
再向下查看,
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”就是真码了!
00401D70   > \8B4D D8       mov ecx,dword ptr ss:               ;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:
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:
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的帖子后才开始做这个练习,现在做完了,感觉确实是很容易的一个程序!

ufo2273810 发表于 2017-6-4 10:26

感谢分享。

huaian统一 发表于 2017-6-3 17:24

楼主 如果能把每一期破解的过程都写出来 对新手来说就是功德一件学习的时候也有个参考{:1_921:}

碍人。 发表于 2017-6-3 16:21

这贴重复了.....

海天一色001 发表于 2017-6-3 16:23

碍人。 发表于 2017-6-3 16:21
这贴重复了.....

已给管理发了,求删掉!

pwp 发表于 2017-6-3 16:53

下次我学的时候,直接拿你汉化好的程序了,降低难度

sowater 发表于 2017-6-3 18:25

当初我没能坚持下来

zhangbaoyu 发表于 2017-6-3 18:25

看不懂啊 啥意思

byh3025 发表于 2017-6-3 20:33

大牛每做一题都汉化一次,既学习了破解又练习了汉化,佩服得五体投地

灰太狼大王 发表于 2017-6-4 06:55

001还没弄明白呢
页: [1] 2
查看完整版本: 初练160个CrakeMe程序之008