1

我正在研究一个共享库(Linux 中的 .so),它有一个用于小型数据库的 XML 文件,并且该 xml 文件是加密的。这是我的代码的摘要:

void my_fucnt(char *in, char *out)
{
    static char key[] = {0x34, 0x6c, 0x54....};
    enrcryption(key, in, out);
}

第一件事;前几天我正在使用 objdump 检查库,我发现许多符号(甚至那些声明为静态的符号)都在我认为揭示了我的大部分代码逻辑的目标文件中,所以我在互联网上搜索并我也发现了有关strip实用程序的信息。

很高兴知道strip实用程序应用什么方法,它是否放置符号的地址而不是它们的名称?

其次,我仍然在目标文件的.data部分中看到了显示数据库密钥的密钥,尽管我已经剥离了这些符号。有什么办法可以隐藏吗?或者可以应用哪些其他技术来加密我的数据库文件?

任何帮助,将不胜感激。

4

1 回答 1

2

什么strip是删除调试符号和信息。这通常会占用可执行文件的很大一部分,这就是该实用程序存在的原因。

至于钥匙,它会在某个地方。您可以对其进行混淆(加密密钥本身,将密钥的每个字节存储在不同的位置等),但如果破解者想要找到它,他或她会找到它。众所周知,他们擅长逆向工程和弄清楚一段汇编代码的作用。

于 2012-11-17T17:09:57.450 回答