gpt4 book ai didi

linux - 如何在确定地址(gcc,linux)的可执行文件中创建 "empty"空间?

转载 作者:IT王子 更新时间:2023-10-29 00:57:06 26 4
gpt4 key购买 nike

我本质上想要做的是让另一个程序将数据写入这个“空白空间”,以便可执行文件在

我想过在应用程序上附加一个签名,然后写入数据,稍后搜索它,但这听起来不太对......

现在,其他重要的事情......我知道应该可以通过使用如下代码来创建代码洞穴:

void function(void) {
__asm {
nop
nop
nop
nop
};
}

然后,即使这实际上是相同的(除了它将在 .data 部分中,因此不可执行):

const char data[3];

问题是其他应用程序没有明确的地址可以写入。

最佳答案

至少对于 PE 和 ELF,您可以将数据附加到可执行文件的末尾,而根本不会影响程序。

标准方法是将您的数据附加到可执行文件,然后附加一个数字以指示已附加了多少字节。可执行文件然后打开自身进行读取,查看表示数据长度的最后 N 个字节,然后seek s backwards by the value, to the beginning of the appended data.

This article详细介绍了如何使用上述方法制作自解压可执行文件。这与您想要的有点不同,但读取可执行文件中包含的数据的原理保持不变。

关于linux - 如何在确定地址(gcc,linux)的可执行文件中创建 "empty"空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1505132/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com