2009-09-09 15 views
1

これは2つの部分の質問のようなものです。しかし、どちらも同じことに関係しています。私は難読化ツールを作成しようとしています

パッチを適用するためにアプリのILコードを使用したいと思っています。私は正しいアプローチが何であるか疑問に思います。明らかに、私はそれを逆コンパイルし、ilコードファイルを読み込んで編集し、再コンパイルすることができました。ファイル内のmsilコードとして読み込む方法があります。リアルタイムで編集することもできます。

実行ファイルの逆コンパイル済みコードを編集しようとしていました。私はそれを再コンパイルするたびに、私は実行に問題を起こすでしょう。それはもうエントリーポイントを見つけることができなかったように。それをどのように計算するのですか?私は、コマンドとそのパラメタの長さを知る必要があると推測したり、エントリポイントをラベルなどにする必要があります。私はこのようなもののためのVisual Studioテンプレートがあったらいいと思う。

答えて

6

は(1でフルIL分析で)2つの異なる言語でのCLIの画像ローダを実装ECMA-335スペックを複数回読んで、すでに誰かとして、私はこれはまだ私のために困難な作業になると思います。 1)あなたはこれをやっておらず、2)あなたは簡単な答えを探しているように見えます。スペックは間違いなくあなたの出発点になるはずです。

最小手順は次のようになります

  • 負荷PEイメージ(EXEまたはDLL)
  • すべてのメソッドのバイトコードを解析して解決シンボル
  • コースの最小(コード変換を適用します
  • 結果を新しいPEイメージとして保存します。

編集:これにより、.NETアセンブリの詳細な構造について学ぶ必要がなくなりますが、実際の実装には時間がかかり、難読化ロジックをローダーから完全に分離しておくのに役立ちます。

+0

Mono Cecilはこれらのステップのいくつかを自明にしますか? –

1

this threadで、確実である、MSILが読むには:

ildasm.exe - 中間言語逆アセンブラを。このツールを使用すると、コンパイルされたコードをMSILレベルで表示できます。

これは、Microsoft SDKにあります。

関連する問題