2013-04-15 69 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 –