【发布时间】:2018-03-22 03:12:35
【问题描述】:
我有以下代码(file.c):
int main() {}
我去gcc file.c,输出文件file.exe是26.5KB
我也尝试了-O2、-Ofast、-Os,但大小保持不变。我没有包含任何标题,什么都没有;我什至尝试输入int main(void) {}。
输出文件不应该是大约1KB吗? [我使用的是 Windows 10 - GCC 4.8.1]
上下文:
我正在尝试了解 PE 文件在 windows 中的工作方式,到目前为止,我认为我已经很好地掌握了这个概念,所以我想运行一些测试,因为我希望能够从另一个文件中获取代码,假设是file2.exe,并尝试使用OllyDBG 将其潜入file.exe。但是由于这段几乎为 NULL 的代码产生了一个可怕的 26.5KB,我真的不知道该怎么办......
【问题讨论】:
-
不要添加
--static;你真的会吓坏的。 -
它什么也没做,我猜是因为我没有包含任何库
-
好吧,如果你对 PE 文件及其格式有很好的(或者更确切地说,非常出色的)知识,你总是可以尝试类似于this hack for ELF 的东西。我不推荐它,只是出于好奇。
-
我会检查一下,但是这个问题(看似过大的输出文件)已经困扰我多年了,直到现在我才有实际理由更彻底地寻找答案
-
顺便说一句,如果你想“偷偷”一些有效载荷到可执行文件中,检测原始文件是否更小不是更容易,因为这将是一个(相对)大的变化大小?
标签: c windows gcc compilation filesize