qemuゲストメモリの意図的な破損

qemuゲストメモリの意図的な破損

qemuのゲストメモリを意図的に破損させ、意図的にシステムに大きなダメージを与える方法はありますか?これまでLinuxホストでWindowsゲストを破損したように、カスタムソフトウェアを使用してqemuのメモリを修正してみましたが、qemuが使用しているメモリに入った後に正しく動作しないため、segfaultが発生しました。

答え1

Linuxでは、GUIツールgameconquerorその後端に沿ってscanmemこれを支援するための実際の作業が進行中です(アップストリームソースhttps://github.com/scanmem/scanmem)。 QEMUはすべてのVMメモリをマッピングするため、QEMUを追跡してこのメ​​モリを変更できます。

私は簡単なケースをテストしました。 Linux VMで実行されているbashシェルで長い文字列で変数を定義し、gameconquerorQEMUプロセスに関連付けられているこの文字列を検索してすべての項目を変更します(そのうちの1つだけが実際の変数です。他の可能性は次のとおりです)。メモリ内のさまざまな一時的な場所で文字列を見つけ、同じ長さを維持し、変数を再読み込みして値が変更されたことを確認します。

これで、QEMU自体のサポートの中断防止に関してgameconqueror直接的な機能はないかもしれませんが、VMのマップされたメモリが何であるかを理解することができます。

前の例では、VMには1GBがあり、QEMUのフローチャートがありました/proc/<pid>/mapsproc(5))の範囲は正確に1GBです。

7f5597e00000-7f55d7e00000 rw-p 00000000 00:00 0 

もちろんクリック率もこの範囲内に入ります。

だからまずrw-p(または少なくともパーマ)から始めて、rw-まずVMサイズの範囲を見てください。これは/proc/<pid>/mapsまず正しい領域を特定するのに役立ち、正しい領域でのみヒットを選択します。これはVMに影響を与えるはずですが、もはやQEMUには影響しません。

関連情報