C # ReadProcessMemory: Como ler um endereço de memória de 64 bits?

Estou começando a ler a memória do aplicativo. Estou usando o CheatEngine para obter um endereço de memória e depois tentando retornar seu valor. No entanto, o CheatEngine parece estar retornando endereços de memória de 64 bits e, portanto, minha função ReadProcessMemory continua dizendo que não é possível converter um 'longo' para 'int' sempre que digito o endereço. Todos os tutoriais que encontrei parecem ser baseados em endereços de memória que são como 00AB5678, mas os que estou recebendo são mais parecidos com D3569227FC.

Portanto, minha pergunta é: como uso o ReadProcessMemory com endereços de memória muito maiores?

Aqui está o meu código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
using System.Diagnostics;

namespace ConsoleApplication1
{
    class Program
    {
        const int PROCESS_WM_READ = 0x0010;

        [DllImport("kernel32.dll")]
        public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);

        [DllImport("kernel32.dll")]
        public static extern bool ReadProcessMemory(int hProcess,
        int lpBaseAddress, byte[] lpBuffer, int dwSize, ref int lpNumberOfBytesRead);

        static void Main(string[] args)
        {
            Process process = Process.GetProcessesByName("MyProgram")[0]; 
            IntPtr processHandle = OpenProcess(PROCESS_WM_READ, false, process.Id); 

            int bytesRead = 0;
            byte[] buffer = new byte[24]; //To read a 24 byte unicode string

            ReadProcessMemory((int)processHandle, 0xD5369227FC, buffer, buffer.Length, ref bytesRead);

            Console.WriteLine(Encoding.Unicode.GetString(buffer) + 
                  " (" + bytesRead.ToString() + "bytes)");
            Console.ReadLine();
        }
    }
}

Edit: Eu converti meu aplicativo C # em um aplicativo de 64 bits acessando o VS2012 -> Projeto -> ApplicationName Properties -> Build -> Platform Target -> Altere para "x64", agora só preciso saber como alterar meu código para ler endereços de 64 bits.

questionAnswers(1)

yourAnswerToTheQuestion