如何模拟debug写内存地址的值
比如说我用debug的D命令可以查看一个地址的值如:-d0040:0017用E命令可以改写,如果用想写一个程序来实现这个功能,请问如何写。任何语言都可以...
比如说我用debug 的D命令可以查看一个地址的值如:-d 0040:0017 用E命令可以改写,如果用想写一个程序来实现这个功能,请问如何写。任何语言都可以
展开
展开全部
debug是16位dos上的调式器,如果你用的是windows,你必须创建基于VDM(DOS虚拟机)的exe程序,使用x86的虚拟8086来运行程序,此时的内存地址是0040:0017形式的。你可以给指针赋硬值来访问所有内存空间。
例:
char far * pvf = 0x40017;
*pvf = (你所要赋的值 );
如果你编写32windows程序,内存地址是32位的,例如0x0045C320形式。x86机器上使用实模式,开启分页机制。用指针只能访问本进程的地址空间,访问任意进程地址空间可以用WriteProcessMemory函数
例:
char far * pvf = 0x40017;
*pvf = (你所要赋的值 );
如果你编写32windows程序,内存地址是32位的,例如0x0045C320形式。x86机器上使用实模式,开启分页机制。用指针只能访问本进程的地址空间,访问任意进程地址空间可以用WriteProcessMemory函数
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询