首页
论坛
课程
招聘
[调试逆向] [原创]EnterPrise Architect15.2内存注册机制作
2021-2-19 18:59 2337

[调试逆向] [原创]EnterPrise Architect15.2内存注册机制作

2021-2-19 18:59
2337

其实本人很早以前就关注PEDIY了,但是一直都没有注册账号,今天是首次注册账号,也带来一个处女作(为了转正哈哈哈),因为最近我们公司用到了这款EA15.2软件,所以我也对这个软件的License进行研究。
跟踪的方式很简单,以下为详细步骤:

1、打开EA15.2软件,进入到注册界面,随意输入名字和公司名称,按照一定格式输入随意License(格式是固定的,网上可以搜索到以前能用的一些通用License,不过现在都被禁掉了),我是这么输入的:

图片描述

2、打开调试工具,这里我使用的是X32dbg,对注册窗口下消息断点,消息为(WM_LBUTTONUP),即鼠标左键弹起。

图片描述

3、持续对软件进行跟踪,具体的汇编代码分析不在此介绍,这里只提出关键的两个CALL:

第一个CALL:

图片描述
这个CALL执行之后,会出现Ultimate版本一半的License,如图所示,其中License有一部分是?,这个?暂时还没有出现。
这一半为:9773FEB0-018D-11d5-A76F-2CA2A-?-CB

第二个CALL:

图片描述
这个CALL执行后出现Ultimate版本另外一半的License
这一半为:YNW1-E7A1-QDFS-BNKB

4、对License进行组合,得到:

9773FEB0-018D-11d5-A76F-2CA2A-YNW1-E7A1-QDFS-BNKB-CB,尝试使用该码进行注册后,得到ultimate版本:
图片描述
可以看到提示注册成功,注册为Ultimate版本,无时间限制,无功能限制的完全体。

 

好了,现在摆在我们面前的第二个问题是注册机该怎么去做,有两条路:第一条路,分析那两个CALL的具体算法,然后根据算法来制作注册机;第二条路,已知内存中某一瞬间会出现明文数据,截获内存数据来获取License。

 

我选择了第二条路,因为第一条路的算法,我试了一下过于复杂,会耗费大量的时间,而且本人的汇编其实也不是特别的强,有些加密算法,比如AES、DES等等,使用汇编我反正是完全整不出来,所以选择了第二条路,那么介绍一下第二条路该如何实现:
1、定位会出现License信息的地址,注意这个地址不是你在x32dng里看到的地址,我们要的地址是基于文件头的RVA,否则换台电脑,你的注册机就没用了,对应代码地址的RVA在x32dbg左下角能看到。在我选择的两个地址都是两个CALL后面的那一句代码,也就是add esp,c那句代码所在地址。分别为:
BaseAddress+0xF45044、BaseAddress+0xF4523A
2、向这两个地址都写入两个字节数据:0xEB、0xFE,作用是无限跳转到自己,就是让程序在这里停止,留出时间给工具读取相应数据。
3、当暂停时,读取EAX的数据信息。读取完成后,恢复原来的代码段,使得程序可以继续运行。
4、组合获取的key,得到UltimateLicense。
以下是部分重要代码展示:
使用C#的Process类打开软件,获取软件的BaseAddress信息,然后关闭软件,再使用CreateProcess打开软件,因为Process类无法获取主线程:
图片描述
加入中断代码,并备份原先的代码:
图片描述
循环检测软件是否运行到既定的地址,如果运行到了,则读取EAX,并恢复之前备份的代码:
图片描述
图片描述
5、组合读取的信息,这里就补贴代码了。

 

最后展示一下注册机效果:
图片描述
图片描述
大功告成,成功从内存中截获License信息!再次注册时,使用注册机提供的License就可以直接完成注册。


看雪学院推出的专业资质证书《看雪安卓应用安全能力认证 v1.0》(中级和高级)!

收藏
点赞1
打赏
分享
最新回复 (3)
雪    币: 216
活跃值: 活跃值 (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kaiyi.wang 活跃值 2021-2-19 19:16
2
0
最后一个图没截好,因为这个内存注册,首次执行时需要随便输入一个License,我全部输入的1,然后运行一遍以后,工具才会捕获正确的License,所以左边提示无效License,右边提示的是获取成功,这个时候还需要再用右边工具获取的License再注册一次。
雪    币: 181
活跃值: 活跃值 (184)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
helloworda 活跃值 2021-2-19 23:16
3
0
15.2是哪个版本 1544么,方便分享下安装包不
雪    币: 216
活跃值: 活跃值 (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
kaiyi.wang 活跃值 2021-2-19 23:43
4
0
helloworda 15.2是哪个版本 1544么,方便分享下安装包不
1555版本,不好意思,这个安装包不能分享,这个是企业定制的,安装后首次打开其实还有一个四个字节的秘钥,不过是固定的值,给不同的企业不同的号。这个逆向方法理论上是通用的,可以在网上下一个正版,使用这个方法逆向就行了,关键的CALL我已经标出来了。
游客
登录 | 注册 方可回帖
返回