注册忘记密码

黑客论坛,黑客工具,黑客教程,QQ技术,黑客基地,黑客网络,黑客软件,黑客联盟,免杀,远控,ddos,cc,黑客攻防,黑客编程,黑客定位,手机定位,微信定位,hack,黑客网站,查开房,定位,信息查询

查看: 432|回复: 0

[免杀技术文章 ] 免杀脱壳技术

[复制链接]
   0 UID
   0帖子
   0精华
21
   0威望
500
   0金币
45816
   0贡献
5000
   0阅读权限
   200
   积分
   0
   在线时间
   600 小时
   最后登录
   2020-6-6
发表于 2020-5-23 07:34:04 来自手机 | 显示全部楼层 |阅读模式
    脱壳技术是支撑免杀技术的基础技巧之一。在黑客们试图对加壳后的恶意软件进行免杀操作时,需要做的第一步工作就是脱壳操作;当黑客们试图分析一个陌生木马所使用的免杀技巧时,需要做的第一步工作仍然是脱壳操作。因此,脱壳技术对于免杀来说虽然并非是常用技巧,但是我们仍然有必要对其做一个最基本的了解。 我们在前面详细讲解了壳的编写思路,如果我们能在写壳的基础上学会脱壳,那在防御黑客入侵时就更会如鱼得水。一般来讲,脱壳其实就是加壳的逆向操作,我们需要借助壳的Stub部分将宿主程序还原到内存里,并在其执行宿主程序映像前将其转存(Dump)出来,最后再根据具体情况决定是否需要做其他修复,到此就完成了整个脱壳过程。
    寻找OEP
   在脱壳操作中最重要的一步就是寻找原程序的OEP,因为我们在调试时判定程序是否执行到了宿主程序就需要以OEP作为标杆,我们在Dump宿主程序映像时也需要OEP信息,甚至在脱一些简单的压缩壳时,找到了OEP就几乎代表了成功脱壳,由此可见寻找OEP在脱壳技术中的重要性。 想要比较快速精准地寻找OEP,首先要做到的就是熟悉不同语言、不同编译器的OEP特征,这一点是非常有必要的。大家可以在平时多收集一些由不同语言、不同编译器编译出来的无壳程序,并用OllyDbg多多调试观察,为以后的脱壳工作打好基础。 下面我将介绍几种常见的寻找OEP的技巧,熟练掌握这些技巧可以帮助大家找到绝大部分加壳程序的OEP。
    利用内存断点
    被加壳后的程序的特点就是其宿主程序部分的内容多半已经被加密了,因此在运行此程序时,壳的Stub部分肯定要对宿主程序所在的区段进行解密还原操作,以使其能正常运行。这就不可避免地涉及对宿主程序所在区段的数据操作,因此我们可以使用访问断点或写入断点来判断哪些指令正对此区段进行操作。 我们以例子A1Pack Base为例,先用其将示例应用程序Demo加壳。加壳后的区段排列,加壳后的区段状况多了一个名为.A1Pass的区段,接下来我们查看一下Demo13-1.exe此时的OEP,为0x00011200,经过计算可得出其指向的位置位于.A1Pass段。我们都知道在默认情况下OEP只会指向.text段,由此我们可推断.A1Pass段保存有A1Pack Base的Stub部分。我们都能猜到A1Pack Base的Stub部分在运行之初会对.text段进行解密操作,因此可以通过在.text段设断点的方式来找出是哪段代码正在操作此区段中的数据。之所以这么做,是因为大多数的压缩壳与部分加密壳所做的最后一个工作往往就是还原宿主程序的数据信息,因此当我们找到Stub部分操作宿主程序区段的代码时,也就离宿主程序的OEP不远了。 运行OllyDbg加载Demo13-1.exe后,按快捷键Alt+M打开内存窗口,在其中选择.text段并右击,然后在弹出的快捷菜单中选择“设置内存写入断此时我们已经在.text段的所有位置上设定了写入断点,按F9键运行程序,此时程序中断到了如下位置:通过反汇编代码可知这是一个循环解密操作,一次仅解密一个字节的数据,因此需要在结尾的0x004113EF处下一个断点,并转到内存页面取消先前对.text段设定的写入断点,然后按F9键运行程序,从而跳过这个循环直达0x004113EF处。经过一段的单步跟踪调试,我们来到了如下位置: 从跳转的目标地址可知这是一个跨段跳转,且跳转目标位于.text区段,再次单步一次即运行到了宿主程序的OEP处。 由这次简单的调试跟踪经历可知,一般情况下壳的Stub部分与宿主程序的代码段往往不在一个区段中,因此当我们在Stub部分所在的区段中发现了指向宿主程序代码段的跨段跳转时,就代表我们已经找到OEP了。 其实对于这种简单的压缩壳,要找出其OEP还有一种更简单的方法,就是在给.text区段设置断点时将其设置为执行断点,因为大多数压缩壳将宿主程序解压解密后的第一件事就是运行宿主程序,因此执行断点所断下的地方一般就是加壳前程序的真实OEP了。

发表回复

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则


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