0

たとえば、次のコードを考えてみましょう。

call far ptr 90b6h:79c35c2eh
shl dword ptr [ebp+0fh],1
db 67h
daa
push eax
push cs

このコード ブロックは、C プログラミングでどのように生成されましたか? そのコードの難読化を解除するにはどうすればよいですか?

4

1 に答える 1

5

難読化された C コードではありません。これが C プログラムからのものである場合、C コードの 1 行ほどから数行のアセンブラーになります。

アセンブラーに分解されると、特に自動化されたベースでは、他の方法に進むのは非常に困難です。これらの線に沿って何かを行うツールを入手できますが、結果は元の C コードではなく、同じことを行う別のものになります。結果はまだ難読化されたように見えます。

  1. コンパイル:高水準言語をオブジェクト コードに変換します。おそらく中間のアセンブラーが残ります。
  2. 逆アセンブル:オブジェクト コードからアセンブラ ソースへ。これは、一部のプログラムまたはデバッガーで実行できます。
  3. 逆コンパイル:コンパイルされたオブジェクト コードを元のソース言語に戻すこと。

あなたが持っているのは、1または2のアセンブラ出力です.3を求めているようです.

于 2011-09-21T01:17:37.213 に答える