• 逆向工程核心原理——第十七章


    删除PE文件的.reloc节区

    .reloc节区是PE文件的重定位节区,对于EXE的PE文件来说,重定位对运行并没有什么影响,将其删除后程序仍然可以正常运行。

    这里我们使用自己写的add.exe

    现在我们来删除这个add.exe文件的.reloc节区。

    我们使用PEview查看add.exe文件的.reloc节区:

    首先我们看到.reloc头部起始地址为01DB,大小为固定的28字节,所以我们将.reloc头部(01DB-01FF)全部用0填充:

    然后将.reloc中的全部内容删去,我们可以看到.reloc的Size of Raw Data是从0B08开始的,于是我们删除从0B08开始的到结尾的所有数据。

    (0B08之后的数据都删除了,所以数据只到了0B07)

    然后我们修改IMAGE_FILE_HEADER-Number of Secrions项,这个项存放了PE文件有几个节区:

    我们看到这个项本来是5,现在我们改为4

    然后我们修改IMAGE_OPTIONAL_HEADER-size of Image 这个项存放了映像大小,我们删除了.reloc,所以映像大小也改变了。

    首先我们查看.reloc本来的大小

    本来的Virtual Size是D9D,再看到Section Alignment为1000,因为Virtual Size不是Section Alignment的整数倍,所以我们要网上取整,再用取整的数字将去size of Image,因此我们减去的不是D9D,而是减去1000

    所以最终是:02BD9D-1000=02AD9D


    最后,我们保存,就可以了

  • 相关阅读:
    linux下进程的实际用户ID(有效组)和有效用户ID(有效组ID)
    ubuntu下软件中心闪退问题解决
    LINUX(UNIX)文件I/O学习
    ubunut下桌面文件路径修改
    ubuntu下设置jdk/jre环境
    Fire net
    JavaScript 自己写一个 replaceAll() 函数
    Canvas 绘制一个像素风电子时钟
    Python3 笔记01:求两数之和
    尝试笔记 01 之 CSS 边角上的标签
  • 原文地址:https://www.cnblogs.com/lex-shoukaku/p/13646274.html
Copyright © 2020-2023  润新知