• lab1-2 初次遇见加壳程序


    一、实验环境

            操作系统:windows XP sp2

            软件:PEiD、Strings、VirSCAN.org、Free UPX V1.7

    二、实验思路

    (1)利用网络扫描工具对目标程序进行扫描

    (2)利用本地静态分析工具分析目标程序

    (3)利用自动化脱壳工具进行脱壳

    三、实验步骤

    1、使用网络扫描工具扫描

            将文件上传到virscan.org进行扫描;

             从结果可以看到31个引擎报毒,说明该程序非常危险。

    2、查看文件是否被加壳

            将待测文件放入PEiD中,可以看到PEiD显示文件加壳了,使用UPX进行加壳。

            另外,从区段表也可以看出文件是UPX加壳:

     3、使用自动化脱壳工具进行脱壳

            既然已经知道文件是通过UPX进行加壳,所以使用freeUPX进行脱壳操作。

             脱完壳生成的程序会将源程序覆盖掉,因此,将脱完壳后的文件放入PEiD中检测脱壳效果:

             可以看到,UPX壳已经被脱掉。

    4、查看导入函数

            最好使用dependency walker,这里使用PEiD对导入函数进行查看:

            查看"子系统";

             查看"输入表":

             可以看到,其导入了四个动态链接库:

             在kernel32中,需要注意的API函数:createthread():创建线程、createMutexA():创建互斥、openMutexA():打开互斥。

            在advapi32.dll中,恶意程序一般通过创建服务的方式来使自己运行。

            在wininet.dll中,可以查看到程序调用了两个其中的API函数:internetOpenUrlA、InternetOpenA.

    5、查看程序中可打印的字符

            进行这一步的目的是:如果一个主机感染了该恶意代码,主机会出现哪些网络层面的特征和主机层面的特征。

            此处用的是脱壳后的程序。

             应当注意:

            (1)可打印字符中出现了一个网址,再结合出现了我们在导入表中看到的两个API函数,可以猜测到,恶意代码可能是想连接到该网址。

            (2)需要注意到MalService,因为恶意程序会创建一个服务,因此,这个创建的服务名称很有可能就是MalService。

  • 相关阅读:
    List集合存储学生对象三种遍历方式
    ZYNQ_project:HDMI
    ts重点学习138-ts.config.json笔记
    三大数据库 sequence 之华山论剑 (中篇)
    5分钟了解二叉树之二叉查找树
    Shiro学习笔记_01:权限管理+shiro基本概念+shiro核心架构
    STM32物联网项目-SHT30温湿度采集(IIC通信)
    设计模式学习笔记(一)
    【JAVA程序设计】基于JAVA的坦克大战小游戏--入门级小游戏
    Simulink导出FMU模型文件方法
  • 原文地址:https://blog.csdn.net/qq_55202378/article/details/127653415