160个CrackMe-第八个“语言障碍”

从前有160个CreakMe,后来….
1.首先打开程序界面,输入伪码验证
key:123456789
这里写图片描述
之所以叫语言障碍是因为这个程序中的注释、标题什么的都是不能很清楚的理解的语言,很像英语,也可能就是英语

2.程序破解思路和流程
用OD打开程序,输入伪码测试
key:123456789
点击OK键,弹出一个窗口,提示信息告诉我们key是错误的,再仔细看看
160个CrackMe-第八个“语言障碍”_第1张图片

既然弹出了窗口,我们进入OD直接“Alt + K”,找到堆栈信息窗口
160个CrackMe-第八个“语言障碍”_第2张图片

我们要找到作者的程序调用这个函数的地址,所以右键点击最后一个“rtcMsgBox”->显示调用

160个CrackMe-第八个“语言障碍”_第3张图片

显示调用之后返回到高亮的这行,再往上看,好像看到了我们输入错误key之后弹出的提示信息,再上面还有两行字符串,仔细看来挺像key输入争取之后的提示信息的,如果是的话,我们再往上找找关键跳转,直接nop掉就可以暴力破解了

160个CrackMe-第八个“语言障碍”_第4张图片

我们发现有一个je直接跳过了成功提示信息,跑到了错误提示信息的位置,我们只需要把它nop掉

160个CrackMe-第八个“语言障碍”_第5张图片

da~da~
成功爆破!

3.注册码分析过程
既然我们找到了关键跳转,那么key的验证函数肯定在关键跳转的上面不远处,我们仔细看一下

160个CrackMe-第八个“语言障碍”_第6张图片
找到了一个 strcmp函数,而且参数一共有两个,一个是我们输入的key,另外一个是“SynTaX 2oo1”,很有可能这个字符串就是真正的key,输入试一下

160个CrackMe-第八个“语言障碍”_第7张图片
果真成功,那我们得知,他的key是一个固定不变的值“SynTaX 2oo1”

总结:看代码的时候应该心平气和,不能太浮躁,之前的strcmp这个函数一直没有找到就是因为太着急,只顾着看代码的逻辑,没有关心注释而浪费了好多时间

你可能感兴趣的:(小技术,破解)