KryptiC
11-14-2007, 06:28 AM
I'm having trouble injecting a dll into a running process. I'm following the stickied tutorials. I build both the .dll and .exe and i get no errors, but when i run the exe, it can't inject to gta san andreas. This is my code:
DLL:
functions.cpp
#include "stdafx.h"
#include "functions.h"
// Thanks to Sobeit
DWORD* dwCarPointerBase = (DWORD*)0xB6F3B8; //car base
DWORD proc_id;
HANDLE hProcess;
void OpenMemory()
{
HWND hWnd = FindWindow(0, "GTA: San Andreas");
GetWindowThreadProcessId(hWnd, &proc_id);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);
}
void Writelong(long addy, long value)
{
OpenMemory();
WriteProcessMemory(hProcess, (LPVOID*)(DWORD) addy, &value, sizeof(value), NULL);
}
// Player functions
void Health()
{
Writelong(0x96916D, 1);
}
void Money()
{
Writelong(0xB7CE50, 1337);
}
void Money1()
{
Writelong(0xB7CE50, 50000);
}
void Money2()
{
Writelong(0xB7CE50, 100000);
}
void Money3()
{
Writelong(0xB7CE50, 1000000);
}
void Money4()
{
Writelong(0xB7CE50, 999999999);
}
// Cheats
void CarsCanFlyA()
{
Writelong(0x969160, 1);
}
void CarsCanFlyD()
{
Writelong(0x969160, 0);
}
void BoatsCanFlyA()
{
Writelong(0x969153, 1);
}
void BoatsCanFlyD()
{
Writelong(0x969153, 0);
}
void CarsNos()
{
Writelong(0x969165, 1);
}
void MegaJumpA()
{
Writelong(0x96916C, 1);
}
void MegaJumpD()
{
Writelong(0x96916C, 0);
}
void JetPack()
{
Writelong(0x969170, 1);
}
void MaxStamina()
{
Writelong(0x969181, 1);
}
// Other
//Inf. Nos
float* fXSpeed = (float*)((*dwCarPointerBase) + 68); // X Speed
float* fYSpeed = (float*)((*dwCarPointerBase) + 72); // Y Speed
float* fZSpeed = (float*)((*dwCarPointerBase) + 76); // Z Speed
void InfNos()
{
if(*dwCarPointerBase)
if (GetAsyncKeyState(VK_LSHIFT) < 0)
{
*fXSpeed += *fXSpeed;
*fYSpeed += *fYSpeed;
}
}
LH1337DLL.def
LIBRARY LH1337DLL
EXPORTS
Health
Money
Money1
Money2
Money3
Money4
CarsCanFlyA
CarsCanFlyD
BoatsCanFlyA
BoatsCanFlyD
CarsNos
MegaJumpA
MegaJumpD
JetPack
MaxStamina
InfNos
functions.h
#pragma once
void Health();
void Money();
void Money1();
void Money2();
void Money3();
void Money4();
void CarsCanFlyA();
void CarsCanFlyD();
void BoatsCanFlyA();
void BoatsCanFlyD();
void CarsNos();
void MegaJumpA();
void MegaJumpD();
void JetPack();
void MaxStamina();
void InfNos();
And now my EXE (i left out some unimportant stuff)
#include "stdafx.h"
#include "LH1337EXE.h"
#include "LH1337EXEDlg.h"
HINSTANCE hDLL = NULL;
typedef void (*HEALTH)();
HEALTH Health;
typedef void (*MONEY)();
MONEY Money;
typedef void (*MONEY1)();
MONEY1 Money1;
typedef void (*MONEY2)();
MONEY2 Money2;
typedef void (*MONEY3)();
MONEY1 Money3;
typedef void (*MONEY4)();
MONEY1 Money4;
typedef void (*CARSCANFLYA)();
CARSCANFLYA CarsCanFlyA;
typedef void (*CARSCANFLYD)();
CARSCANFLYD CarsCanFlyD;
typedef void (*BOATSCANFLYA)();
BOATSCANFLYA BoatsCanFlyA;
typedef void (*BOATSCANFLYD)();
BOATSCANFLYD BoatsCanFlyD;
typedef void (*CARSNOS)();
CARSNOS CarsNos;
typedef void (*MEGAJUMPA)();
MEGAJUMPA MegaJumpA;
typedef void (*MEGAJUMPD)();
MEGAJUMPD MegaJumpD;
typedef void (*JETPACK)();
JETPACK JetPack;
typedef void (*MAXSTAMINA)();
MAXSTAMINA MaxStamina;
typedef void (*INFNOS)();
INFNOS InfNos;
BOOL CLH1337EXEDlg::OnInitDialog()
{
CDialog::OnInitDialog();
hDLL = AfxLoadLibrary("LH1337DLL");
if( hDLL == NULL )
{
MessageBox("Could not load LH1337DLL.dll");
}
else
{
Money = (MONEY)GetProcAddress(hDLL, "MONEY");
Health = (HEALTH)GetProcAddress(hDLL, "HEALTH");
Money1 = (MONEY1)GetProcAddress(hDLL, "MONEY1");
Money2 = (MONEY2)GetProcAddress(hDLL, "MONEY2");
Money3 = (MONEY3)GetProcAddress(hDLL, "MONEY3");
Money4 = (MONEY4)GetProcAddress(hDLL, "MONEY4");
CarsCanFlyA = (CARSCANFLYA)GetProcAddress(hDLL, "CARSCANFLYA");
CarsCanFlyD = (CARSCANFLYD)GetProcAddress(hDLL, "CARSCANFLYD");
BoatsCanFlyA = (BOATSCANFLYA)GetProcAddress(hDLL, "BOATSCANFLYA");
BoatsCanFlyD = (BOATSCANFLYD)GetProcAddress(hDLL, "BOATSCANFLYD");
CarsNos = (CARSNOS)GetProcAddress(hDLL, "CARSNOS");
MegaJumpA = (MEGAJUMPA)GetProcAddress(hDLL, "MEGAJUMPA");
MegaJumpD = (MEGAJUMPD)GetProcAddress(hDLL, "MEGAJUMPD");
JetPack = (JETPACK)GetProcAddress(hDLL, "JETPACK");
MaxStamina = (MAXSTAMINA)GetProcAddress(hDLL, "MAXSTAMINA");
InfNos = (INFNOS)GetProcAddress(hDLL, "INFNOS");
}
void CLH1337EXEDlg::OnButton1()
{
Money();
}
void CLH1337EXEDlg::OnButton3()
{
Money1();
}
void CLH1337EXEDlg::OnButton4()
{
Money2();
}
void CLH1337EXEDlg::OnButton5()
{
Money3();
}
void CLH1337EXEDlg::OnButton6()
{
Money4();
}
void CLH1337EXEDlg::OnButton7()
{
Health();
}
void CLH1337EXEDlg::OnButton8()
{
CarsCanFlyA();
}
void CLH1337EXEDlg::OnButton9()
{
CarsCanFlyD();
}
void CLH1337EXEDlg::OnButton10()
{
BoatsCanFlyA();
}
void CLH1337EXEDlg::OnButton11()
{
BoatsCanFlyD();
}
void CLH1337EXEDlg::OnButton12()
{
CarsNos();
}
void CLH1337EXEDlg::OnButton14()
{
MegaJumpA();
}
void CLH1337EXEDlg::OnButton15()
{
MegaJumpD();
}
void CLH1337EXEDlg::OnButton16()
{
JetPack();
}
void CLH1337EXEDlg::OnButton17()
{
MaxStamina();
}
void CLH1337EXEDlg::OnButton18()
{
InfNos();
}
So, once again, I have no problem compiling the project, it just doesn't inject the dll to gta san andreas (Could not load LH1337DLL.dll). Help would be greatly appreciated. I have the process name corect, I've checked 10 times:p Also, I'm a C++ beginner, I only started a few days ago. BTW, this site rocks! It has the best hack-making tutorials ever! Great work, I'm looking forward to more great tutorials!!!
DLL:
functions.cpp
#include "stdafx.h"
#include "functions.h"
// Thanks to Sobeit
DWORD* dwCarPointerBase = (DWORD*)0xB6F3B8; //car base
DWORD proc_id;
HANDLE hProcess;
void OpenMemory()
{
HWND hWnd = FindWindow(0, "GTA: San Andreas");
GetWindowThreadProcessId(hWnd, &proc_id);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, proc_id);
}
void Writelong(long addy, long value)
{
OpenMemory();
WriteProcessMemory(hProcess, (LPVOID*)(DWORD) addy, &value, sizeof(value), NULL);
}
// Player functions
void Health()
{
Writelong(0x96916D, 1);
}
void Money()
{
Writelong(0xB7CE50, 1337);
}
void Money1()
{
Writelong(0xB7CE50, 50000);
}
void Money2()
{
Writelong(0xB7CE50, 100000);
}
void Money3()
{
Writelong(0xB7CE50, 1000000);
}
void Money4()
{
Writelong(0xB7CE50, 999999999);
}
// Cheats
void CarsCanFlyA()
{
Writelong(0x969160, 1);
}
void CarsCanFlyD()
{
Writelong(0x969160, 0);
}
void BoatsCanFlyA()
{
Writelong(0x969153, 1);
}
void BoatsCanFlyD()
{
Writelong(0x969153, 0);
}
void CarsNos()
{
Writelong(0x969165, 1);
}
void MegaJumpA()
{
Writelong(0x96916C, 1);
}
void MegaJumpD()
{
Writelong(0x96916C, 0);
}
void JetPack()
{
Writelong(0x969170, 1);
}
void MaxStamina()
{
Writelong(0x969181, 1);
}
// Other
//Inf. Nos
float* fXSpeed = (float*)((*dwCarPointerBase) + 68); // X Speed
float* fYSpeed = (float*)((*dwCarPointerBase) + 72); // Y Speed
float* fZSpeed = (float*)((*dwCarPointerBase) + 76); // Z Speed
void InfNos()
{
if(*dwCarPointerBase)
if (GetAsyncKeyState(VK_LSHIFT) < 0)
{
*fXSpeed += *fXSpeed;
*fYSpeed += *fYSpeed;
}
}
LH1337DLL.def
LIBRARY LH1337DLL
EXPORTS
Health
Money
Money1
Money2
Money3
Money4
CarsCanFlyA
CarsCanFlyD
BoatsCanFlyA
BoatsCanFlyD
CarsNos
MegaJumpA
MegaJumpD
JetPack
MaxStamina
InfNos
functions.h
#pragma once
void Health();
void Money();
void Money1();
void Money2();
void Money3();
void Money4();
void CarsCanFlyA();
void CarsCanFlyD();
void BoatsCanFlyA();
void BoatsCanFlyD();
void CarsNos();
void MegaJumpA();
void MegaJumpD();
void JetPack();
void MaxStamina();
void InfNos();
And now my EXE (i left out some unimportant stuff)
#include "stdafx.h"
#include "LH1337EXE.h"
#include "LH1337EXEDlg.h"
HINSTANCE hDLL = NULL;
typedef void (*HEALTH)();
HEALTH Health;
typedef void (*MONEY)();
MONEY Money;
typedef void (*MONEY1)();
MONEY1 Money1;
typedef void (*MONEY2)();
MONEY2 Money2;
typedef void (*MONEY3)();
MONEY1 Money3;
typedef void (*MONEY4)();
MONEY1 Money4;
typedef void (*CARSCANFLYA)();
CARSCANFLYA CarsCanFlyA;
typedef void (*CARSCANFLYD)();
CARSCANFLYD CarsCanFlyD;
typedef void (*BOATSCANFLYA)();
BOATSCANFLYA BoatsCanFlyA;
typedef void (*BOATSCANFLYD)();
BOATSCANFLYD BoatsCanFlyD;
typedef void (*CARSNOS)();
CARSNOS CarsNos;
typedef void (*MEGAJUMPA)();
MEGAJUMPA MegaJumpA;
typedef void (*MEGAJUMPD)();
MEGAJUMPD MegaJumpD;
typedef void (*JETPACK)();
JETPACK JetPack;
typedef void (*MAXSTAMINA)();
MAXSTAMINA MaxStamina;
typedef void (*INFNOS)();
INFNOS InfNos;
BOOL CLH1337EXEDlg::OnInitDialog()
{
CDialog::OnInitDialog();
hDLL = AfxLoadLibrary("LH1337DLL");
if( hDLL == NULL )
{
MessageBox("Could not load LH1337DLL.dll");
}
else
{
Money = (MONEY)GetProcAddress(hDLL, "MONEY");
Health = (HEALTH)GetProcAddress(hDLL, "HEALTH");
Money1 = (MONEY1)GetProcAddress(hDLL, "MONEY1");
Money2 = (MONEY2)GetProcAddress(hDLL, "MONEY2");
Money3 = (MONEY3)GetProcAddress(hDLL, "MONEY3");
Money4 = (MONEY4)GetProcAddress(hDLL, "MONEY4");
CarsCanFlyA = (CARSCANFLYA)GetProcAddress(hDLL, "CARSCANFLYA");
CarsCanFlyD = (CARSCANFLYD)GetProcAddress(hDLL, "CARSCANFLYD");
BoatsCanFlyA = (BOATSCANFLYA)GetProcAddress(hDLL, "BOATSCANFLYA");
BoatsCanFlyD = (BOATSCANFLYD)GetProcAddress(hDLL, "BOATSCANFLYD");
CarsNos = (CARSNOS)GetProcAddress(hDLL, "CARSNOS");
MegaJumpA = (MEGAJUMPA)GetProcAddress(hDLL, "MEGAJUMPA");
MegaJumpD = (MEGAJUMPD)GetProcAddress(hDLL, "MEGAJUMPD");
JetPack = (JETPACK)GetProcAddress(hDLL, "JETPACK");
MaxStamina = (MAXSTAMINA)GetProcAddress(hDLL, "MAXSTAMINA");
InfNos = (INFNOS)GetProcAddress(hDLL, "INFNOS");
}
void CLH1337EXEDlg::OnButton1()
{
Money();
}
void CLH1337EXEDlg::OnButton3()
{
Money1();
}
void CLH1337EXEDlg::OnButton4()
{
Money2();
}
void CLH1337EXEDlg::OnButton5()
{
Money3();
}
void CLH1337EXEDlg::OnButton6()
{
Money4();
}
void CLH1337EXEDlg::OnButton7()
{
Health();
}
void CLH1337EXEDlg::OnButton8()
{
CarsCanFlyA();
}
void CLH1337EXEDlg::OnButton9()
{
CarsCanFlyD();
}
void CLH1337EXEDlg::OnButton10()
{
BoatsCanFlyA();
}
void CLH1337EXEDlg::OnButton11()
{
BoatsCanFlyD();
}
void CLH1337EXEDlg::OnButton12()
{
CarsNos();
}
void CLH1337EXEDlg::OnButton14()
{
MegaJumpA();
}
void CLH1337EXEDlg::OnButton15()
{
MegaJumpD();
}
void CLH1337EXEDlg::OnButton16()
{
JetPack();
}
void CLH1337EXEDlg::OnButton17()
{
MaxStamina();
}
void CLH1337EXEDlg::OnButton18()
{
InfNos();
}
So, once again, I have no problem compiling the project, it just doesn't inject the dll to gta san andreas (Could not load LH1337DLL.dll). Help would be greatly appreciated. I have the process name corect, I've checked 10 times:p Also, I'm a C++ beginner, I only started a few days ago. BTW, this site rocks! It has the best hack-making tutorials ever! Great work, I'm looking forward to more great tutorials!!!