我注入到一个进程之后,要怎么读指定内存的值呢?如果有偏移的又怎么读呢~~我直接用汇编写那程序就出错了~~代码如下,哪位大大帮我看一下~~DWORD a;
__asm
{
pushad
mov eax,0x400000
mov eax,[eax+0x20]
mov ebx,dword ptr[eax]
mov a,dword ptr ebx
popad
}上面的地址是假设的~~但为什么会出错呢~~

解决方案 »

  1.   

    unsigned char *p = (unsigned char *)0xF000FF00;
    unsigned char ch = *p;读取绝对地址0xF0000+0xFF00(16位段地址和16位偏移地址)的值。
      

  2.   

    这是不对的首先你不能跨越进程界限。。
    如果要读别的进程空间的数据。。要OpenProcess
    读自己空间的数据就不用
      

  3.   

    void main()
    {
    int  iRead;
    _asm 
    {
    mov esi, 0x400000
    mov eax, [esi]
    mov i, eax
    }
    cout << "iRead:" << hex <<  iRead << endl;
    }
    这是读自己空间的数据的代码