前端之家收集整理的这篇文章主要介绍了
提高反向工程C共享库更困难,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有兴趣采取预防措施,使得C共享库的逆向工程变得更加困难
似乎不可能完全防止,但是您可以采取可能需要更长时间的步骤,因此不太有吸引力/更昂贵的做法
像代码混淆,编译器优化选项编译器调试标志等(我会特别感兴趣的是gcc编译器)
也有兴趣在以$或人工小时为单位的逆向工程相对困难的任何想法a〜5KLOC C共享库(.so大小〜200kb).
这些是我知道的一些技巧:
>使用–strip-unneeded选项删除所有符号,除了重定位所需的所有符号(因为我们在谈论一个共享库):
strip – 不需要的libmylib.so
>与标准libc静态链接,这导致了一个更大的库/二进制,这意味着更多的代码可以通过,也是混淆,因为更容易将函数与库函数分开:
gcc -static …
>强制编译器内联小功能,这将在代码中嵌入小的函数,而不是调用它们,因此几乎不可能区分代码和标准库代码.
话虽如此,我必须补充一点,我已经使用了上述措施的二进制文件,我能在几个小时内对其进行逆向工程,如果你好奇,我开始重建symtab,而且我没有反向工程大师.
原文链接:https://www.f2er.com/c/111511.html