2013-11-20 28 views
3

使用mingw时,编译器在.rdata部分添加了很多版本字符串。例如在Linux中:如何从PE中删除Mingw版本信息?

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)?

谢谢!

+0

替换'-nostdlib'的MinGW只插入一个字符串。但是你失去了很多魔力:) – DBellavista

+0

带'-Qn'(这是gcc的默认值),最后一个字符串也不见了。 – DBellavista

+0

'gcc -fno-ident' – pts

回答

2

适用解决方案:重新编译您的工具链,但不使用--with-pkgversion标志。

哈克解决方案:在十六进制编辑器打开g++,发现说字符串,0x00小号