Start New Projetct , add this files :
Log.h
Code:
char *GetDirectoryFile(char *filename);
void __cdecl Writelog (const char * fmt, ...);
void logging(HMODULE hDll);
Pattern.h
Code:
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.cpp
Code:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#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("Address.txt"), ios::app);
}
Main.cpp
Code:
#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)"\x8B\x0D\x00\x00\x00\x00\x66\x83\xB9};", "xx????xxx", 2, true);
DWORD dwServerPointer = FindPattern((PBYTE)"\x83\x3D\x00\x00\x00\x00\x00\x74\x00\xE8\x00\x00\x00\x00};", "xx???xxx?x??xx", 2, true);
DWORD dwHealthPointer = FindPattern((PBYTE)"\x8B\xB0\x00\x00\x00\x00\xE8};", "xx????x", 2, true);
DWORD dwViewAngels = FindPattern((PBYTE)"\xA1\x00\x00\x00\x00\xD9\x40\x2C","x???xxxx",1,true);
DWORD dwBasePointer = FindPattern((PBYTE)"\x81\xC6\x00\x00\x00\x00\x2B\xC2\x66\x89\x8E\xC8\x1B\x00\x00\x33\xC9", "xx????xxxxxxxxxxx", true, 2);
Writelog("//**********************************************//\n//*********** NoSoul AddyLogger ***********//\n//*********** War Rock International ***********//\n//************** Version Private ***************//\n//**********************************************//");
Writelog("//================ [ Pointers ] ================//");
Writelog("#define ADR_PLAYERPOINTER 0x00%X",dwPlayerPointer);
Writelog("#define ADR_SERVERPOINTER 0x00%X",dwServerPointer);
Writelog("#define ADR_HEALTHPOINTER 0x00%X",dwHealthPointer);
Writelog("#define ADR_BASEPOINTER 0x00%X",dwBasePointer);
Writelog("#define ADR_VIEWANGELS 0x00%X",dwViewAngels);
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;
}
I added another pattern, press thanks 