如何模拟debug写内存地址的值

来源:百度知道 编辑:UC知道 时间:2024/05/28 02:22:14
比如说我用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函数