我对"东方不败"游戏修改器很感兴趣,
它的原理应该是用读写内存来实现的.
我想知道在Wind98/2000下如何实现对内存的读写?

解决方案 »

  1.   

    用ToolHelp的函数库。
    用Write/ReadProccessMemory()来写和内存
      

  2.   

    WriteProcessMemory函数是调试系列函数的一员,它的原型如下:BOOL WriteProcessMemory(
      HANDLE hProcess,                // handle to process
      LPVOID lpBaseAddress,           // base of memory area
      LPCVOID lpBuffer,               // data buffer
      SIZE_T nSize,                   // count of bytes to write
      SIZE_T * lpNumberOfBytesWritten // count of bytes written
    );它的功能是往指定进程的内存区域写入数据,如果要写的区域不允许访问,则调用失败。其中第一个参数是目的进程的句柄,第二个参数是内存区域的起点,第三个是要写的数据存放的缓冲区,第四个是要写入的字节数,最后一个参数是实际写入的字节数。拥有一个有着PROCESS_VM_WRITE和PROCESS_VM_OPERATION访问权利的进程句柄的进程都可以调用这个函数,被写入数据的进程的地址空间一般是处在正被调试的状态。如果您希望了解更多关于调试函数的用法的信息,您可以参看Q121093里面的详细讲述以及很多具体的例子代码(http://support.microsoft.com/default.aspx?scid=kb;en-us;Q121093)以及
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/debug_35rt.asp等有关的信息。- 微软全球技术中心 VC技术支持本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。为了为您创建更好的讨论环境,请参加我们的用户满意度调查
    (http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。