定义一个指针变量,如何把他指向一个具体的地址,比如指向00000000地址!(0分)

  • 主题发起人 主题发起人 tigerhacker
  • 开始时间 开始时间
T

tigerhacker

Unregistered / Unconfirmed
GUEST, unregistred user!
定义一个指针变量,如何把他指向一个具体的地址,比如指向00000000地址!
 
var
p: Pointer;
begin
p := Pointer($00000001);
end;
 
可以的!可是能打印出他的内容么,我试了下,好象不可仪!
 
哪个告诉你不可以?没有具体指针类型你能打出什么?
var
p: Pointer;
begin
p := Pointer($00000001);
ShowMessage(IntToStr(PInteger(p)^));
end;
 
var
p: Pointer;
begin
p := Pointer($00000001);
Showmessage(ComponentToString(P as TMyComponent))
//ComponentToString这个函数到delphi Help里面去Copy
end;
 
怎么不能打印呢?没有搞懂你的意思。
 
vvyang,
你可以在你的delphi上面调试一下,看你的方法到底可不可以!我用的是delphi7版本的,反正我这里倒是不可以!错误提示为:"Access violation at address 004520F8 in module"
read of address 00000001.不知道你用的是什么版本的!
超级牛X,
请问你个代码要use什么东西,我找了help里面没有这个东西!
谢谢两位!
 
To tigerhacker:
您就不知道 Windows 有内存保护么?我给你举的就是个例子,您就不会把地址换成别的么?
var
p: Pointer;
begin
p := Pointer($10000001);
ShowMessage(IntToStr(PInteger(p)^));
end;
 
谢谢,我知道windows有内存保护的!
可是我就是想知道怎么突破这个保护,想看看那些低地址里面都存的是些什么东西?
不知道有办法输出低地址里面的内容么
 
用DDK可以读虚拟内存中的任意地址——如果你真的认为这样做很有意思的话。
请参考: http://www.delphibbs.com/delphibbs/dispq.asp?lid=093966
还有: http://www.delphibbs.com/delphibbs/dispq.asp?lid=836549
 
有这样突破这个保护的吗?读点基础书籍。
 
后退
顶部