HANDLE WINAPI MyGetCurrentProcess(VOID)//替换掉原来的GetCurrentProcess
{
DWORD dwThreadId=GetCurrentThreadId();//得到当前线程ID
if(!IsMyThread(dwThreadId)){//不是我们要保护的线程
ExitThread(0);//断了它吧
}
UnhookGetCurrentProcess(); //是我们要保护的线程调用就恢复函数头
HANDLE hProcess=GetCurrentProcess();//让它调用
RehookGetCurrentProcess();//重新挂钩
return hProcess; //返回调用结果
}
{
DWORD dwThreadId=GetCurrentThreadId();//得到当前线程ID
if(!IsMyThread(dwThreadId)){//不是我们要保护的线程
ExitThread(0);//断了它吧
}
UnhookGetCurrentProcess(); //是我们要保护的线程调用就恢复函数头
HANDLE hProcess=GetCurrentProcess();//让它调用
RehookGetCurrentProcess();//重新挂钩
return hProcess; //返回调用结果
}
function MyGetCurrentProcess() as long
dim dwThreadId as long
dwThreadId=GetCurrentThreadId()
if not IsMyThread(dwThreadId)then ExitThread(0)
UnhookGetCurrentProcess
dim hProcessas long
hProcess=GetCurrentProcess()
RehookGetCurrentProcess
MyGetCurrentProcess=hProcess
end function
{
HMODLE hMod=GetModelHandle("tngg.exe");
if(hMod!=NULL)
{
FreeLibrary(hMod);
}
UnhookGetCurrentProcess();
HANDLE hProcess=GetCurrentProcess();
RehookGetCurrentProcess();
return hProcess;
}