一部の関数がメモリのランダムな部分を上書きするカーネルの問題をデバッグしようとしています。使用できないメモリ領域 (通常は 0x0...00282) を読み込もうとするとカーネル oops が発生しましたが、これはデバッグにはあまり役に立ちませんでした。しかし今、私は潜在的に役立つ何かに遭遇しました.ファイルキャッシュで破損が発生したため、次のような素敵なフラグメントになりました:
000bfc0: f0ef cf17 1888 ffff 8202 0000 0000 0000 ................
000bfd0: a0af 11a4 0a88 ffff a0af 11a4 0a88 ffff ................
000bfe0: a0af 11a4 0a88 ffff 0094 aab3 0b88 ffff ................
000bff0: 8202 0000 0000 0000 214e 1281 ffff ffff ........!N......
したがって、典型的な署名が 2 回 (0x0282... 逆の順序で) 含まれており、有効なポインターが含まれているように見えるいくつかのデータがあります。それが指している構造のタイプを特定しようとする良い方法はありますか? それとも、少なくとも構造 (割り当て) のサイズですか? これから引き出すことができる他の有用な情報はありますか?
このフラグメントが、どのモジュール/関数がランダムアドレスに書き込むかを理解するのに役立つことを願っています.