(编辑:jimmy 日期: 2024/12/25 浏览:2)
首先运行软件能看到标签框“(UNREGISTERED)“
1665572506454.png
其次在菜单栏 帮助-关于也有相同字样
1665572534080.png
拖入x64dbg
1665572798998.png
右键-搜索-当前模块-字符串
1665572963704.png
搜索关键字”unregistered“找到4个结果选择第一个
1665573162424.png
跟进去
1665573348423.png
发现这个字符串上面有个jmp跳转跳过了”未注册“说明没有执行这个jmp,要找的指令还在上面
1665573542059.png
往上找到这里发现je刚好跳转到”未注册“,上面的cmp比较了rsi+5和0的值是否相等如果相等则跳转到未注册,尝试修改rsi+5的值为1,(这里的rsi+5其实是这个函数的第二个参数),这里我用的frida hook了这个函数的第二个参数,其实直接用x64dbg修改也可以。本来以为cmp上面的call是关键call最后发现并不是,而且被断了5次没有一次返回值一样,之后索性hook这个函数,只是分析后的产物罢了
1665575588805.png
将其置1,发现软件已经没有未注册字样
1665575559795.png
1665575892220.png
访问断点
1665576094456.png
第一次断下来的没有啥用放了,看第二次段下来的地方
1665576376079.png
发现rax+5=rsi+5可以得到这里也需要修改,我们将其修改为 mov byte ptr ds:[rax+0x5], 0x1
下一条语句已经没有用了我们把他nop掉
1665576747185.png
当然之前的rsi+5那里也是如法炮制
1665576846983.png
打补丁看结果
1665576937115.png
这时重启后也没有未注册,大功告成
教程很简单,给大家一个思路,功能什么的目前没有发现限制,菜鸟分析,如有错误,还请大牛斧正