一个易语言无壳个人验证辅助破解分析和思路

查看 77|回复 11
作者:Only1Studio   
环境:吾爱破解XP虚拟机,Win11主机
工具:OllyDbg
程序:某车游戏定时秒杀道具辅助
此程序是我的朋友写的,经他同意后发布,不带原程序和成品。
验证成功登录之后是这个样子


8M6EG$@@T}2$Y60[BWLCFMO.png (52.35 KB, 下载次数: 0)
下载附件
2022-1-2 18:54 上传

由于作者是我朋友,我提前得知有暗桩,验证非法后触发蓝屏,结束自身和删除自身。
那接下来我们就一一解决吧!
首先拖进OD,易语言程序我有个习惯,就是首先尝试push窗体。使用插件EWND枚举出8个窗口ID,挨个载入试试


屏幕截图 2022-01-02 185932.png (409.06 KB, 下载次数: 0)
下载附件
2022-1-2 18:59 上传

通过窗口push得知一下有效信息
1 52010001--------无响应
2 52012F9F--------编辑账号窗口
3 52012FA5--------编辑账号窗口
4 52019FBB--------无响应
5 52019FBC--------系统消息窗口
6 52019FBD--------无响应
7 5201B1C6--------超级文本整理窗口
8 5201B1C8--------发现新版本窗口


屏幕截图 2022-01-02 190617.png (423.23 KB, 下载次数: 0)
下载附件
2022-1-2 19:23 上传

看来EWND插件也不能push出主功能窗口,但是我不死心,我要到易语言体,找到启动程序载入的第一个窗口ID,再push一下试试。
Ctrl+B,输入FF25


屏幕截图 2022-01-02 191230.png (11.47 KB, 下载次数: 0)
下载附件
2022-1-2 19:13 上传

都知道啥意思吧?
在这里再测试一下我们用EWND获取的窗体ID,由于已经知道了2,3,5,7,8对应的窗体了,而且1是程序启动后载入的第一个窗体,也就是登录页面
那只要试试4和6也就是52019FBB和52019FBD


(ZMZ_{)UDAUT)RAFLQ@U3$V.png (257.92 KB, 下载次数: 0)
下载附件
2022-1-2 19:28 上传



LP@SQZHM5SM@XHCD_R2M)8F.png (226.01 KB, 下载次数: 0)
下载附件
2022-1-2 19:28 上传

4是登录界面,6也是系统消息界面
那么我们得知有效消息
1 52010001--------程序启动后载入的第一个窗口(登录界面)
2 52012F9F--------编辑账号窗口
3 52012FA5--------编辑账号窗口
4 52019FBB--------登录界面
5 52019FBC--------系统消息窗口
6 52019FBD--------系统消息
7 5201B1C6--------超级文本整理窗口
8 5201B1C8--------发现新版本窗口
从中得知1和4都是登录界面,其他也都不是主功能窗口,那主功能窗口去哪里了呢?另外4也就是52019FBB这个窗口ID很可疑,先留意一下。
我自己写了一个程序,想验证是否可以点击帮助按钮后,直接载入功能窗口呢?


YSFY[843H~DDS)V9`URR~L9.png (40.08 KB, 下载次数: 0)
下载附件
2022-1-2 19:57 上传

将此测试程序载入OD后分析
自己写的测试程序太简单了,都不用下按钮断点,就知道哪里是按钮事件了,我将帮助按钮的按钮事件全部nop掉,然后直接jmp到载入窗口的函数,结果为我按下帮助按钮后载入功能窗口


%5G(${NK[%IO_O@9JW%C(`3.png (573.6 KB, 下载次数: 0)
下载附件
2022-1-2 20:06 上传

同理,我也可以直接把登录按钮的按钮事件全部nop掉,直接jmp到载入窗口的函数。
回到主题,我可不可以把登录按钮的按钮事件nop掉,直接jmp到载入主功能窗口的函数呢?
通过下按钮断点(Ctrl+B搜索易语言按钮事件特征码FF 55 FC 5F 5E),一步一步跟踪到登录按钮的按钮事件头部,细心的我观察到了下面出现了很多4的窗口ID----52019FBB


]%DLUV[K}}DM)H5VKCYQDJT.png (219.35 KB, 下载次数: 0)
下载附件
2022-1-2 20:16 上传

本来就觉得可疑,又在登录按钮事件里看到了,我感肯定这个窗口ID就是主功能窗口的ID了,那我该怎么定位载入窗口的函数呢?
我的土方法是一个一个试,Ctrl+B搜索push 0x52019FBB,将所有搜索到的函数头部地址记录下来
00499B74  /.  55            push ebp


屏幕截图 2022-01-02 202102.png (100.87 KB, 下载次数: 0)
下载附件
2022-1-2 20:21 上传

00499BAE  /.  55            push ebp


屏幕截图 2022-01-02 202208.png (88.68 KB, 下载次数: 0)
下载附件
2022-1-2 20:22 上传

有点多就不截图了,全部搜索并复制完共计36个
00499B74  /.  55            push ebp
00499BAE  /.  55            push ebp
00499ECE  /.  55            push ebp
0049A004  /.  55            push ebp
0049A02E  /.  55            push ebp
0049A058  /.  55            push ebp
0049A088  /.  55            push ebp
004C48F2  /.  55            push ebp
004C5311  /.  55            push ebp
004C579B   $  55            push ebp
004C5988  /.  55            push ebp
004C617D  /.  55            push ebp
004C6342  /.  55            push ebp
004C63F3  /.  55            push ebp
004C64CD  /.  55            push ebp
004C8312  /.  55            push ebp
004C836B  /.  55            push ebp
004C8399  /.  55            push ebp
004C83F2  /.  55            push ebp
004C844B  /.  55            push ebp
004C84A4  /.  55            push ebp
004C84FD  /.  55            push ebp
004C8556  /.  55            push ebp
004C85AF  /.  55            push ebp
004C8608  /.  55            push ebp
004C8661  /.  55            push ebp
004C86BA  /.  55            push ebp
004C8713  /.  55            push ebp
004C8CAC  /.  55            push ebp
004C8D92  /.  55            push ebp
004C8DFC  /.  55            push ebp
004C8E55  /.  55            push ebp
004C93A2  /.  55            push ebp
004C9528  /$  55            push ebp
004C975F  /.  55            push ebp
004C9983  /.  55            push ebp
这些地址就是包含了push 0x52019FBB的函数头部,不知道能不能理解为每一个地址都是一个子程序的开始?
接下来就是大工程了,先将登录按钮的按钮事件全部nop掉


屏幕截图 2022-01-02 203709.png (282.16 KB, 下载次数: 0)
下载附件
2022-1-2 20:38 上传

然后jmp到上面这36个地址,一个个地试,因为按照我的想法,总有一个是载入主功能窗口的。


屏幕截图 2022-01-02 203809.png (236.58 KB, 下载次数: 0)
下载附件
2022-1-2 20:39 上传

本以为是个大工程,没想到第二个就是呢?
哎呀,稀里糊涂的,怎么就给我进来了呢?以前也玩过撞库,没想到这也能撞对?
至此我们已经进入到主功能窗口了,点击启动,一个措不及防的蓝屏。
哈哈,原来启动还有个二次验证非法呢,蓝屏还是不好的,我们先将修改保存,然后转战到虚拟机吧。
防止我们调试的时候不小心触发暗桩了呢,先把蓝屏都去除吧,通过蓝屏探寻插件找到3处,我们定位过去把段首retn了,注意我这个retn后面的跟的参数是到段尾找到的,一定要首位对应
尾部是retn,那头部的push ebp也改成retn,如果跟参,那我们也把参数带上。比如此处就是retn 0x20


屏幕截图 2022-01-02 205158.png (275.95 KB, 下载次数: 0)
下载附件
2022-1-2 20:54 上传

三处都处理好之后,再点击启动就不会再触发蓝屏了,但是结束自身和删除自身还在呢?这个我没有处理,而是采用最简单原始的办法,备份原程序。
下按钮事件断点,断下之后F7进入CALL,就到了这个位置,这里就是启动按钮的按钮事件了,地址是0045EC7E先记录下来


屏幕截图 2022-01-02 205932.png (31.38 KB, 下载次数: 0)
下载附件
2022-1-2 21:00 上传

然后F8一步一步往下走,走到这里有一个很长的已经实现的跳转0045ECB4


屏幕截图 2022-01-02 210143.png (40.33 KB, 下载次数: 0)
下载附件
2022-1-2 21:02 上传

再一次F8,就跳转到这个CALL,


屏幕截图 2022-01-02 210804.png (200.61 KB, 下载次数: 0)
下载附件
2022-1-2 21:09 上传

本来想F7进这个CALL,结果手快按了一下F8单步跟踪,程序就终止了,而且释放了一个tem.vbs
哟呵,删除自身!


屏幕截图 2022-01-02 211654.png (57.62 KB, 下载次数: 0)
下载附件
2022-1-2 21:18 上传

那好办了,把那个已经实现的跳转0045ECB4给nop掉再点击启动按钮试试


屏幕截图 2022-01-02 211950.png (236.79 KB, 下载次数: 0)
下载附件
2022-1-2 21:20 上传

启动按钮的处理好了,接下来就是立即秒杀按钮的非法验证了,同样,下按钮断点后跟踪到立即秒杀按钮的按钮事件


image.png (176.45 KB, 下载次数: 0)
下载附件
2022-1-2 21:24 上传

然后F8单步跟,


屏幕截图 2022-01-02 212529.png (174.4 KB, 下载次数: 0)
下载附件
2022-1-2 21:26 上传

一个很长的,未实现的跳转,再F8一次到下面的CALL,程序就结束了,而且同样释放了tem.vbs。
JNZ是啥,不知道没关系,咱去百度搜,
JNZ不等于则跳转
JE 等于则跳转 同JZ JNE


屏幕截图 2022-01-02 213448.png (271.78 KB, 下载次数: 0)
下载附件
2022-1-2 21:35 上传

修改JNZ为je后,点击启动秒杀,提示请刷新飞车。
至此破解成功!

下载次数, 窗口

shi992   

大神,可以帮分析一下我一个安卓APP软件之前一直正常使用现在用不了,没有任何注册界面,类似游戏蜂窝的软件,https://wwm.lanzouw.com/ipe98z3oi8d
密码:7gsw,感谢感谢!
Only1Studio
OP
  


shi992 发表于 2022-1-22 22:18
大神,可以帮分析一下我一个安卓APP软件之前一直正常使用现在用不了,没有任何注册界面,类似游戏蜂窝的软 ...

同学我不会安卓逆向
Only1Studio
OP
  

最后面3张图请忽略,忘记删了
囚徒灬   

程序发出来玩玩
Only1Studio
OP
  


囚徒灬 发表于 2022-1-4 11:02
程序发出来玩玩

作者未同意我发原程序,不好意思哈。
风入白袍   

卧槽   牛 666
kll545012   

程序UI界面很不错
一米七五   


Only1Studio 发表于 2022-1-2 21:46
最后面3张图请忽略,忘记删了

故意的  你懂
nuanyang001   

卧槽   牛 666
您需要登录后才可以回帖 登录 | 立即注册

返回顶部