本帖最后由 jwzyjwzy 于 2022-10-20 19:16 编辑
Sublime Text 逆向之旅
0x1 准备材料
- x64dbg
- frida
- 最新版Sublime text 4(Build 4126)
0x2 信息收集
首先运行软件能看到标签框“(UNREGISTERED)“
其次在菜单栏 帮助-关于也有相同字样
0x3 逆向分析
拖入x64dbg
右键-搜索-当前模块-字符串
搜索关键字”unregistered“找到4个结果选择第一个
跟进去
发现这个字符串上面有个jmp跳转跳过了”未注册“说明没有执行这个jmp,要找的指令还在上面
往上找到这里发现je刚好跳转到”未注册“,上面的cmp比较了rsi+5和0的值是否相等如果相等则跳转到未注册,尝试修改rsi+5的值为1,(这里的rsi+5其实是这个函数的第二个参数),这里我用的frida hook了这个函数的第二个参数,其实直接用x64dbg修改也可以。本来以为cmp上面的call是关键call最后发现并不是,而且被断了5次没有一次返回值一样,之后索性hook这个函数,只是分析后的产物罢了
将其置1,发现软件已经没有未注册字样
当打完补丁以为没有事的时候发现再次打开软件需要点击 帮助-关于后才能去除未注册,这并不是想要的结果,继续分析,重新调试程序,回到rsi+5这里下一个访问断点,稍微改一下脚本拿到rsi+5的地址
访问断点
第一次断下来的没有啥用放了,看第二次段下来的地方
发现rax+5=rsi+5可以得到这里也需要修改,我们将其修改为 mov byte ptr ds:[rax+0x5], 0x1
下一条语句已经没有用了我们把他nop掉
当然之前的rsi+5那里也是如法炮制
打补丁看结果
这时重启后也没有未注册,大功告成
0x4 结语
教程很简单,给大家一个思路,功能什么的目前没有发现限制,菜鸟分析,如有错误,还请大牛斧正
|