关于分配内存和读写内存的问题
1,能在我的程序中给另外的已经运行的一个程序分配一段内存吗?
2,能在程序中直接读写内存地址如0051268A吗?分三种情况:
a,在本程序中.
b,主程序和dll互相读写同一个地址.(反汇编好象可以,不知道delphi怎么搞)
c,读写其他程序
问题点数:0、回复次数:6Top
1 楼zengskywater007(水哥)回复于 2005-02-04 14:42:37 得分 0
内嵌汇编语言Top
2 楼alphax(豪言壮语的乌鸦)回复于 2005-02-04 14:49:41 得分 0
1,能在我的程序中给另外的已经运行的一个程序分配一段内存吗?
用共享内存
2,能在程序中直接读写内存地址如0051268A吗?分三种情况:
a,在本程序中.
可以,如果包括那个地址的内存段已经分配了的话
b,主程序和dll互相读写同一个地址.(反汇编好象可以,不知道delphi怎么搞)
可以,共用同一个地址空间
c,读写其他程序
可以,需要特权Top
3 楼stgsd()回复于 2005-02-07 19:04:42 得分 0
楼上的老大,具体怎么实现?用什么函数?请写一段看看.我过年后再来瞧.
祝各位春节愉快!!!Top
4 楼ptsk()回复于 2005-02-08 01:36:58 得分 0
1,能在我的程序中给另外的已经运行的一个程序分配一段内存吗?
2,能在程序中直接读写内存地址如0051268A吗?分三种情况:
a,在本程序中.
b,主程序和dll互相读写同一个地址.(反汇编好象可以,不知道delphi怎么搞)
c,读写其他程序
1,可以,但是很复杂,首先要SetWindowsHookEx函数把自己的DLL注入目标进程,之后DLL在目标进程领空就可以像自己给自己分配内存一样操作了。
2,可以。
a,在本程序中可以使用Windows的API,CopyMemory/ZeroMemory/MoveMemory/FullMemory
b,主程序和自己调用的Dll互相读一个地址也可以的。方法同a
c,读写其它程序使用两个API ReadProcessMemory/WriteProcessMemory。Top
5 楼zbb1031(翱翔)回复于 2005-02-08 17:26:00 得分 0
在源程序使用内存映象文件,CreateFileMapping
在目标程序使用MapViewOfViewTop
6 楼stgsd()回复于 2005-02-24 20:45:11 得分 0
楼上的各位先生:
1,我在dll中读主程序的地址,发现只有主程序有焦点时才能读到正确的值,为什么?
2,在源程序使用内存映象文件,居然在xp系统下没有用.我在98下用deiphi5编写的可以.
如果不能解决,我只有用带窗口的dll了.Top




