2017-11-07 28 views
0

最近、スペースを最小限に抑え、任意のアドレスに命令ポインタを設定しても電卓のOSが気にしないグラフ電卓プログラムのために、compressorを書きました。自己解凍プログラムはどのように機能しますか?

私は基本的なDEFLATEを実装して、圧縮アルゴリズムのためにgoogleを試してみました。これは実行可能なコードでうまくいくかもしれません。

しかしここに私の質問があります:DEPを使用している現代的なOSは、プログラムが抽出されたコードを(少なくとも直接ではなく)実行することを禁じます。すべての "パックされた実行可能ファイル"は、解凍されたデータに制限されているか、解凍されたインタプリタで解凍されたコードを実行するか、その間に何かがありますか?

+1

通常、自己解凍型のアーカイブは、コードをディスクにダンプし、別のプログラムとして実行します。メインプロセスでコードを抽出して実行することは、問題が少ないと言えます。これは、マルウェアやウイルスのようなものです。 – tadman

答えて

2

はDEPを有する任意の近代的なOSは

少ない直接何ら問題はもちろん存在しない(少なくとも直接ではなく)抽出されたコードを実行するためのプログラムを禁止しないであろう。たとえW^Xであっても、unpackerは書き込み可能なメモリにコードを書き込むだけで、、次にだけを実行可能なメモリに変換することができます。

多くのオペレーティングシステムでは、DEPサポートがあっても、プログラムは書き込み可能で実行可能なメモリを割り当てることができます。 DEPは、あなたが許可を得ていることをやめることを止めません。