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应该怎么转换?
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;