吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3457|回复: 11
收起左侧

[原创] 关于【AntiDbg.VB6 专用加密壳】反调试解决方案

[复制链接]
罗萨 发表于 2020-4-2 16:32
本帖最后由 罗萨 于 2020-4-2 16:33 编辑

前言
刚才在坛子里发现JuncoJet大佬发的一个AntiDbg.VB6专用加密壳,大佬的反调试强度还是非常强的,新手的话遇到这个肯定不知道如何下手了,我这里只使用了作者自带的一个vb程序做的测试 ,下面看分析。
原程序出处:https://www.52pojie.cn/forum.php?mod=viewthread&tid=1146819&pid=31079914&page=1&extra=#pid31079914
楼主使用的OD:https://www.lanzouj.com/iasngyb
准备工作
首先设置一下他的软件,我这里是把入口点修改了,入口点那里随便输入一个数值就可以。这样强度会大大提升。目录下还会生成一个AntiDbg.dll这里先不管他。

1.png
程序打开界面,左上角是一个时钟。
2.png
反anti
3.png 4.png
直接用od载入软件之后直接报错点确定之后发生异常停止工作,看来代码在系统领空时就经过了反调试处理。我们首先得想办法把它断下来,我这里提供一个极端的办法。
5.png
在od设置中,将事件设置为系统断点,并且让他把所有条件全部中断,这样不管是什么程序一定会断下来,这样才方便我们调试,这个方法具有局限性。一般调试时一定不要这样设置。

再次载入后直接停在了系统领空,同时在内存映射窗口内发现程序还没有加载主程序内存,我们要F9几次只到开始出现主程序区段内存。
6.png 7.png

F9几次之后内存窗口出现了区段,同时程序报错无法停止在我们刚刚在加壳软件中设置的断点。没关系点确定就可以。
1.png

我们再次来到内存窗口,在.text段右键跟随,这样就来到了程序的代码段。
2.png 3.png

对于VB6程序我们都知道入口点会调用一个字符串ASCII "VB5!6&vb6chs.dll",并调用 msvbvm60.ThunRTMain函数加载程序,我们可以看到加密后的软件把入口点做了处理,那么我们手动修补一下试试。
4.png
这里是未修改程序入口点。

回到加密后的程序,我们在这里新建EIP。
5.png
同时写入代码
push   004011A4      ;这个push的地址找个空的长度为32的地址随便写就可以,因为一会要填充字符串。我这里偷个懒直接把未修改的程序入口复制过来了。
call      00401044      ;这里call的地址就是上面这个ThunRTMain函数,在jmp ThunRTMain这里空格,把里面的地址复制,替换掉这里的call就可以了
然后在将push   004011A4 这里跟随,立即数,把字符串填充就可以,二进制代码为:
56 42 35 21 36 26 76 62 36 63 68 73 2E 64 6C 6C
最后效果如图
1.png
保存所有修改这里程序就可以运行了
2.png
以上,@JuncoJet

免费评分

参与人数 3吾爱币 +11 热心值 +3 收起 理由
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yuhan694 + 1 + 1 用心讨论,共获提升!
JuncoJet + 3 + 1 用心讨论,共获提升! 详细

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 罗萨 发表于 2020-4-2 16:48
对了保存之后要用lordPE修改一下入口点
 楼主| 罗萨 发表于 2020-4-2 18:17
JuncoJet 发表于 2020-4-2 17:16
试了下,改了会出错的呢

我电脑里没有vb,你可以自行测试一下,text段搜索2A 00 00 00 00 00 00 00这句上面应该就是填充字符串的地方了,我测试的样本少,可能有局限性
 楼主| 罗萨 发表于 2020-4-2 16:49
JuncoJet 发表于 2020-4-2 16:41
咳咳,push 的值好像没写分析哪里来的
有作弊嫌疑啊

vb6标准入口点都是加载的哪个dll字符串,push只是加载这个字符串,随便找个空的地址填进去就可以
Snprszy 发表于 2020-4-2 16:40
大佬牛X!!!
JuncoJet 发表于 2020-4-2 16:41
咳咳,push 的值好像没写分析哪里来的
有作弊嫌疑啊
JuncoJet 发表于 2020-4-2 16:56
罗萨 发表于 2020-4-2 16:49
vb6标准入口点都是加载的哪个dll字符串,push只是加载这个字符串,随便找个空的地址填进去就可以

呃,好像没试过,我去试试
JuncoJet 发表于 2020-4-2 17:16
罗萨 发表于 2020-4-2 16:49
vb6标准入口点都是加载的哪个dll字符串,push只是加载这个字符串,随便找个空的地址填进去就可以

试了下,改了会出错的呢
 楼主| 罗萨 发表于 2020-4-2 17:55
3.png 4.png
测试的样本不多,貌似以2A000000为关键位置呢
 楼主| 罗萨 发表于 2020-4-2 17:57
罗萨 发表于 2020-4-2 17:55
测试的样本不多,貌似以2A000000为关键位置呢

@JuncoJet
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-10 22:25

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表