0x00 序章
本文练手的程序是一款名叫pixtopianbook通讯录软件,使用的工具是OD。
0x01 软件分析
安装之后运行pixtopianbook.exe。
点击登录之后进入主界面。
该软件需要注册,如果不注册软件的功能会受到限制,添加组的数量被限制在3个,每组添加的联系人数量限制在4人。
明确目标:要解除软件的非注册用户限制。
0x02 结构分析
使用Exeinfo PE查看程序结构
- 程序的入口地址:0x000403E。
- 程序无壳。
- 可以直接上OD进行逆向破解。
0x03 逆向分析
使用OD打开程序,根据之前的提示“limit of 3 groups”查找字符串试试。
根据查询结果查找到字符串出现的内存地址,点击跟进查看反汇编代码。
在向上阅读反汇编代码,发现在0x00408B05将eax寄存器的值与0x03进行了比较判断,如果大于0x03则继续执行,就会执行到程序异常的代码片段,如果不大于3则跳转到0x00408B34,继续查看异常代码片段跳转的0x004562ED函数。
该函数调用了MessageBoxA函数,并在调用前将异常提示的字符串压入了栈中,与程序运行过程中的情况基本一致,那么限制的判断就是在0x408B05,只需要突破此处的限制即可突破添加组的数量限制,这里我选择将jl跳转修改为jmp无条件跳转。
使用同样的方法修改每个组添加的联系人数量限制即可。
0x04 保存修改测试
将修改后的程序保存运行测试。
至此,软件的功能限制已全部突破。
0x05 结语
该软件的逆向破解过程并不难,网上也有很多的破解教程,如果有描述不当的地方请大师傅们指正批评。
最后,该软件对于新入手学习逆向的同学练手是非常友好的,如果有想要练手的朋友,可以搜索微信公众号“乌托邦安全团队”或者扫下方的二维码关注公众回复“逆向破解0x01”获得软件的下载地址。