socket函数里有两个sendbuf的是那个函数?
本帖最后由 sungog 于 2010-11-14 11:50:36 编辑 IDA分析一个调用,里面有两sendbuf,第一sendbuf说明数据的大小,第二个send发送数据
请问socket中有那个函数是这样的,sendto吗?请指导一下,谢谢!
int __usercall sub_840734<eax>(int a1<eax>, int a2<edx>, int a3<ecx>, int a4<ebp>)
{
int v5; // esi@1
int v6; // edi@1
int v7; // ebx@1
int v8; // [sp+0h] [bp-14h]@1
v5 = a3;
v6 = a2;
v7 = a1;
v8 = a3;
Scktcomp__TCustomWinSocket__SendBuf(*(_DWORD *)(a1 + 144), &v8, 4);
Scktcomp__TCustomWinSocket__SendBuf(*(_DWORD *)(v7 + 144), v6, v5);
return a4;
}
又找了一下资料,这个应该是自定义的TMyClientSocket 组件,
[解决办法]
socket api中没有这样的函数。
可能是MyClientSocket里的!
[解决办法]
int send( SOCKET s, const char FAR *buf, int len, int flags );
WSASend 方法能在重叠socket上发送。
int WSAAPI WSASend ( SOCKET s, LPWSABUF lpBuffers,
DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent,
int iFlags, LPWSAOVERLAPPED lpOverlapped,
LPWSAOVERLAPPED_COMPLETION_ROUTINE
lpCompletionRoutine );
[解决办法]
基于TCP的是send(...)和WSASend(...)
基于UDP的是sendto(...)和WSASendto(...)