扩大缓冲区的代码,已经验证过扩大成功了。。。。。
invoke WSAStartup,101h,addr local_stWsa
invoke socket,AF_INET,SOCK_STREAM,0
push eax
pop [esi].m_sServer
mov local_uiRcvBuf,81920
invoke setsockopt,[esi].m_sServer,SOL_SOCKET,SO_RCVBUF,addr local_uiRcvBuf,4
;invoke setsockopt,[esi].m_sServer,SOL_SOCKET,SO_SNDBUF,addr local_uiRcvBuf,4
.if eax==SOCKET_ERROR
invoke MessageBox,hWnd,addr ModifySendBufferReport,NULL,MB_OK or MB_ICONSTOP
ret
.endif
发送的代码
invoke lstrlenW,local_strRoot;返回UNICODE字符串的长度
shl ax,1 ;代表求出UNICODE字符串所占用的字节数,左移一位代表乘以2的1次方
add ax,HEADLEN
mov local_StrSize,ax
mov local_header.len,ax;这句可能会有问题,用WINDEG动态调试看一下
invoke send,[esi].m_sClient,addr local_header,HEADLEN,0;发送包头
.if (eax == SOCKET_ERROR)
mov eax,TRUE
ret
.endif ;//
mov cx,local_StrSize
sub cx,HEADLEN
mov [esi].m_PackBodySize,cx
invoke send,[esi].m_sClient,local_strRoot,local_StrSize,0;发送目录(包体) ,第3个参数必须用数字?WHY?
.if (eax == SOCKET_ERROR)
mov eax,TRUE
ret
.endif ;//
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)