嘿,今天我尝试对 NDIS.sys 进行二进制比较,我发现了一些奇怪的东西。我接受了一个函数,并开始区分它。磁盘(使用 IDA)和内存(使用 WinDbg)上的前 30 个字节相同。然后,有些事情发生了变化。我看到了类似“jmp _ imp _XXXXX”的东西。JMP 字节相同,但地址不同。
我的问题是 - 有什么不同?我认为这与搬迁有关。尽管跳转是在同一个模块中寻址,但它是一个长跳转,这使得它相对于模块基地址。如果发生重定位,它也需要重定位这个地址,尽管它在同一个模块上。
我是对的还是完全错的?:-) 谢谢。