ねえ、今日、NDIS.sys のバイナリ diff を実行しようとしましたが、奇妙なことに気付きました。私は関数を取り、それを比較し始めました。最初の 30 バイトは、ディスク (IDA を使用) とメモリ (WinDbg を使用) で同じでした。すると、何かが変わった。「 jmp_imp_XXXXX 」のようなものを見ました。JMP バイトは同じでしたが、アドレスが異なっていました。
私の質問は - 何が違いを生むのですか? 引っ越しの関係もあると思います。ジャンプは同じモジュール内でアドレス指定することですが、これは長いジャンプであるため、モジュールのベース アドレスに相対的になります。再配置が発生した場合、このアドレスも再配置する必要がありますが、同じモジュール上にあります。
私は正しいですか、それとも完全に間違っていますか? :-) ありがとう。