大神论坛

找回密码
快速注册
查看: 141 | 回复: 0

[原创] 轻闪LightPDF Editor PDF编辑器逆向破解记录

主题

帖子

0

积分

初入江湖

UID
597
积分
0
精华
威望
0 点
违规
大神币
68 枚
注册时间
2023-09-16 15:11
发表于 2024-03-26 21:38
本帖最后由 蜗牛杰 于 2024-03-26 21:38 编辑

前言

本次逆向仅供学习交流,无任何其他意图,如有侵权请联系删除

0x0 所需工具

查壳:die

调试:xdbg

0x1 查壳 & 运行

查壳

直接上die查壳,应该是没有加壳(一般这种软件都不会加壳,会拖慢运行速度,影响用户体验),而且用到了QT

没加壳直接运行先看看,加了壳可能就没有这篇帖子了:)

运行

无需多言,逆向目标就是开通会员了

0x2 调试 & 分析

传统字符串搜索大法

先搜索字符串,过滤包含“vip”的字符,有几个可疑点,下断点,如下图

这里为甚么要过滤“vip”字符?

像这种软件,常见过滤字符有“pro”、“regist”、“vip”等等,当然有些软件没有相关字符串,一般是在相关提示处回溯堆栈

下完断点直接运行碰碰运气,程序直接结束,应该是有反调试

简单反调试

常规反调试函数有:IsDebuggerPresentCheckRemoteDebuggerPresent,下断重新运行

断在IsDebuggerPresent

同时观察右下角堆栈,调用方是不是程序段,简单过掉,返回值的eax改为0x0

继续运行,还是断在IsDebuggerPresent处,调用方是系统dll,略过

断点分析-1

然后会在“isvip”字符处断n次

观察上下汇编段,没有可疑大跳转,且QT库函数都是字符串处理,此处应该不是关键点,先暂时取消该断点

断点分析-2

继续运行,这次断在“isVipUser”字符处

上下观察,发现调用“QVariant(bool)”(bool型变量)、“QObject::setProperty(char const *, class QVariant const &)”(设置属性)等QT库函数,附近还出现“isVipUser”字符,这个地方很可疑

重点分析 & 尝试修改

call段首下断,重新运行到段首,细细分析

一顿分析,此处非常可疑,从上图分析可知,关键点在于0x35FB93处的[ebx+0x74],该处初始值为0x0,先更改为0x1,运行看看是否达到效果

到位,逆向结束

结语

这个软件难度不大,虽然也捣鼓了两天:)

无壳、字符串搜索、反调试、汇编代码分析(ida伪代码也能分析,此贴位提及)等,很适合交流学习

还有具体补丁也不详细说明了,分析点后面跳转处可实现补丁


注:若转载请注明大神论坛来源(本贴地址)与作者信息。

返回顶部