Win32学习笔记 | recv函数
https://learn.microsoft.com/zh-cn/windows/win32/api/winsock2/nf-winsock2-recv
功能:recv 函数从连接的套接字或绑定的无连接套接字接收数据。
1. 函数原型
int WSAAPI recv([in] SOCKET s,[out] char *buf,[in] int len,[in] int flags
);
2. 参数
1)s:套接字描述符
2)* buf: 接收传入数据的缓冲区的指针
3)len:缓冲区buf的长度(以字节为单位)
4)flags:影响此函数行为的一组标志,详细备注查看文档
3. 返回值
逆向分析线索:eax中的返回值,为接收到的传入数据的实际长度
如果函数执行成功未发生错误, recv 将返回收到的字节数, buf 参数指向的缓冲区将包含接收的此数据。 如果连接已正常关闭,则返回值为零。否则,将返回值 SOCKET_ERROR,并且可以通过调用 WSAGetLastError 来检索特定的错误代码。
即函数执行成功后,eax 的值为接收的buf数据的实际长度。如果eax的值为-1(0xffffffff),代表函数执行失败 SOCKET_ERROR。如果eax的值为0,即代表函数执行成功但是没有接收到数据。
相关函数:recvfrom
recvfrom 函数接收数据报,并存储源地址。
调试断点手记
- ws2_32!recv
- wsock2!recv
在对程序逆向分析的开始,recv函数(接收网络数据)是常用的断点位置