
拖入OD,字符串搜索

有搜到"注册成功"

网上找,能找到cmp对比,以及关键跳转

为了测试是否是这个跳转,下断点,随便输入用户名和注册码(有长度限制),运行

到达断点处

修改跳转测试

成功,说明就是这个跳转,看他的判断条件

发现01281c14的值为0,尝试在此下硬件写入断点,重新运行,然而并没有断下来,说明给这个地址赋值0x85的是一个分支,并且很有可能是直接立即数赋值
尝试搜索命令

结果

果然跟猜测的一样,来到这里

同样方法,发现跳转条件是

继续搜索

,然而这次什么都没搜到,再尝试使用模糊搜索,(当然也可以一开始就用模糊搜索)

结果

来到这个地方

观察上边的这个函数,发现赋值了eax和edx

可以看到eax为我们输入的值,edx为一串很想序列号的字串,所以这个函数很可能是对比序列号的函数,下断点,(此处断点会发现,在我们输入注册码操作时会断下,由此发现是即时获取注册码)
并且我们观察到字串最后跟我们输入的用户名一样,可以猜测,是否是用户名
为了验证,我们重新输入其他数值.

运行

貌似跟我们猜测的一样,尝试输入,双击图片位置

结果成功,算法一眼就看出来了,算法就懒得看了,全程靠猜,大胆猜测,小心验证,能节省很多时间.
来自为知笔记(Wiz)