2010-11-24 3 views
3

私はアセンブリに適用された難読化で十分です、私の主な関心事はパスワードや秘密鍵を含む文字列を保護することです。

私のアセンブリをSalamander Decompilerで正常に逆コンパイルしました。私の文字列が暗号化されているのを見ましたが、実行時に文字列を復号化して使用する必要がありました。

私は、アプリケーションをデバッグして、アセンブラコードを見ることができると言われました。難読化された.Netアセンブリをデバッグします

ソリューション
おそらくWinDbgのでそれを行うためのより良い方法があるが、これは、私のために働きました。

adplus -crash -pn [executablename] -o [ output directory ] 

* ADPlusのプログラムを閉じるか、それを待つ

3- WinDBGの

と同じフォルダに配置されている:

1-
2-コマンドラインとタイプを開き、プログラムを実行し閉じる
4-指定した出力ディレクトリにFULLDUMP * .dmpを開く
5 Open NotePad ++ anbを選択するTextFX-> Characters->印刷できないすべての文字を#
この形式の文字列のための 6-検索の#tの#1のR#I#N#のG '
又は

(これはしばらく時間がかかる場合があります) ' 'によってすべての '#' を置き換える' と検索' の文字列を

*ところで、平文のメモリにもあるSecureStringが見つかりませんでした。

答えて

4

パスワードや秘密鍵などの機密データの場合は、SecureStringを使用してください。

アセンブラコードを見てみると、アプリケーションが動作しているときにwindbgを使ってメモリダンプを取得し、windbgの実際のアセンブラを見ることができます。

+0

私は前にSecureStringのことを聞いたことがないと信じられない!一番便利。 –

+0

SecureStringは非常に面白いですが、私はそれがデコンパイルのことを複雑にしますが、確かに決定的な解決策ではないと確信しています。なぜなら、文字列を使用する必要がある場合、最終的には安全でない場所に移動する必要があるからです。私はwindbgのダンプを見てみましょう。 –

+0

@Cristian - これはどれくらい安全ですか?事実、あなたのコードは難読化されていますが、それがプロセッサ上で実行されている場合、十分なハッカーがそれを解読/逆コンパイルすることができます。 – Oded

1

あなたが0xd4dによってdnSpyを探して検討することができるいくつかのハード・難読化されたアプリケーション、あなたが任意の.NETアセンブリをデバッグしましょうすることができ、その自由とオープンソースの.NET逆コンパイラをデバッグしたい場合は、&あなたはブレークポイントを置くことができますvarの値を取得します。デバッグに関しては本当に面白いですし、WinDBGやOlly2を使わずにアプリケーションをデバッグできることは明らかに喜ばしいことです。

文字列の難読化については、&を保護するために非常に複雑なメソッド(.NETスタックフレーム+プライベートキー+リソース復号+ポインタ)を使用する.NETGuard's string encryptionをご覧ください。ハッカーがあなたのアプリを通過し、文字列をほとんど参照するので、私の心に文字列を保護することは最優先事項です。

関連する問題