获得一个变量的指针,也取到这个变量的值了,怎么改变这个变量的值?(100分)

  • 主题发起人 主题发起人 ymkj
  • 开始时间 开始时间
Y

ymkj

Unregistered / Unconfirmed
GUEST, unregistred user!
获得一个变量的指针,也取到这个变量的值了,怎么改变这个变量的值? <br>procedure Tform1.button1.click(sender:Tobject); <br>var <br>&nbsp;p:pointer; <br>&nbsp;s:string; <br>begin <br>&nbsp;p:=getprocaddress(0,'s_test'); <br>&nbsp;s:='则试串'; <br>&nbsp;//此处如何把S写入到指针P处,改变变量s_test的值 <br>&nbsp;..... <br><br>end;
 
代码:
<br>procedure TForm1.Button2Click(Sender: TObject);<br>var <br>&nbsp;p: pointer;<br>&nbsp;s: string;<br>&nbsp;s_test: String;<br>begin <br>&nbsp;p:=getprocaddress(0,'s_test');<br>&nbsp;s :='则试串';<br>&nbsp;p := @s;<br>&nbsp;ShowMessage(String(p^));<br>&nbsp;//此处如何把S写入到指针P处,改变变量s_test的值<br>// .....<br><br>end;<br>
 
你那个getprocaddress是怎么写的?
 
看不明白。GetProcAddress是用来动态加载DLL后获取DLL导出函数的入口地址的。
 
p := @s;这样不可以,变量s_test是其它程序里的,不是本程序中的
 
你的s_test 是 一个 进程 ,而不是变量地址,找偏移地址,然后进入ring0 (windows 可能不允许改写),找一些内存修改的代码看,很长.
 
//大概这样修改其他进程的内容。<br>procedure Tform1.button1click(sender:Tobject); <br>var <br>&nbsp; &nbsp; p:pointer; <br>&nbsp; &nbsp; s:string; <br>begin <br>&nbsp; &nbsp; p:=getprocaddress(hModule,'s_test'); <br>&nbsp; &nbsp; s:='则试串';<br>&nbsp; &nbsp; WriteProcessMemory(hProcess,p,pointer(s)^,Length(s),nil);
 
p:=getprocaddress(0,'s_test');<br>第一个参数0,不知所以了 <br>其中's_test'只能是某个方法名<br><br>getprocaddress,获得句柄引用的某模块中的某个方法的指针.
 
procedure Tform1.button1.click(sender:Tobject); &nbsp;<br>var &nbsp;<br>&nbsp;p:pointer; &nbsp;<br>&nbsp;s:string; &nbsp;<br>begin &nbsp;<br>&nbsp;p:=getprocaddress(0,'s_test'); &nbsp;<br>&nbsp;s:='测试串'; &nbsp;<br>&nbsp;String(p^) := s;//此处如何把S写入到指针P处,改变变量s_test的值, <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//这样可以,但会出错,是不是要做什么处理? <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//这个是放在被调用程序里来更改调用的主程序的<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//一个输出的全局变量<br>&nbsp;..... &nbsp;<br><br>end;<br>求解
 
getprocaddress取得的是Dll函数的地址,这样直接赋一个字符串给这个地址肯定会导致错误的。你要赋给它的应该是一个Procedure的指针才行。即便这样,貌似也毫无意义啊。
 
哎~~~~,无解,结贴了,多谢大家
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部