-
-
[求助]hook recv 的神奇问题
-
发表于:
2009-5-5 16:51
5882
-
我hook 方式是修改头五字节,进行的HOOK RECV
处理函数应该也是没问题的
int my_recv (
SOCKET s,
char FAR* buf,
int len,
int flags
)
{
int nRet;
...................//处理代码
}
但是hook recv 时,第一包 就给返回了 -1,
后来,我就就强行的这样处理
如果返回值是 -1,那么我就返回 1 回去,
如此一来,程序居然可以正常的 recv 到数据,
得到的调试信息如图:
程序最开始
recv(728,buf, 1024 , 0);
最开始时的大小是 1024 ,因为 返回 -1错误,我强行的返回 1回去,然后被HOOK 的程序
又一直调用 recv,将长度 len--,一直到
recv(socket,buf,589,0 ) 是成功收到数据
后面的 2194 是收到另外的一个数据包,
我想问;为什么会出现这样神奇的问题呢?
注:图是刷新一次验证码的 recv 数据,
错误代码即为: GetLastError(),一直到 len == 589 时,才成功
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课