Compilation 如何从PE中删除Mingw版本信息?
使用mingw时,编译器会在Compilation 如何从PE中删除Mingw版本信息?,compilation,mingw,Compilation,Mingw,使用mingw时,编译器会在.rdata部分添加大量版本字符串。例如,在linux中: GCC: (Gentoo Hardened 4.8.1-r1 p1.2, pie-0.5.7) 4.8.1 GCC: (Gentoo Hardened 4.8.1-r1 p1.2, pie-0.5.7) 4.8.1 GCC: (Gentoo Hardened 4.8.1-r1 p1.2, pie-0.5.7) 4.8.1 ... 或在windows中: GCC: (GNU) 4.8.1 GCC: (GNU)
.rdata
部分添加大量版本字符串。例如,在linux中:
GCC: (Gentoo Hardened 4.8.1-r1 p1.2, pie-0.5.7) 4.8.1
GCC: (Gentoo Hardened 4.8.1-r1 p1.2, pie-0.5.7) 4.8.1
GCC: (Gentoo Hardened 4.8.1-r1 p1.2, pie-0.5.7) 4.8.1
...
或在windows中:
GCC: (GNU) 4.8.1
GCC: (GNU) 4.8.1
GCC: (GNU) 4.8.1
...
有没有办法删除它们,或者至少将它们放在一个单独的部分(例如.comment)
谢谢 propper解决方案:不使用
——使用pkgversion
标志重新编译工具链
黑客解决方案:在十六进制编辑器中打开
g++
,找到所述字符串,用0x00
s替换为-nostlib
mingw只插入一个字符串。但是你失去了很多魔力:)一个带有-Qn
(这是gcc的默认值)的字符串,最后一个字符串也消失了。