拦截的封包buff应该怎么显示出来?
function MySend(s: TSocket; var Buf; len, flags: Integer): Integer; stdcall;
var
dwSize: cardinal;
tmp:string;
begin
//这儿进行发送的数据处理
// setlength(tmp,len);
// move(buf,tmp[1],len);
// showmessage(temp);
MessageBeep(1000); //简单的响一声
//调用直正的Send函数
WriteProcessMemory(ProcessHandle, AddSend, @OldProc[0], 8, dwSize);
Result := OldSend(S, Buf, len, flags);
JmpCode.Address := @MySend;
WriteProcessMemory(ProcessHandle, AddSend, @JmpCode, 8, dwSize);
end;
我用string显示出来是乱码.我需要显示成16进制.不知道buff应该怎么转换?
[解决办法]
以前 写过个 函数
丢了
大概是这样
function StrToHex(IStr:string):string;var I,NilCount:integer;begin I:= 1; result := ''; while true do begin if I > length(IStr) then break; if IStr[I] <> #0 then begin result := result + inttoHex(Byte(IStr[I]),2); end else begin//空字符数量 NilCount := 1; while true do begin if (I > length(IStr)) or (IStr[I] <> #0) then break; Inc(I); Inc(NilCount); end; result := result + '['+inttoStr(NilCount)+']'; Continue; end; Inc(I); end;end;