Master PDF 编辑器 逆向复现
仿照:Master PDF Editor 5.9.98 逆向教程 - 吾爱破解 - 52pojie.cn。复现
正式文件下载地址:https://code-industry.net/public ...r-setup-qt6-x64.msi
听说比adboe好用,本人目前看起来好像也是哈。
最终成果:

复现:
1、打开软件的时候,标题末尾直接显示字符串:NOT registered,那这个就是突破口。这时候就要祭出神器ida。

2、主程序MasterPDFEditor.exe直接丢进ida里面。按Shift + F12,搜索所有的字符串,程序有点大,需要几秒钟。使用Ctrl + F ,搜索NOT REGISTERED。匹配到2个结果,选择第二个,(version代表版本,选择第二个更有可能),这双击.rdata跳转到引用字符串的汇编代码栏目。我们要查找包含该字符串的函数。

3、这双击.rdata跳转到引用字符串的汇编代码栏目。

4、按x跳转到引用的函数sub_1403E1010。寻找包含该字符串的函数

5、这个就是包含该字符串的函数,分析一下,该函数接受一个字符串,判断比较是否是” ru_ru“,所以如果未注册成果返回这个字符串,程序逻辑就是通过调用这个函数返回字符串的。
如果不是 ru_ru:输出后缀文本(未注册标识); (NOT REGISTERED)如果正好等于 ru_ru:输出一段中文授权提示。
因此我们需要查看哪些地方调用这个函数,可以右键选择Jump to xef......(查找函数调用的意思),这里可以看到有两个,原来的教程,先进入第二个分析然后修改,但是没有通过。

6、正确的进入第一个函数进行分析。这个函数有一大堆非校验的逻辑,是pdf工具相关的。可以根据调用sub_1403E1010函数的关键处分析,发现有一个if。里面校验了this + 113 和 this + 535内存地址的数值。。逻辑要求:两个标记同时 = 0 才会弹出未注册标题。然后才进行输出校验失败。这里直接只需要修改this + 113逻辑。

7、选择(this + 113),往上找,看看哪些地方变黄了。快速翻一遍,数了一下整个函数就4个(this + 113),很容易发现第一个初始为0。

8、点击选择赋值为0这一行,然后1按键Tab,转到ida汇编视图,[r14+71h]对应(this + 113),现在问题是赋值的这个0是怎么来的?
9、可以看到是 sil 赋值,往上查找,可以发现上方有个操作xor esi, esi,相同的值异或后等于0,所以0是这么来的。

改法也比较简单,直接修改这条指令。
.text:0000000140172D56 mov [r14+71h], sil
这个指令的意思就是把sil的值丢进地址[r14+71h]里面,那直接写死让这个地址永远为1就好了。
.text:0000000140172D56 inc byte ptr [r14+71h]

改好后保存,试了一下打开就已经注册,编辑pdf也没有水印提示。
成功!!!
现在来测试另一个函数失败。
看第二个。看伪代码的时候最好勾选同步到ida视图。
进入后发现此处先对(a1 + 113)进行对比,然后再对(a1 + 535)进行对比。在伪代码界面选择(a1 + 113)后,ida会自动对相同的地方标黄,这样就很清楚的看到在哪里赋值。

从上面的*(a1 + 113) = v5可以看出,值来源于v5,v5又来源于sub_14036A990,那直接让sub_14036A990返回1是不是可以注册呢?
但是测试失败。可以是其他地方存在校验。
夜雨聆风