2013-11-20 22 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小號