• 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。

  • 相关阅读:
    优雅而高效的JavaScript——箭头函数
    03多线程-synchronized的理解
    CSDN竞赛—第五期题解
    Hafnium之分区运行时模型
    Swagger之学习使用
    国稻种芯百团计划行动 周文彬:发现水稻高产基因绿色高效
    node.js学习之模块化、npm
    代码随想录第46天 | ● 583. 两个字符串的删除操作 ● 72. 编辑距离
    shopee、亚马逊卖家如何安全给自己店铺测评?稳定测评环境是关键
    RocketMQ 消息重复消费
  • 原文地址:https://blog.csdn.net/qq_55202378/article/details/127653415