1、内存页面的大小是固定不变的吗,都是4096吗?
2、查找内存中"张三"这个字符串,确认出现第N个页面偏移698处,该页面内存基地址计为mbi.BaseAddress
我用ReadProcessMemory从mbi.BaseAddress+698开始读,怎么得不到“张三"?

解决方案 »

  1.   

    1. Yes that it depends on different OS, Using the API - GetSystemInfo to gain page size.
    2. You should use the API - VirtualQueryEx to query the actual base address via mbi.BaseAddress, then the address to be read is 'actual base address' + 'offset pages' * 'bytes per page' + 'offset bytes - 698'
      

  2.   

    搂主怎么查找的,一般程序不用考虑内存哪一页的,也不用考虑偏移,你得到的地址就是在4G内存的逻辑地址,直接ReadProcessMemory就行了。
    一般改内存的外挂就是直接枚举应用程序的2G内存,找到地址再直接修改。