Robtoc
Active User
Witam, zacz??em pisa? w C++ bota w charakterze edukacyjnym nie nastawiam si? raczej na co? powa?nego, chocia? mo?e w przysz?o?ci.
Mam funkcje do odczytywania string z pami?ci tibi i odczytuje sobie sw?j nick.
Problem polega na tym ?e po wy??czeniu i w??czeniu tibi adres ulega zmianie zawsze jest Tibia.exe+co? z tym ?e nie mog? tak napisa? w programie a Tibia.exe zawsze ulega zmianie a 'co?' ju? nie.
Moje pytanie brzmi jak odczyta? w programie warto?? tibia.exe?
Skanuje adresy cheat engine.
Dzi?kuje i pozdrawiam.
@Edit
Ju? troch? ogarn??em, wiem ?e potrzebuje pobra? base adress z tibia.exe i mog? to zrobi? za pomoc? tej funkcji :
Mam t? funkcje w kodzie w jaki spos?b teraz odwo?a? si? do niej aby pobra?a base adress z tibi? Pr?bowa?em zapisa? j? do zmiennej w taki spos?b:
DWORD TibiaClient = GetModuleBase("Tibia.exe", pID);
jednak wypluwa mi error, mo?e kto? pom?c?
@Edit2
Ju? sobie poradzi?em, wie kto? jak zamieni? liczbe dziesietn? na szesnastkow? w C++?
Mo?na to zrobi? w ten spos?b
Mam funkcje do odczytywania string z pami?ci tibi i odczytuje sobie sw?j nick.
Problem polega na tym ?e po wy??czeniu i w??czeniu tibi adres ulega zmianie zawsze jest Tibia.exe+co? z tym ?e nie mog? tak napisa? w programie a Tibia.exe zawsze ulega zmianie a 'co?' ju? nie.
Moje pytanie brzmi jak odczyta? w programie warto?? tibia.exe?
Skanuje adresy cheat engine.
Dzi?kuje i pozdrawiam.
@Edit
Ju? troch? ogarn??em, wiem ?e potrzebuje pobra? base adress z tibia.exe i mog? to zrobi? za pomoc? tej funkcji :
Kod:
#include <Tlhelp32.h>
DWORD GetModuleBase()
{
MODULEENTRY32 moduleEntry = {0};
HANDLE snapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId());
DWORD base = 0;
if(!snapShot)
return 0;
moduleEntry.dwSize = sizeof(moduleEntry);
BOOL currentModule = Module32First(snapShot, &moduleEntry);
if(currentModule)
{
static char hold[1000];
memcpy(hold, moduleEntry.szModule, strlen(moduleEntry.szModule) + 1);
if(std::string(hold).find(".exe") == std::string(hold).size() - 4)
base = (DWORD)moduleEntry.modBaseAddr;
}
CloseHandle(snapShot);
return base;
}
DWORD AlignAddress(DWORD address)
{
static int base = (int)GetModuleBase();
static int XPBase = 0x400000;
address += (base - XPBase);
return address;
}
Mam t? funkcje w kodzie w jaki spos?b teraz odwo?a? si? do niej aby pobra?a base adress z tibi? Pr?bowa?em zapisa? j? do zmiennej w taki spos?b:
DWORD TibiaClient = GetModuleBase("Tibia.exe", pID);
jednak wypluwa mi error, mo?e kto? pom?c?
@Edit2
Ju? sobie poradzi?em, wie kto? jak zamieni? liczbe dziesietn? na szesnastkow? w C++?
Mo?na to zrobi? w ten spos?b
ale jak zapisa? to do zmiennej?printf("Address: %X", zmienna);