web-dev-qa-db-ja.com

ramからexeをダンプし、そこから配布可能なexeを作成することは可能ですか?

Ramをダンプしてexeを取得し、そのramダンプを使用してアプリを配布することは可能ですか?もしそうなら、これは実用的な問題であり、そうであれば開発者はそれに対してどのように最善の保護を行うべきですか?

ネストされた機能/ウィジェット内にキーをネストすることでアプリを暗号化することを検討しているので、質問します。機能/ウィジェットが休止中(まだ使用されていない)の場合、暗号化されます。それが使用されると、その中にネストされた機能/ウィジェットへの別のキーとともに復号化されます。ハードドライブで暗号化されていないexeよりもリバースエンジニアリングするのが難しい場合は、遅い時間を購入するよりも。

これは、私がramからexeを取得して、配布可能なexeとしてまとめるかどうかを尋ねる理由です。上記の入れ子の方法で暗号化すると、リバースエンジニアの潜在的な試みが遅くなる可能性があると想定しています。私は質問を明確にしたかったので、なぜ質問しているのかを説明しませんでしたが、これがある程度明確になることを願っています。

4
Script Ninja

オペレーティングシステムや個々のプログラムを設計することが可能であるため、これは可能です。実行中のアプリケーションへのデバッガーレベルのアクセスにより、おそらくそれを起動したexeに近い近似を再構築できます。ただし、元のビットをコピーした場合よりも、アプリを配布するのに必ずしも良い位置にいるとは限りません。

1
ddyer

技術的にはそうですが、それほど単純ではありません。簡単に言えば、exeファイルは実行されるマシンコードのイメージ+いくつかのヘッダーデータです。これにより、リンカーにメモリに何をロードするかを指示するフィールドを持つPEファイル(Win32環境で一般的に使用されるexe)の構造が表示されます: PE .exe構造 。 (また、Wikipediaの残りの記事も確認してください。)したがって、ヘッダーとコードを再構築するには、多くの操作が必要になります。図書館等への懸念があります。

ネットで利用可能な this プログラムがありますが、私はそれを使用したことがありません。正式名称もありません。

したがって、最初の質問に答えるには、はい、それは可能ですが、ある程度の専門知識が必要になります。

一般に、コードを保護するための完全な方法はありません。処理中のデータを保護できる可能性がありますが、アルゴリズム自体は保護できません。私はいつもこう言います:「あなたがそれを完全に保護することができないなら、彼らがそれを解読するのに多くの問題を抱えていることを確認してください」。 (自己修正コードは便利かもしれませんが、それにはアセンブリが必要です)。

多少はお役に立てば幸いです。

0
Konrad Gajewski