如何直接读写指定内存地址的内容?(200分)

  • 主题发起人 主题发起人 Alden Zhou
  • 开始时间 开始时间
A

Alden Zhou

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:如果已知一内存地址,如何读写该地址的内容?具体实现的方法是
什么?谢谢!
 
ReadProcessMemory
 
Turbo Pascal内使用MemW[地址如:$0000:$047C],不知Delphi还行不行。
 
本进程内访问:
1.
var
p: Pointer;
begin
p := Ptr($3000);
end;

2.
var
p: Pointer;
begin
p := Pointer($3000);
end;
 
ReadProcessMemory(ProcessID, Address, Buffer, 20, NumRead);
 
用汇编嵌入编程;
function getdress;
begin
asm
mov bx,地址
mov ax,[地址];
RESULT:=AX;
end;
end;
 
已知的是绝对地址还是虚拟地址?
建议看一下计算机世界的一篇文章《如何访问另一进程的地址空间》,是我发表的。
 
已知的是绝对地址,那该如何解决呢?
 
我想应该知道数据类型,使用强制转换还不行吗?Windows32下不可能有绝对地址这一
说法。
 
Windows32下有这种必要吗(有这种必要我也帮不了忙)?
 
dos下:
char far* p=MK_FP(段,偏移)
嘻嘻
 
不对,delphi有一个关键字是用来声明绝对地址的,可惜我忘了。;-<
 
找到了,找到了
absolute,
var CrtMode: Byte absolute $0040;
这样就声明了一个对应绝对地址的变量,然后就读吧
 
用ABSOLUTE肯定不行,我经试过了!正确的方法我也想知道
 
absolute并不错,只是那只能在DOS实模式下用。
 
ypy,可以把你的那篇文章在第几期告诉我吗?要不然,发给我也行。
goubo@gou.com.cn
 
有一个控件,就是干这个的Tvichw32
我的主页上有http://sunhy.126.com
 
后退
顶部