罗萨 发表于 2020-4-2 16:32

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

本帖最后由 罗萨 于 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这里先不管他。


程序打开界面,左上角是一个时钟。

反anti

直接用od载入软件之后直接报错点确定之后发生异常停止工作,看来代码在系统领空时就经过了反调试处理。我们首先得想办法把它断下来,我这里提供一个极端的办法。

在od设置中,将事件设置为系统断点,并且让他把所有条件全部中断,这样不管是什么程序一定会断下来,这样才方便我们调试,这个方法具有局限性。一般调试时一定不要这样设置。

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


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


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


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

这里是未修改程序入口点。

回到加密后的程序,我们在这里新建EIP。

同时写入代码
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
最后效果如图

保存所有修改这里程序就可以运行了

以上,@JuncoJet

罗萨 发表于 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!!!{:1_919:}

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


测试的样本不多,貌似以2A000000为关键位置呢

罗萨 发表于 2020-4-2 17:57

罗萨 发表于 2020-4-2 17:55
测试的样本不多,貌似以2A000000为关键位置呢

@JuncoJet
页: [1] 2
查看完整版本: 关于【AntiDbg.VB6 专用加密壳】反调试解决方案