Postado Outubro 27, 2014 10 anos ola pessoal, seguinte, estou tentando criar um bot para tibia na versão 10.53. oque esta acontecendo é oque não estou conseguindo o valor certo apos ler a memoria. já revisei o código diversas veses e até então está certo. creio que o problema seja no endereço de memoria que estou utilizando. tenho como base os endereços do site: http://tpforums.org/forum/threads/6139-Tibia-Addresses-10-53 o meu codigo em c++ segue abaixo: // ConsoleApplication1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <Windows.h> #pragma comment(lib, "user32.lib") using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout << "Bem vindos ao tibia Hack::bot" << endl; HWND hwnd = FindWindow(0, L"Tibia"); if (hwnd == 0) { cout << "Erro, não foi possivel achar o processo tibia" << endl; } else{ cout << "Janela Tibia foi achada com sucesso." << endl; } DWORD process_id; GetWindowThreadProcessId(hwnd, &process_id); HANDLE hPro = OpenProcess(PROCESS_ALL_ACCESS, FALSE, process_id); if (!hPro){ cout << "Nao foi possivel abrir o processo!" << endl; } else{ DWORD pointer = 0x4F57C3; DWORD pointed; WORD Offset = 0x0028; int ManaAtual = 0; cout << "Processo aberto com sucesso" << endl; ReadProcessMemory(hPro, (LPCVOID)(pointer), &pointed, 4, NULL); ReadProcessMemory(hPro, (LPCVOID)(pointer+Offset), &ManaAtual, 4, NULL); cout << "Soul -> " << pointed << endl; } cin.get(); //espera o usuario digitar algo pra continuar return 0; } este exemplo simples está tentando pegar a soul do personagem. alguem ai saberia a lista correta de endereços ou onde estou errando?
Postado Outubro 30, 2014 10 anos Cara, esquece que vc não vai conseguir caso esteja usando windows com ASLR habilitado pois o base address dos programas mudam de tempo em tempo. No caso do exemplo que vc colocou 0x4F57C3 o base address seria 0x400000 e o resto seria o endereço dentro da base address então vc precisa primeiro pegar o base address do cliente tibia e modificar o base address do endereço que vc tem pelo do tibia, ai sim fazer o acesso a memoria do tibia, a cip usa o ASLR para tentar dificultar os bots, para testes o que vc precisaria é desabilitar o aslr e depois tentar criar uma função que troque a base address do endereço que vc tem pelo do cliente rodando na memoria. Mas isso é somente se for esse o seu problema
Postado Dezembro 5, 2014 10 anos Creio eu seja que nem o mlk falou acima estou parado em programação mais lembro que tinha a parada de ASLR para desabilitar e colocava baseadress na adress sempre tipo Player.Mana = 0xF2384 + Kernel.KClient.BaseAdress; assim o valor era exato em computadores tipo win 7 e tals, creio que é isso. o meu está em C# mais acho que no seu nivel tu já é esperto e consegue converte isso public KClient(Process _process, string name) { Process = _process; BaseAddress = (uint)_process.MainModule.BaseAddress.ToInt32() - 0x400000; Handle = _process.MainWindowHandle; PID = _process.Id; } Editado Dezembro 5, 2014 10 anos por Mek Fiuchem (veja o histórico de edições)
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.