以下是引用yxwsbobo在2010-8-7 16:43:55的发言:
不是容易 是有可能
*(BYTE*)ApiFun = FLATJMPCMD;
*(DWORD*)((BYTE*)ApiFun + FLATJMPCMD_LENGTH) = (DWORD)HookFun -
(DWORD)ApiFun - FLATJMPCODE_LENGTH;
比如此时运行完第一句,然后切换到另一个线程调用这个函数,此时这个函数第一个字节被修改为e9 而跳转地址还没来得及修改 所以就出错了
各有利弊
那能不能 使用
Critical sections 进行保护呢 ?