我成功截获了 TextOutW(...) TextOutA(...) 等 win32 api 函数也成功截获了 wsock32.dll 里的 recv 和 recvfrom 函数。但是偏偏 wsock32.dll 里的 send 和 sendto 函数无法很成功的截获。
(当截获这两个函数的时候,icq 软件会说:初始化socket错误,
可是截获 recv 却没问题,能够正常得到 icq 的 recv 的数据)为什么呢???
(当截获这两个函数的时候,icq 软件会说:初始化socket错误,
可是截获 recv 却没问题,能够正常得到 icq 的 recv 的数据)为什么呢???
void temp()
{
SOCKET s;
shutdown(s);
}在 dll 里不调用 temp() 函数,定义此temp()函数是为了让 dll 能够将 wsock32.dll 映射进钩子dll的地址空间里。然后你再截获 recv 函数,
此时就能够成功的了。只是截获 send 函数时会有问题,有待研究。如果
你找到答案,请告诉我。
[email protected]
[email protected]
[email protected]
thanks!
thanks
★★★ Nothing to worry about ★★★
thank u
[email protected]
[email protected]
知道为什么吗?因为在WSAStartup中调用GetProcAddress("send")得到的值就是
你HookFun的地址,而不是send函数的真正地址,再WSAStartup中
就进行判断该地址是不是等于send的真正地址,如果不是的话,
就返回false,这样,初始化就错误了,知道原因了吧,所以,用
Hook API的方法有一个很大的缺点就是别人能防止你进行Hook。
前提是你已经Hook了GetProcAddress函数。
[email protected]
thanks
[email protected]
〉
〉
〉 当我HOOK LoadLibrary和GetProcAddress,后再单击资源管理器中的文件夹时总是弹出“非法操作”其中说某某OCX错误,请问知道原因吗?
〉在Hook GetProcAddress时将LoadLibrary也Hook了吧?这样会有问题的!
目标程序如果将LoadLibrary的地址送到另外一个进程中,这个地址就不对
了。在新的进程中肯定会异常的。
我帮你测试
让我也研究研究。
[email protected]
http://www.csdn.net/magazine/source/2/APIHooK.zip
[email protected]
[email protected]
thanks!
tcp 就是如此
recv时只测试host一次
而send就要每个数据包都要测试
你自己写的tcp1是???? 可能这是两个线程速度不同的原因吧
SEND,RECV
[email protected]
谢谢