老规矩,先运行程序看看是干嘛的,可以看到程序有点怪异,没有确定按钮,后面知道了原来点击中间阴影部分就是验证功能啦
先检索字符串吧,这里有个小bug,用中文搜索引擎搜索到的字符串比查找所有文本字串要多一些内容....这里也不去追究是什么原理,以后两个都试一下就好了
看到有个恭喜恭喜!注册完成 ,转到字符串地址,往上阅读代码,可以发现有个cmp比较某个地址的值是否0x85命令,若不相等则会跳过注册成功的部分,但是这里跟我们的输入没有任何关系,那么有比较肯定就有赋值的语句,所以我们尝试搜索一下mov dword ptr ds:[esi+0x30C],0x85这条语句看有没有
可以发现确实有这条语句,但是这语句前面还有一句cmp判断然后跳转,也是比较同一个位置是否为0x3e,那么我们仍然往前继续追溯
但是很可惜这次搜索不到
精确搜索搜不到只能是某个地方不对,这里又学到od的另外一个骚操作就是模糊搜索,我们可以根据机器码对想要搜索的语句进行搜索。
然后看到赋值的语句上面有个jnz,然后在前面不远处下个断点,经过调试后知道,
通过推断可以知道注册码由"黑头SunBird"和Name的长度+5还有"dseloffc-012-OK"和Name拼凑而成,比如Name为123,注册码为: 黑头Sun Bird8dseloffc-012-OK123
最终验证时,只需双击一次,然后再单击一次。至于为什么需要自己动态调试就知道了
网友评论