请问高手怎样读取send或rec中的buf内容,并且象wpe或Commview那样将数据包的内容显示出来?(100分)

  • 主题发起人 主题发起人 fisker
  • 开始时间 开始时间
F

fisker

Unregistered / Unconfirmed
GUEST, unregistred user!
请指点!!
 
你可以根据要显示的包定义一个结构体,把收到的包值给结构体就可以了,注意包的开始位置;或者你可以自己硬解包:
procedure ShowData(buffer_length: integer;var buffer: array of BYTE; ACaption: string);
var
textlist: TStringList;
str1: string;
i, c, rlen: integer;
begin
textlist:=TStringList.Create;
textlist.Add('buffer_length='+IntToStr(buffer_length));
if buffer_length<512 then rlen:=16
else rlen:=32;
for i:=0 to buffer_length div rlen do
begin
str1:=IntToStr(i)+':';
for c:=0 to rlen-1 do
begin
if i*rlen+c<buffer_length then
str1:=str1+' '+ByteToHex(buffer[i*rlen+c]);
end;
textlist.Add(str1);
end;
Application.MessageBox(PChar(textlist.Text),PChar(ACaption),MB_OK);
textlist.Destroy;
end;
 
现在的程序大都是动态加载WS2_32.DLL,然后改变WSASend等函数地址
如:
目标进程只有调用GetModuleHandle,没有调用LoadLibrary,GetProcAddress
目标进程挂接了ws2_32.dll的WSASend,WSARecv函数
我们怎么样找到目标进程自己的myWSASend,myWSARecv函数指针
(挂接后的WSASend,WSARecv函数指针)?
 
后退
顶部