2012-11-17 58 views
1

我正在使用一個共享庫(Linux中的.so),它爲小型數據庫提供了XML文件,並且該XML文件已加密。這裏是我的代碼的摘要:從共享庫和加密密鑰中剝離符號

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

第一件事第一件事;有一天我用objdump檢查了這個庫,發現許多符號(甚至那些聲明爲靜態的)都被發現在目標文件中,我認爲這些文件揭示了我的大部分代碼邏輯,所以我在互聯網上搜索並發現了實用程序,因此沒有一

這將是很好知道什麼方法呢實用適用,它把符號而不是他們的名字的地址?

其次,我仍然看到。數據部分的對象文件揭示了數據庫鍵,儘管我已經去掉了這些符號。有什麼方法可以隱藏它嗎?或者可以應用哪些其他技術來加密我的數據庫文件?

任何幫助,將不勝感激。

+0

諷刺用戶名... –

回答

2

strip是做什麼刪除調試符號和信息。這通常會佔用可執行文件的很大一部分,這就是實用程序存在的原因。

至於關鍵,它將在那裏某處。你可以混淆它(加密密鑰本身,將密鑰的每個字節存儲在不同的地方等),但是如果一個黑客想找到它,他或她會找到它。他們在反向工程方面非常出色,並且搞清楚了彙編代碼的作用。

+0

哦,是的!我在腦海中提出這個問題,要求逆向工程師發現在一段代碼中正在進行加密過程有多困難。 –

+0

@JewelThief,如果其輸入的一部分是加密的,那麼不難猜測它是在某個地方解密的。 – AProgrammer