1

小さなデータベース用のXMLファイルがあり、そのxmlファイルが暗号化されている共有ライブラリ(Linuxでは.so)に取り組んでいます。これが私のコードの要約です:

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

まず最初に; 先日、objdumpを使用してライブラリを調べていたところ、多くのシンボル(静的と宣言されたものも含む)がオブジェクトファイルに含まれていることがわかり、コードロジックのほとんどが明らかになっていると思ったので、インターネットで検索しました。ストリップユーティリティについて知ったので、私もそうしました。

ストリップユーティリティが適用する方法論と、シンボルの名前の代わりにシンボルのアドレスを配置する方法を知っておくと便利です。

次に、オブジェクトファイルの.dataセクションにキーが表示され、シンボルを削除しましたが、データベースキーが表示されています。それを隠す方法はありますか?または、データベースファイルを暗号化するために他にどのような手法を適用できますか?

どんな助けでもいただければ幸いです。

4

1 に答える 1

2

デバッグシンボルと情報をstrip削除します。多くの場合、これは実行可能ファイルの大部分を占めることがあります。これが、ユーティリティが存在する理由です。

鍵は、どこかにあるだろう。難読化することはできますが (キー自体を暗号化する、キーの各バイトを別の場所に保存するなど)、クラッカーがそれを見つけたい場合は、見つけてしまいます。彼らは、リバース エンジニアリングと、アセンブリ コードの一部が何をするかを理解することに長けていることで有名です。

于 2012-11-17T17:09:57.450 に答える