Stavo pensando di farmi il mio logger personale.Cioè , un logger che mi trovasse gli address, ma comunque volevo solo prendere una guida e copia incollarla, niente di che, poi ci lavorerò su.
Allora gli errori sono questi:
1>------ Inizio compilazione: Progetto: Logger, Configurazione: Release Win32 ------
1> Log.cpp
1>Log.cpp(15): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(105): vedere la dichiarazione di 'strcpy'
1>Log.cpp(16): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\string.h(110): vedere la dichiarazione di 'strcat'
1>Log.cpp(2
: warning C4996: '_vsnprintf': This function or variable may be unsafe. Consider using _vsnprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> C:\Program Files\Microsoft Visual Studio 10.0\VC\include\stdio.h(363): vedere la dichiarazione di '_vsnprintf'
1>Log.cpp(35): error C2664: 'GetModuleFileNameW': impossibile convertire il parametro 2 da 'char [320]' a 'LPWSTR'
1> I tipi a cui si punta sono privi di relazioni. La conversione richiede reinterpret_cast, cast di tipo C o cast di tipo funzione
1>Log.cpp(3
: fatal error C1075: fine file raggiunta prima che fosse trovata la corrispondenza per l'elemento parentesi graffa '{' di sinistra in 'Log.cpp(33)'
1> Main.cpp
1>Main.cpp(11): error C2664: 'GetModuleHandleW': impossibile convertire il parametro 1 da 'const char [12]' a 'LPCWSTR'
1> I tipi a cui si punta sono privi di relazioni. La conversione richiede reinterpret_cast, cast di tipo C o cast di tipo funzione
1>Main.cpp(17): error C2153: le costanti esadecimali devono avere almeno una cifra esadecimale
1>Main.cpp(1
: error C2153: le costanti esadecimali devono avere almeno una cifra esadecimale
========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========
e i codici sono questi:
Pattern.h
DWORD dwSize;
DWORD dwStartAddress;
BOOL bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
for(;*szMask;++szMask,++pData,++bMask)
{
if(*szMask == 'x' && *pData != *bMask)
return 0;
}
return (*szMask)==NULL;
}
DWORD FindPattern(BYTE *bMask, char * szMask, int codeOffset, BOOL extract)
{
for(DWORD i = 0; i < dwSize; i++)
{
if(bCompare((BYTE*)(dwStartAddress + i),bMask,szMask))
{
if(extract)
{
return *(DWORD*)(dwStartAddress + i + codeOffset);
}
else
{
return (DWORD)(dwStartAddress + i + codeOffset);
}
}
}
return NULL;
}
Log.h
char *GetDirectoryFile(char *filename);
void __cdecl Writelog (const char * fmt, ...);
void logging(HMODULE hDll);
Main.cpp
#include <windows.h>
#include <stdio.h>
#include "Log.h"
#include "Pattern.h"
void SearchPatterns(void)
{
Sleep(1000);
dwStartAddress = 0x400000;
do {
dwStartAddress = (DWORD)GetModuleHandle("WarRock.exe");
Sleep(10);
}while(!dwStartAddress);
dwSize = 0x500000;
DWORD dwPlayerPointer = FindPattern((PBYTE)"\xA1\xF0\x8A\x9D\x00\x3B\xC3\x 74\x16\x33\xC9\x41\x89\x98\xA4\x02\x01\x00 ","xxxx?xxxxxxxxxxx?",1,true);
DWORD dwServerPointer = FindPattern((PBYTE)"\x83\x3D\x8C\x8A\x9D\x00\x00\x 74\x07\xE8\x50\x02\x00\x00\xEB\x02\x32\xC0\x84\xC0 ", "xxxxx??xxxxx??xxxxxx", 2, true);
//Now only Player & Serverpointer, you can fiind some Patterns here in the forum! I will post it under this topic
Writelog("//==============Chowniiqhtz's Logger==============\\");
Writelog("//==============Created and developed by:==============\\");
Writelog("//======================Chowniiqhtz===================\\");
Writelog("#define Addr_Playerpointer 0x00%X",dwPlayerPointer);
Writelog("#define Addr_Serverpointer 0x00%X",dwServerPointer);
Writelog("************************************************");
Writelog("//==============hackmix.altervista.org==============\\");
ExitProcess(0);
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);
if (dwReason==DLL_PROCESS_ATTACH)
{
logging(hDll);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)SearchPatterns, NULL, NULL, NULL);
}
return TRUE;
}
Log.cpp
#include <stdio.h>
using namespace std;
ofstream ofile;
char dlldirectory[320];
char *GetDirectoryFile(char *filename)
{
static char path[320];
strcpy(path, dlldirectory);
strcat(path, filename);
return path;
}
void __cdecl Writelog(const char *fmt, ...)
{
if(ofile != NULL)
{
if(!fmt) { return; }
va_list va_alist;
char logbuf[256] = {0};
va_start (va_alist, fmt);
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
va_end (va_alist);
ofile << logbuf << endl;
}}
void logging(HMODULE hDll){
DisableThreadLibraryCalls(hDll);
GetModuleFileName(hDll, dlldirectory, 512);
for(int i = strlen(dlldirectory); i > 0; i--) { if(dlldirectory[i] == '\\') { dlldirectory[i+1] = 0; break; } }
ofile.open(GetDirectoryFile("Pocciox's Logger.txt"), ios::app);
Come posso aggiustare il tutto???D:
sono anche disposto a dare il progetto se vi serve.....Tanto non è mio ...
Grazie a chi proverà ad aiutarmi a risolvere il problema.