hook当前进程中的flash游戏偶尔会崩溃?
圆道 2013-11-20 02:47:25 用MFC内置IE,进网页游戏后,根据句柄hook了flash游戏,时间长了就会偶尔崩溃不知道为什么,请大牛帮助分析!感谢了!
hook了send recv2个
int _stdcall hook_send( SOCKET s,const char FAR *buf, int len, int flags )
{
int nRet;
//恢复API头8个字节
WriteProcessMemory( INVALID_HANDLE_VALUE, ( void* )g_pSend, ( void* )g_dwOldBytes[0], sizeof( DWORD )*2, NULL );
//一些判断
if(len>0 && 0x71 ==buf[0])
{
//...
}
nRet = send( s, buf, len, flags );
//写入跳转语句,继续Hook
WriteProcessMemory( INVALID_HANDLE_VALUE, ( void* )g_pSend,( void* )g_btNewBytes, sizeof( DWORD )*2, NULL );
//SetEvent( g_hSendEvent );
return nRet;
}
int _stdcall hook_recv( SOCKET s,char FAR *buf, int len, int flags)
{
int nRet;
//::WaitForSingleObject( g_hRecvEvent, INFINITE );
//恢复API头8个字节
::WriteProcessMemory( INVALID_HANDLE_VALUE, ( void* )g_pRecv,( void* )g_dwOldBytesRecv[0], sizeof( DWORD )*2, NULL );
//一些判断
if(len>0 && 0x71 ==buf[0])
{
//...
}
nRet = recv( s, buf, len, flags );
//写入跳转语句,继续Hook
//::WriteProcessMemory( INVALID_HANDLE_VALUE, ( void* )g_pRecv,( void* )g_btNewBytesRecv, sizeof( DWORD )*2, NULL);
return nRet;
}
仅仅是hook了send recv没做其他处理也出错,游戏中切换地图时容易出错,这要注意什么吗,用同步也有人出错。求教了!
出错调试,总是什么wininet.dll ws_32.dll中出错,但这2个是不可能出错的,求解!