使用Hopper Disassembler轻松破解Gem Menu for OneNote

最近喜欢上了OneNote,有一款小插件Gem Menu for OneNote功能还蛮实用的。下载下来,点击注册激活软件,一股原始的味道扑面而来,想必没有经过很强的保护,于是直接动手反编译破解这个小软件。

在Mac上可以使用Hopper Disassembler很方便的进行反编译,我们打开Gem Menu for OneNote的二进制文件,拖进Hopper Disassembler即可完成反编译,得到可执行文件的汇编代码和更直观的C语言代码等,方便我们理解程序逻辑:

注册界面点击确认按钮通常会触发注册码校验的逻辑,于是尝试搜索关键词license等寻找相关的函数。发现了一个比较可疑的函数: -[MWinLicense ButtonOKClick:],从函数名来看是处理注册窗口的点击确认按钮的逻辑。反编译成C语言,发现有success、failed 等关键词,进而弹出提示框,这两个分支在sub_10003db60函数处进行逻辑判断,可以猜想sub_10003db60是用来判断是否输入了正确的注册码:

跟进sub_10003db60函数(以下是三种视图):

由ButtonOKClick调用该函数处的返回值使用情况可知:函数返回非零表示成功,于是不用管他干了什么,一把梭,直接函数修改值为1:

000000010003be4b movzx eax, al

修改为 ==>

000000010003be4b mov al, 0x1

000000010003be4d nop

(此处加 nop 是为了填充没用完的1个byte的指令)

改完逻辑之后,生成修改后的可执行文件,再覆盖原来的文件,至此破解就完成了。

5 thoughts on “使用Hopper Disassembler轻松破解Gem Menu for OneNote

  1. luo

    博主可以发一份破解好的吗?因为导出执行文件的时候出问题,或者博主能发一份详细一点的教程吗?

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注