图片地址http://pan.baidu.com/share/link?shareid=235617&uk=2233679321
我不知道为什么在csdn上传图片都一直传不上去,是我的问题么要求就是读取内存找个变量的值。请大家看图给出个代码。谢谢了

解决方案 »

  1.   

    想 免费用vpn也不用这样呀
      

  2.   

    调用win32 api ReadProcessMemory writeprocessmemory 参考:using System.Runtime.InteropServices;[DllImport("kernel32.dll ")]
    static extern bool ReadProcessMemory(int hProcess, int lpBaseAddress,out int lpBuffer, int nSize, out int lpNumberOfBytesRead); 
    这个函数有五个参数,第一个参数是 进程句柄,由OpenProcess函数获取;第二个参数是要读出数据的地址,使用CE等辅助工具可取得;第三个参数是用于存放读取数据的地址;第四个参数是 要读出的数据大小;第五个参数是读出数据的实际大小。例如: 
    IntPtr hwnd = FindWindow(null, "计算器");
    const int PROCESS_ALL_ACCESS = 0x1F0FFF;
    const int PROCESS_VM_READ = 0x0010;
    const int PROCESS_VM_WRITE = 0x0020;
    if (hwnd != IntPtr.Zero)
    {
        int calcID;
        int calcProcess;
        int dataAddress;
        int readByte;
        GetWindowThreadProcessId(hwnd, out calcID);
        calcProcess = OpenProcess(PROCESS_VM_READ | PROCESS_VM_WRITE, false, calcID);
        //假设地址0X0047C9D4存在信息
        ReadProcessMemory(calcProcess, 0X0047C9D4, out dataAddress, 4, out readByte);
        MessageBox.Show(dataAddress.ToString());
    }
    else
    {
        MessageBox.Show("没有找到窗口");
    }
      

  3.   

    不是,例子是简单演示。
    你可以改为IntPtr存取数据,大小指定了读写范围,如1是1个字节,4是4个字节,100是100个字节。
    类似byte,int,byte[]