none
[DUVIDA] Como somar um address com um offset? RRS feed

  • Pergunta

  • #include <stdio.h>
    #include <windows.h>
    #include <string.h>
    #include <stdlib.h>
    #pragma comment(lib, "user32.lib")
    
    int main()
    {
      HWND     hWindow;
      DWORD    dwPID;
      HANDLE   hProcess;
      
      LPVOID  lpAddress = (LPVOID)0xA6CF9C;   //Pointer 
      LPVOID  lpBufferAddress = (LPVOID)0X0;  //Address do pointer
      LPVOID  lpNewAddress = (LPVOID)0x0;     //Address + Offset = Address verdadeiro
      LPVOID  Offset = (LPVOID)0x3F6;
    
      //Lê o address contido no pointer
    
         hWindow = FindWindow(0,"Point Blank");
         GetWindowThreadProcessId(hWindow, &dwPID);
         hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwPID);
         ReadProcessMemory(hProcess, lpAddress, &lpBufferAddress, sizeof(lpBufferAddress), NULL);
       
      //Acha o novo address
    	 
    	 lpNewAddress = lpBufferAddress + Offset;	//lpBufferAddress + Offset, como fazer?
    
    
    	 system("pause");
    
      return 0;
    }

    Preciso somar um address com um deslocamento(offset), mas eles estão em uma variável LPVOID que não da de fazer operações, teria de ficar assim:

    O address encontrado em "lpBufferAddress" por exemplo foi 0AA07BC0,

    Somando ficaria 0AA07BC0+3F6=0AA07BC0

    Como fazer?

    quarta-feira, 25 de julho de 2012 18:50