记一次用逆向程序逆向逆向程序的经历
这里大概介绍一下如何用ida pro逆向,完成010 editor中注册的部分,绕过他的注册
如何逆向二进制文件
1.安装010editor
所以我们先装一个,[010 editor](https://www.sweetscape.com/download/)
正常官网下载,一步步安装就可以了
安装成功之后,恭喜你,已经完成一半了!
2.啥010editor要破解?
正常启动之后,会提示你有30天的试用,纳尼,难道这个还要破解?
啥破解,咋破解,破解啥呀?萌新三连
来来来,我们一步步,先找点线索,点Tools - Register注册试试,随便输入Name password,咦有个弹窗的提示。(疯狂暗示
3.逆向 ‘逆向程序’ 的程序
这时候就需要装一个可以 逆向 逆向二进制程序 的程序 IDA Pro了。就是这个女人!
安装IDA pro之后选择打开010Editor.exe这个可执行程序
界面的基础介绍,可以看这里(https://www.freebuf.com/column/157939.html)了解一下
1. 代码块, 蓝色代码段,棕色数据段,红色内核
2. 该程序的函数表,双击后可查看详细信息
3. 主要分析的查看窗口
搜索刚才找到的提示的关键字Invalid name or password
在0707DC2这行黄色的地方右键Xrefs graph to
看到了function sub_140707870,这个就是比较关键的一个地方了
再找到这行放在黄色的上面,F5,会显示Decompliling,这个地方会卡很久,之前不知道,其实直接cancel掉就可以,取消就会拿到这块逆向出来的代码
可以看到比较关键的一个判断就是这个v16 == 219。 如果是真,执行注册成功的操作
那就找找看有没有别的线索,试着去IDA VierA里面搜一下MMMM d, yyyy,
这个地方有个jnz操作,可以试着直接把jnz改成jz,jnz在汇编里全称就是jump if not zero。
改成jz就相当原来的等于换成不等于了。
Edit-Patch Program - Assemble
点ok之后,在这行F5,在看下是否生效了,真的变成else分支了。记得点下edit-patch program - apply patch to input file 保存。
补充:
其实这里有很多种改法,也可以直接nop掉这个判断,但是我用nop改了之后,看代码的时候看这个判断是被干掉了,但是后面程序里面验证的时候,点注册未响应了,可能是我改的方法又问题,所以这个地方选择改jnz成jz的方法。
4.验证结果
用刚才保存的exe,进入register,随便输入用户名和密码点击注册。显示accept,完毕,验证成功
(逆向真香,真好玩,纪念第一次试验,感谢钱总和XD的技术支持