但是好象死掉了麻烦大牛帮忙看看  希望看雪老大给个邀请码
  HWND hGame = ::FindWindow("dbgviewClass", NULL);
    if(hGame == NULL) return ; 
    
      DWORD processId; 
      HANDLE hprocess;  
      ::GetWindowThreadProcessId(hGame, &processId); 
    hprocess = ::OpenProcess(PROCESS_ALL_ACCESS, false, processId);
  BYTE pDistInctCode[10]={0x89,0x84,0x24,0x14,0x02,0x00,0x00,0x80,0x3D,0xF4};
  BYTE pDistInctOffSet[10]={0,1,2,3,4,5,6,7,8,9};
  /*0040100D  898424 14020000 MOV DWORD PTR SS:[ESP+214],EAX
  00401014    803D F4344500 0>CMP BYTE PTR DS:[4534F4],0
  0040101B    56              PUSH ESI
  0040101C    C74424 0C 00000>MOV DWORD PTR SS:[ESP+C],0
  00401024    0F84 1C010000   JE Dbgview.00401146
  0040102A    8D4424 04       LEA EAX,DWORD PTR SS:[ESP+4]
    0040102E    50              PUSH EAX
    0040102F    68 D4454300     PUSH Dbgview.004345D4                   
    00401034    68 02000080     PUSH 80000002*/
      char Address[]={""};
  int i;
    i=::FindDistInctCode(hprocess,
           pDistInctOffSet,
           pDistInctCode,
           10,
           Address);
  AfxMessageBox(Address);UINT FindDistInctCode(HANDLE hProcess,
            BYTE *DistInctOffSet,
            BYTE *DistInctCode,
            UINT DistCodeLength,
            LPSTR lPAddress)
{
  UINT rBet=0;
  CONST DWORD BaseAddress=0x400000;
  CONST DWORD endAddress=0x7fffffff;
      CONST DWORD PageSize=4096;    BYTE page[PageSize]={""}; //返回读取过来的缓冲区地址
    BYTE ReadMachineCode[]={0};   //读取的特征吗
    DWORD *TmpAddress=(DWORD *)BaseAddress;   //弄个临时地址
    //循环添加4096字节读取
    for(int PageNumer=0;(BaseAddress+PageSize*PageNumer)<endAddress;PageNumer++) 
    {
      TmpAddress+=(PageSize*PageNumer);
      ReadProcessMemory(hProcess,TmpAddress,&page,PageSize,NULL);
      for (BYTE i=0;i<PageSize;i++)  //循环加1遍历
      {    
        
        BYTE *p= (BYTE *)(page+i);   
        for(BYTE j=0;j<DistCodeLength;j++)  ////循环加1 读取特征码偏移
        {
         //通过偏移加+P读取机器指令 
          ReadMachineCode[j] =(*(BYTE *)(p+DistInctOffSet[j]));  
        }
        //比较看是否跟特征码一样        if (memcmp(ReadMachineCode,DistInctCode,DistCodeLength)==0) 
        {
          sprintf((LPSTR)(lPAddress+rBet),"%x",(ULONG)p);  //是就写入到 字符串数组中
          rBet++; 
          
        }       memset((char *)ReadMachineCode,0,DistCodeLength);
      }
       if (rBet>1)  //这里即使只有一个找到 也找不出来郁闷
      
      break;
   
    }
  return rBet;}不知道哪里错了 编译没出错