Postado Setembro 30, 2015 9 anos Boa noite, galera =] Estou com um probleminha na leitura de um address. Fiz um método em c++ pra ler o valor de um endereço de memoria: int main(int argc, TCHAR* argv[]) { HWND hwnd = FindWindowA(NULL, "Tibia"); int valor = 0; DWORD address = 0xAD1030; DWORD pid; cout << "Handle : " << hwnd << endl; cout << "Endereço: " << address << endl; GetWindowThreadProcessId(hwnd,&pid); HANDLE phandle = OpenProcess(PROCESS_VM_READ,0,pid); cout << "Valor Lido : " << valor << endl; cin.get(); return 0; } É bem padrão pra ler o valor armazenado na memoria, e esse endereço que eu usei (0xAD1030) eu peguei no forum do blackD: http://www.blackdtools.net/showthread.php?62315-10-81-Blackd-Tibia-addresses-10-81 Seria o endereço da hp do personagem. O metodo roda de boa, só que ele retorna o valor 181155944, e era pra retornar o valor do hp do meu personagem. Ja tentei somar com o base (10158080 se não me engano(usei um metodo em c# pra pegar)) + o offset (20) qué o IpAddressPointerOffset, que está no linq que eu mencionei á cima, só que ai ele não reconhece o endereço. Alguém sabe por que ta retornando esse valor?
Postado Setembro 30, 2015 9 anos Amigo você não postou a função ReadProcessMemory, o erro deve estar nela, talvez esses links ajudem a resolver seu problema. http://www.tibiaking.com/forum/topic/62981-c-ler-address-do-pxg/ http://www.tibiaking.com/forum/topic/61008-c-lendo-mem%C3%B3ria/ http://balfprogramador.blogspot.comhttp://mynameisbalf.blogspot.com
Postado Setembro 30, 2015 9 anos Autor Opa, foi mau, eu apaguei a linha do codigo sem querer, faltou isso aqui: cout << "Valor: " << ReadProcessMemory(phandle, (void*)addr, &value, sizeof(value), 0) << endl; mesmo assim ele continua dando esse valor, já tentei de algumas fomas parecidas, mas não deu :/ A propósito, eu estou juntando um conteúdo, depois que conseguir fazer o que eu estou querendo, eu posto um tutorial aqui no forum. Valew
Postado Setembro 30, 2015 9 anos cout << "Valor: " << ReadProcessMemory(phandle, (void*)addr, &value, sizeof(value), 0) << endl; Tenta isso ReadProcessMemory(phandle, (void*)addr,&value,sizeof(value),0); cout << "Valor: " << value << endl; A propósito, eu estou juntando um conteúdo, depois que conseguir fazer o que eu estou querendo, eu posto um tutorial aqui no forum. Valew Muito bom saber que tem gente interessada em programar e espalhar o conhecimento no fórum! http://balfprogramador.blogspot.comhttp://mynameisbalf.blogspot.com
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.