2
我有一個共享庫的符號被剝離。使用已知的方法/工具來獲取符號名稱(如nm -D
,objdump
,readelf
等),我看到所有符號實際上都是隱藏的。被剝離的符號不能隱藏字符串linux工具
但是,如果我在我的共享庫上運行了strings
linux工具,我可以看到一些暴露的符號。我確信我不會在消息中打印任何這些符號,但它仍然以某種方式打印我期望被剝離的符號。
所以,我的問題是,我怎麼能隱藏我的符號,即使從linux的strings
命令行工具?任何幫助,將不勝感激。
編輯: 我使用strip -strip--all
隱藏靜態符號,我也讓-fvisibility=hidden
編譯標誌來隱藏不需要的動態符號。
請參見[這裏](http://www.muppetlabs.com/~breadbox/software/elfkickers.html)「sstrip」。 – 4566976
如果這是一個C++庫,請考慮編譯時不使用RTTI('-fno-rtti')以避免通過包含的類型信息泄漏符號。 (禁用RTTI也有助於使逆向工程更難)。 – nneonneo
它實際上是一個C庫,所以我不能使用-fno-rtti – sasfour