|
发表于 2020-9-6 14:48:10
|
查看: 8080 |
回复: 0
软件介绍 这是一个简单易用的图形表达工作台,既能实现流程图、架构图、工程图、思维导图等数百种专业领域图形图表的绘制,又能提供一个白板进行头脑风暴和任意编排,轻松实现数据和创意的可视化呈现。
软件试用版和正式版有什么区别?
设计软件试用版,可以免费使用15天,导出和保存均有水印,试用期过后不能再导出和保存文件,部分功能会有所限制。正式版可终身使用,导出和保存的文件没有水印,享受全功能。
从官网下载最新版本10.1.2,从界面上可以看到软件为试用版。
【软件逆向】某绘图软件的逆向破解
环境在断网情况下进行的,为了避免可能的联网验证,所以我断开了网络,打开软件,OD进行附加,点击激活按钮查看界面等信息。
【软件逆向】某绘图软件的逆向破解
界面破解 随便输入一些信息,然后点击激活按钮,产品提示密钥无效,请重新输入。
【软件逆向】某绘图软件的逆向破解
点击确定后OD对API进行下断点。因为点击后创建了个窗口或是对话框,所以对这几个API进行下断DialogBoxParam、CreateWindowEx、MessageBox(A和W都要下)
【软件逆向】某绘图软件的逆向破解
点击按钮后在CreateWindowExW断下,然后看堆栈,查找返回地址,找主模块的返回
【软件逆向】某绘图软件的逆向破解
alt + E查看主模块基地址,将文件用IDA加载静态辅助分析,IDA 基地址修改为OD中基地址0x1350000
【软件逆向】某绘图软件的逆向破解
alt + C 回到代码窗口查看堆栈调用 找到EdrawMax模块调用,找到第一个,然后IDA跳转到这个位置,返现调用这里的很多,继续向下找堆栈返回
【软件逆向】某绘图软件的逆向破解
又找到了一处调用,IDA跳转查看。
【软件逆向】某绘图软件的逆向破解
IDA中在这里发现了一句话License code is not valid, please re-input it.翻译为中文就是许可码无效,请重新输入。看来就是这里了,IDA向上查看代码,交叉引用查看调用
【软件逆向】某绘图软件的逆向破解
这个位置会验证输入的产品密钥长度,我们将密钥重新更改为长度为0x14的密钥再次点击尝试
【软件逆向】某绘图软件的逆向破解
对话框改变了,点击确定之后随便输入点激活码,再点击手动激活
【软件逆向】某绘图软件的逆向破解
同样在CreateWindowExW断下,然后看堆栈,查找返回地址,找主模块的返回,和上次一样,在第二处返回到找到了关键代码IDA打开查看
【软件逆向】某绘图软件的逆向破解
IDA中看到Activation Failed!激活失败!
【软件逆向】某绘图软件的逆向破解
交叉引用找到跳转到失败这里,发现有两处会跳转到失败的代码
【软件逆向】某绘图软件的逆向破解
我们在OD尝试将两处NOP掉。
【软件逆向】某绘图软件的逆向破解
果然更改后的跳转会显示激活成功。
【软件逆向】某绘图软件的逆向破解
OD将PE文件右键复制到可执行文件,所有修改,更改保存到可执行文件,然后替换源文件重新启动附加。
【软件逆向】某绘图软件的逆向破解
启动更改后的程序,然后点击激活,显然我们并没有激活。
【软件逆向】某绘图软件的逆向破解
关闭注册窗口,打开OD再次附加该进程,在API CreateWindowExW上下断,点击激活然后查看堆栈,不断查找栈回溯,会找到了注册响应函数(IDA需重新更改OD上主模块的基地址)
【软件逆向】某绘图软件的逆向破解
调用call_windows返回窗口对象来显示对话框。进入函数,在函数内发现了提示失败的英文信息,那么可以初步判断是这个函数里来判断响应哪个并返回窗口对象
【软件逆向】某绘图软件的逆向破解
在函数内第一个跳转进行强行改为不跳转试一下,窗口感觉是对的,但是窗口上的内容对不上,不是这里,重新启动,继续分析该函数.
【软件逆向】某绘图软件的逆向破解
F5尝试IDA辅助转换C代码查看,两个返回,2是我们强改后窗口变小的失败的窗口,那么从1返回的V95向上查看入手
【软件逆向】某绘图软件的逆向破解
函数上方发现有两处对V95相关做变更的判断,正常执行一遍没有经过判断中的代码,创建的窗口就是注册窗口。
【软件逆向】某绘图软件的逆向破解
将这两个位置的判断进行nop更改,第一处
【软件逆向】某绘图软件的逆向破解
第二处
【软件逆向】某绘图软件的逆向破解
果然,窗口已经变为我们输入的注册码,激活按钮已经变灰无法点击,当然到这里仅仅是界面被修改,并没有达到使用vip功能的地步。
【软件逆向】某绘图软件的逆向破解
功能破解 先找一个VIP功能提示界面,创建文档导出word文档,显示升级vip会员,关掉窗口,CreateWindowExW下断,点击word导出断下
【软件逆向】某绘图软件的逆向破解
同样的方法通过栈回溯找到这里。
【软件逆向】某绘图软件的逆向破解
函数中有两个call上面的就是检测是否激活函数,下面的便是没有激活创建的提示购买VIP窗口。所以我们需要将detection_activated的返回值始终为1就可以了。
【软件逆向】某绘图软件的逆向破解
detection_activated这个函数返回值经过ebp+ret_flag赋值,向上查找谁操作的ebp+ret_flag
【软件逆向】某绘图软件的逆向破解
在上面代码看到了有0赋值给ebp+ret_flag,OD将这里更改汇编为1,然后再次点击激活按钮。
【软件逆向】某绘图软件的逆向破解
可以导出了。
【软件逆向】某绘图软件的逆向破解
OD重新保存修改到可执行文件,然后重新打开软件,试用版已经没有了。到此破解完毕。导出一个PDF没有水印,也不会弹出VIP提醒。
【软件逆向】某绘图软件的逆向破解
文件就不放了,如果侵权,版主大大联系删除。
《0day安全 软件漏洞分析技术(第二版)》第三次再版印刷预售开始!
|
温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【 投诉建议】板块发帖举报。
|