2017-12-16 3 views
-3

Cプログラムのプロセスでunused memoryを見つける信頼できる方法を探しています。データを破損させずにどこかに "注入"する必要があるからです。プロセスメモリで未使用のメモリを見つける

私はそれにゼロだけの領域を見つけるたびに、それは良い兆候です。しかし、保証はありません:それはまだクラッシュする可能性があります。すべてのゼロ以外のメモリは確かに確実に使用されているため、信頼性の高い方法で上書きすることはできません(ほとんどのメモリには何らかのデータが入っています)。

私はあなたが本当に(アプリケーションのソースコードを持たずに)知ることはできませんが、ある種のセグメントやメモリを選択するなどのヒューリスティックはありますか?データは200KBとなる可能性があるので、これはかなり大きく、適切なアドレス範囲を見つけることは困難である。

OS機能によるメモリの割り当ては、このコンテキストでは機能しません。

+3

これはXYの問題のようです。あなたの質問の内容はどういうものですか? – melpomene

+0

@melpomene:ファイルシステムは、暗号化やパッキングなどのためにファイルシステムを(簡単に)変更することができないため、アプリケーションにカスタムデータを読み込ませる唯一の方法です。 – BullyWiiPlaza

+0

「これ」とは何か、「アプリケーション」とは何か、「私のカスタムデータ」とは何ですか? – melpomene

答えて

1

リモートプロセスを十分に理解していないと、実際にそのプロセスに割り当てられているメモリが「未使用」であることはわかりません。

(現在の内容に関係なく)書き込み可能なメモリを見つけるだけで、プロセスがクラッシュするか悪化するかどうかを確認しています。

他のプロセスでもう少し多くのメモリを割り当てるようにOSに依頼する方法があります。その方法では、メモリはプロセスで使用されておらず、プロセスは自身の割り当てによってそのアドレスを受信しません。

関連する問題