zoukankan      html  css  js  c++  java
  • 第14,15章:Runtime-Packer

    对UPX压缩的Notepad.exe程序进行分析.

     

    如图分析,第一个节区UPX0,可以看出,VirtualSize的值为10000H,而SizeOfRawData0.

    第一个节区内目前是没有任何数据的,但是虚拟地址的大小却为10000H,可以推测,它后面会放入数据---即解压后的数据.

    跟踪程序执行的流程,可以发现其一直在一个大循环中.

    程序首先获取到第二节区的首地址,然后逐渐将数据填入到第一节区,如果没有理解错的话,此压缩算法是:

    将重复的信息的位置存储起来,并且将没有重复的单独的信息和他们放在一起,构成了密文.

    解密时先将前面的一部分信息释放出来,然后循环释放即可.

    继续跟踪,在执行完循环后,会循环的访问INT,并且载入函数:

    有意思的是ordinal值全为1.并且GetProcAddress()也确实用的是函数名称作为参数.

    执行完循环之后:

    前面的pushad和这里的popad相对应:

    然后就到了正常的程序中:

    和正常的notepad.exe程序对比,是一样的:

  • 相关阅读:
    网络爬虫基础练习
    Hadoop综合大作业
    hive基本操作与应用
    用mapreduce 处理气象数据集
    熟悉常用的HBase操作
    爬虫大作业
    第三章 熟悉常用的HDFS操作
    数据结构化与保存
    获取全部校园新闻
    爬取校园新闻首页的新闻
  • 原文地址:https://www.cnblogs.com/Rev-omi/p/13203062.html
Copyright © 2011-2022 走看看