添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议 》和 《 阿里云开发者社区知识产权保护指引 》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单 进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

关键方法使用函数指针的方式调用,默认函数地址是试用版函数地址。

fpdfsdk.dll有导出函数FPDF_UnlockDll函数,此函数传入license key和unlock_code.

当调用此方法, 通过某种变换解密计算序列号,  如果是正式版的序列号,则能够成功解码得到正式版的函数位置

并将正式版的函数地址 设置到函数指针上,诸多限制就被卸掉了。

我只想去除水印。找了一下,1028FB48应该就是Render有关的函数指针位置了。

这个内存位置的默认值指向一个试用版的函数地址,那么Render出来就有水印。

只要将此函数指针设置成正式版的函数地址就可以了。

要得到正式版的函数地址很简单,申请一个试用版的序列号,调用此解锁函数。

在10014BD5处,修改Zero标识位跟踪进入此分支执行(试用版即使有序列号也是不会进入这个分支的),正式版的函数的地址就在eax寄存器中了。

Bingo!

记下来直接改到 1028FB48,  则完全不需要调用解锁函数也可使用无水印Render.