delphi如何通过偏移地址读取字符串(50分)

  • 主题发起人 主题发起人 pub66cn
  • 开始时间 开始时间
P

pub66cn

Unregistered / Unconfirmed
GUEST, unregistred user!
用流加载一文件后,
知道文件偏移$A123处有一字符串 'abc....' ,长度不定,以0结束,,如何读取他?
 
在这里能找到答案
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3919828
 
读取固定长度,例如1K或者更长,然后判断#0结束,然后转化成 abcd或者汉字之类的,我写过以前外挂用

QQ:18077968
 
有RMB报酬的话 就好读了。
 
晕,,一/三楼想收钱,也找点高难度点的问题吧,,,?

这种问题也叫卖.....历害
 
function ReadMemoryResult(Addr: cardinal
Len: Integer): string;
var
hl, hr: THandle;
buf: array[0..256] of byte;
readNum: cardinal;
I: Integer;
T: dword;
sResult: string;
begin
hl := FindWindow('Afx:400000:0:10011:0:0', '【魔域】');
GetWindowThreadProcessID(hl, hr);
hl := OpenProcess(PROCESS_VM_READ, false, hr);

ReadProcessMemory(hl, Pointer(addr), @buf, 256, T);

for I := 0 to 256 do
begin
if buf = 0 then
break;

if sResult = '' then
sResult := IntToHex(buf, 2)
else
sResult := sResult + ' ' + IntToHex(buf, 2);
end;

Result := sResult;
end;

function TransMemoryStr(sInput: string): string;
var
t: string;
begin
while sInput <> '' do
begin
t := t + chr(strtoint('$' + copy(sInput, 1, 2)));
delete(sInput, 1, 3);
end;

Result := t;
end;


调用部分,不过你拿过去可能要做稍微的改动
 

Similar threads

回复
0
查看
1K
不得闲
D
回复
0
查看
909
DelphiTeacher的专栏
D
D
回复
0
查看
704
DelphiTeacher的专栏
D
D
回复
0
查看
666
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部