4

some programs generates the executable code at run-time. i.e computer virus, packed binary. this makes static analysis very difficult.

aside from packing algorithms, is there any general algorithm for self-modifying code generation? or compiler support? where can I get related documentation or paper? and what is the difference between self-modifying code and polymorphic code?

I am curious.

thank you in advance.

4

1 に答える 1

1

delnan が既に述べたように、プロセッサが実行を試みるまでは、プログラムは単なるデータです。

自己変更コードを練習するには、次の手順を実行します。

  • notepad.exeにコピーnotepad_orig.exe
  • 始めるnotepad_orig.exe
  • 現在開いnotepad.exeているメモ帳ウィンドウで開く
  • 好きなように入力してください
  • 保存して閉じます

ばかげた例かもしれませんが、ここでは何も起きていません。メモ帳は、そのコードを変更するために外部データ ソース (あなた!) を取ります。

アルゴリズムを探している場合は、アプリケーションの自動更新を提供するフレームワークを探すことをお勧めします。これは、私が考えることができる唯一の実用的な例であり、違法ではありません。

あなたのコメントへの回答として、もちろん、アプリケーションの一部を暗号化し、使用する前に復号化することができます。ただし、アプリケーションを実行するには、復号化された形式でメモリに存在し、読み取ることができる必要があります。おそらく、アプリケーションの保守が難しくなるだけです。

于 2013-05-10T14:48:20.537 に答える