bouml 逆向分析c++_简单病毒样本分析

ed498d50e96c02d55092b4ebd6046dcf.png

病毒样本分析分类

        病毒样本分析大致分为两种,一种是行为分析,一种是逆向分析

        行为分析主要是通过系统监控软件,监控系统中各资源或环境的变化,比如监控注册表、监控文件、监控进程,以及监控网络等。当然了,还可以通过 HIPS 软件来监控病毒的行为。各类系统监控工具或者是 HIPS 软件都是在系统的不同层面上进行了不同方式的 HOOK。比如说在内核层进行 HOOK,在应用层进行 HOOK。HOOK 的方式也是多样化的,比如直接 HOOK API 函数,或者 HOOK SSDT 表中的内核函数。

        逆向分析主要是通过静态分析或者动态调试来查看病毒的反汇编代码,通过断点或者单步来观察病毒的内存数据、寄存器数据等相关内容。

        行为分析可以快速的确定病毒的行为从而写出专杀工具,但是对于感染型的病毒是无法通过行为分析进行分析的,或者病毒需要某些触发条件才能执行相应的动作,这样因为系统环境的因素,也无法通过行为分析得到病毒的行为特征。逆向分析通过查看病毒的各个分支流程可以完整的、全面的查看病毒的各个流程,包括病毒需要在某些条件下才被触发的流程,都可以通过查看反汇编代码进行查看。但是,对于病毒的逆向分析需要有 Windows 的开发能力,需要有阅读汇编的代码。相对于行为分析来讲,要求的技术含量更高一些。

ed498d50e96c02d55092b4ebd6046dcf.png

实例演示

        我们通过一个真实的病毒样本,进行一次逆向分析,希望可以对病毒分析的入门者有一定的帮助。

        下载到样本后,放置到虚拟机中,虚拟机最好也处于断网情况,因为我们不确定病毒到底有哪些行为。由于我们是逆向分析,即使一些需要连网后才有的病毒行为,我们也能通过反汇编代码一览无余。放置在虚拟机中后,我们例行用 PEID 查壳之。幸运的是这个病毒没有,而且是用VC编写的。

        由于无壳,省去了脱壳的步骤。我们用 OD 载入病毒,由于是 VC 编写的直接跳过 VC 的启动函数,来到真正的病毒代码处,有点分析经验的人都能一眼看出哪些部分是 VC 的启动代码,关于如何跳过病毒的启动代码就不介绍了。我们直接来到病毒的代码处,病毒的代码如下所示(为了保证代码的美观,我去掉了 OD 中机器码的那一列,把注释列放到了对应代码的上一行):

00401457   PUSH EBP00401458   MOV EBP,ESP0040145A   SUB ESP,41800401460   PUSH EBX00401461   PUSH ESI00401462   PUSH EDI00401463   CALL 00401160

        00401457 地址处是病毒代码的开始位置,也就是我们在用 VC 写代码是的 main() 函数处。在 00401463 地址处的代码 CALL 00401160 是调用了一个函数,我们查看被调用函数的代码,代码如下:

00401160   PUSH EBP00401161   MOV EBP,ESP00401163   SUB ESP,1C00401166   LEA EAX,DWORD PTR SS:[EBP-4]00401169   PUSH EAX0040116A   PUSH 28           ; kernel32.GetCurrentProcess0040116C   CALL DWORD PTR DS:[]00401172   PUSH EAX           ; ADVAPI32.OpenProcessToken00401173   CALL DWORD PTR DS:[]00401179    TEST EAX,EAX0040117B   JE SHORT 004011CC0040117D   L
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值