C++ AutoActualizar Address
esto lo que hace es buscar como si fuese scaneo pero en hexadecimal
Paso 1 :
Agrege CSignatureSearch.h a su proyecto, ya sea trainer, Dll(Multi Hack) aca ven PROYECTO CSignatureSearch.h
http://www.coderprofile.com/networks...-byte-searcher
Paso 2.
Compilar El siguiente codigo de abajo como un archivo .DLL y asegurate de editar el area que dice
/ ME *** EDIT *** /
y ponga los nombres del hack, address que buscaras XD
Código:
#include#include "CSignatureSearch.h" #define Log(SigName,Sig) fprintf(xLog, "BYTE %s[] = { %s};\n\n", SigName, Sig ); CSignatureSearch SigSearch; string second; string third; void Logger3(char szName[55]) { third = third+"Log(\"" + szName + "\","+szName+");\n"; } void Logger2(char szName[55]) { second = second + "DWORD " + szName + " = CSigSearch.SigSearch(0x00401000,0x01000000,"+szName+"Sig,sizeof("+szName+"Sig),0xEE);\n\n"; Logger3(szName); } string Logger(char szName[55],DWORD dwAddress) { string Output = SigSearch.CreateSignature(dwAddress); Logger2(szName); return Output; } void Main() { while(1) { // If we press Numpad 0 if(GetAsyncKeyState(0x60)) { FILE* xLog = fopen("Signatures.txt", "w"); if(xLog) { /* EDIT HERE - Add your hacks + addresses */ /* Examples: */ Log("UnlimitedStaminaSig",Logger("UnlimitedStamina",0x00400000).c_str() ); /* First param of Log() is the name of Sig, just put the name with Sig at the end. */ /* Second Param is always */ /* Logger("HACKNAME",0x00ADDRESS).c_str() */ /* Then you end it with ); ofcourse */ fclose(xLog); // close file when we are done logging signatures } Sleep(1000); } Sleep(30); // No lag } } // On DLL Entry bool APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpvReserved){ if(dwReason == DLL_PROCESS_ATTACH){ DisableThreadLibraryCalls(hModule); CreateThread(NULL, 0, (unsigned long(__stdcall*)(void*))Main, NULL, 0, NULL); return TRUE; } return TRUE; }
Código:
/* EDIT HERE - Add your hacks + addresses */ /* Examples: */ Log("UnlimitedStaminaSig",Logger("UnlimitedStamina ",0x00400000).c_str() ); /* First param of Log() is the name of Sig, just put the name with Sig at the end. */
Pues debes agregar
todas las Address, REGIONES en Hexadecimal que conoscas y quieras darle uso con este source
Ojo las regiones en hexadecimal las puedes buscar facilmente en memory viewer de cualquier cheat engine, son las que salen en la memory view de la siguiente manera
Código:
00 55 66 77 8B 1C 3A 4F
Click this bar to view the full image. |
Luego Busca cualquier inyector y inyectas la DLL que realizaste con este source code
Al presionar 0 Grabara Y Registrara algunas assingnaturas para Sugnatures.txt en la carpeta del juego
y al abrirlo sera Similar a este codigo :
Código:
BYTE UnlimitedStaminaSig[] = { 0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x50, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x56, 0x68, 0x41, 0xEE, 0x00, 0x00, 0xE8, 0xCF, 0xEE, 0xEE, 0x00, 0x6A, 0xEE, 0x8B, 0xF0, 0xE8, 0xEE, 0xEE, 0xEE, 0x00, 0x83, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, }; DWORD UnlimitedStamina = CSigSearch.SigSearch(0x00401000,0x010001000,UnlimitedStaminaSig,sizeof(UnlimitedStaminaSig),0xEE);
Despues de tener las asignaturas para los hack,CT ,, Puedes crear Busquedas Automatizadas de direcciones addresses con la class CSignatureSearch De la siguiente manera
Código:
#include#include "CSignatureSearch.h" FILE* xLog = fopen("Addresses.txt", "w"); int AddressCount; int TotalCount; void Log(char szName[256],DWORD dwAddress) { if(xLog != NULL) { if(dwAddress) { fprintf(xLog,"\nFunction : %s\nAddress : %.8X\n",szName,dwAddress); AddressCount++; } else { fprintf(xLog,"\nFunction : %s\nAddress : NOT FOUND!\n",szName); } } TotalCount++; } CSignatureSearch CSigSearch; /* PLACE ALL SIGNATURE LOG IN HERE: */ BYTE UnlimitedStaminaSig[] = { 0x6A, 0xFF, 0x68, 0xEE, 0xEE, 0xEE, 0x00, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00, 0x50, 0xEE, 0xEE, 0xEE, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x56, 0x68, 0x41, 0xEE, 0x00, 0x00, 0xE8, 0xCF, 0xEE, 0xEE, 0x00, 0x6A, 0xEE, 0x8B, 0xF0, 0xE8, 0xEE, 0xEE, 0xEE, 0x00, 0x83, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, }; DWORD UnlimitedStamina = CSigSearch.SigSearch(0x00401000,0x010001000,UnlimitedStaminaSig,sizeof(UnlimitedStaminaSig),0xEE); /* Main Loop */ void Main() { while(1) { if(GetAsyncKeyState(0x60)) { if(xLog) { Log("Unlimited Stamina",UnlimitedStamina); // fclose(xLog); // close file when we are done logging addresses char Buffer[82]; sprintf(Buffer,"Offsets logged! %d / %d addresses found!\nLogged to: Addresses.txt",AddressCount,TotalCount); MessageBox(0,Buffer,"OneWhoSighs's Address Updater",MB_OK); } Sleep(1000); } Sleep(30); // No lag } } bool APIENTRY DllMain(HMODULE hModule, DWORD dwReason, LPVOID lpvReserved){ if(dwReason == DLL_PROCESS_ATTACH){ DisableThreadLibraryCalls(hModule); if(dwReason == DLL_PROCESS_ATTACH){ DisableThreadLibraryCalls(hModule); CreateThread(NULL, 0, (unsigned long(__stdcall*)(void*))Main, NULL, 0, NULL); return TRUE; } return TRUE; }
0 comentarios:
Publicar un comentario