一般的hook需要5字节,lock 什么的,也最多同时操作4字节,如果要修改5字节,严格说来是要使用同步的,以防止其他CPU访问正被修改的指令。
hotpatch的技法则是首先在函数上方,一般会因为对齐,或者编译时使用/hotpatch选项而预留出几字节的空间,首先在这些空间里写入一个5字节的远程跳转,然后再将函数的俩字节mov edi,edi指令换成一个近跳转,跳到上方的长跳转中,2字节的修改。此种技法完全不用考虑同步...