2013-04-15 70 views
4

我正在尋找二進制加密代碼生成的選項,並找到兩個選項可用,PIC和PIE。我試圖找到兩者之間的差異,但沒有找到合適的文章。如果有人能夠以專業人士和玉米爲例來解釋這種差異,或者提供與好文章的鏈接,那麼學習起來會很好。圖片區別餡餅

我的基本動機是保護編譯好的代碼,因爲ELF/PE格式可以被病毒攻擊,或者它可以被黑客攻擊或藉助反向技術可以重新生成代碼。還請提供其他任何保護編譯代碼免受攻擊和d-compling的手段。

我正在通過Cygwin使用GCC編譯器來構建跨平臺應用程序。

+3

圖片和餡餅都與可執行文件加密無關。 –

+0

這與加密無關。 – user93353

+0

http://stackoverflow.com/a/5030518/995714 –

回答

13

gcc documentation

-fpic
生成與位置無關的代碼(PIC),其適於在一個共享庫使用...

-fpie
這些選項類似於-fPIC和-fPIC,但生成的與位置無關的代碼只能鏈接到可執行文件中。...

+4

兄弟我已經閱讀手冊,但我想知道工作差異 – Vineet1982

+4

它不是說它在那裏嗎?一個用於製作共享庫,另一個用於製作可執行文件。正如你可能想象的那樣,代碼生成的差異將根據應用程序和目標的不同而不同。 –

+0

請參閱http://stackoverflow.com/q/2463150/39648 –