某exe程序启动后自身会hook ws2_32.dll的send函数,使用的是inline hook,修改了send函数入口的5个字节,并将原来的5个字节缓存在了exe的某个地址空间,可以使用pchunter扫到。
现在自己写了一个dll,在exe启动时做了注入,并同样hook了send函数,这样我比exe早hook了send函数。我也是使用了inline hook修改前5个字节,jmp到我的dll中,这样在exe hook send函数时,它缓存的就是我修改的那5个字节的指令编码,但是这样一来,问题出现了,它执行完它的jmp之后,会去执行缓存的5个指令编码,然而此时缓存的我修改的这5个指令编码不是跳转到我的dll了,而变成跳转到一个非法的地址,导致进程崩溃。
现在不明白的地方是同样的5个字节指令编码,所解析出来的指令却不一样?请教各路大牛这是为啥??