1. Buatlah sebuah project baru seperti tutorial sebelumnya, rename dllmain.h menjadi addys.h
2. isikan code seperti dibawah ini
DLLMAIN.C
[sourcecode language="cpp"]
/*
Name: RCD Base
Copyright: RCD
Author: RCD
Date: 22/11/10 15:37
Description: SC Dasar untuk lebih mudah menggunakan RCD Logger
===============================================================
MOHON DESKRIPSI INI JANGAN DIBUANG !
*/
#include "addys.h" // sumber offset dan deklarasi dll
#include <windows.h> // include untuk createthread
#include <stdio.h>
#include <stdlib.h>
LPTSTR PBlankExec = "PointBlank.PBlankExec"; // handle PointBlank.i3Exec
DWORD adrMNZ1, adrMNZ2, adrWallOn, adrWallOff, adrAmmoOn, adrAmmoOff, adrBombermanOn, adrBombermanOff, adrGrenadeOn, adrGrenadeOff = 0; // deklarasi dulu yow
void WriteASM(void *adr, void *ptr, int size) // modul untuk melakukan penulisan ke address asm
{
DWORD OldProtection;
VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy(adr,ptr,size);
VirtualProtect(adr,size,OldProtection, &OldProtection);
}
int __stdcall HSBypass(void){
// Kosong
// HS Bypass Credit by DRACHE and ME [ RCD ] !!!
return 0; // unhook
}
DWORD WINAPI HackThread(LPVOID param) // Perulangan
{
while (1) { // Jika nilai 1 atau True jalankan fungsi dibawah ini !
// PASSING HACKSHIELD DETECT GAMEHACK
HSBypass();
HSBypass();
HSBypass();
HSBypass();
HSBypass();
HSBypass();
HSBypass();
HSBypass();
HSBypass();
HSBypass();
// Minimize ON
if (GetAsyncKeyState(VK_INSERT)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrMNZ1 = dwPBlankModule + (DWORD)OFS_Minimize1;
WriteASM((void *)(adrMNZ1),(void*)(PBYTE)"\x00", 1);
adrMNZ2 = dwPBlankModule + (DWORD)OFS_Minimize2;
WriteASM((void *)(adrMNZ2),(void*)(PBYTE)"\x00", 1);
}
}
// Minimize OFF
if (GetAsyncKeyState(VK_DELETE)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrMNZ1 = dwPBlankModule + (DWORD)OFS_Minimize1;
WriteASM((void *)(adrMNZ1),(void*)(PBYTE)"\x01", 1);
adrMNZ2 = dwPBlankModule + (DWORD)OFS_Minimize2;
WriteASM((void *)(adrMNZ2),(void*)(PBYTE)"\x01", 1);
}
}
// WALLSHOT ON
if (GetAsyncKeyState(VK_F5)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrWallOn = dwPBlankModule + (DWORD)ADR_Wallshot;
WriteASM((void *)(adrWallOn),(void*)(PBYTE)"\xC3", 1);
}
}
// WALLSHOT OFF
if (GetAsyncKeyState(VK_F7)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrWallOff = dwPBlankModule + (DWORD)ADR_Wallshot;
WriteASM((void *)(adrWallOff),(void*)(PBYTE)"\x55", 1);
}
}
// AMMO ON
if (GetAsyncKeyState(VK_HOME)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrAmmoOn = dwPBlankModule + (DWORD)ADR_Ammo;
WriteASM((void *)(adrAmmoOn),(void*)(PBYTE)"\xC3", 1);
}
}
// AMMO OFF
if (GetAsyncKeyState(VK_DELETE)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrAmmoOff = dwPBlankModule + (DWORD)ADR_Ammo;
WriteASM((void *)(adrAmmoOff),(void*)(PBYTE)"\x55", 1);
}
}
//BOMBERMAN ON
if (GetAsyncKeyState(VK_F1)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrBombermanOn = dwPBlankModule + (DWORD)OFS_Bomberman;
WriteASM((void *)(adrBombermanOn),(void*)(PBYTE)"\x00", 1);
}
}
//BOMBERMAN OFF
if (GetAsyncKeyState(VK_F2)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrBombermanOff = dwPBlankModule + (DWORD)OFS_Bomberman;
WriteASM((void *)(adrBombermanOff),(void*)(PBYTE)"\x01", 1);
}
}
// Unlimited Grenade ON
if (GetAsyncKeyState(VK_PRIOR)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrGrenadeOn = dwPBlankModule + (DWORD)ADR_UnlmtdGrnade;
// Unlimited Grenade type nya beda dari yang lain
// Untuk on : 01 81 50 03 00 00
// Cheat ini akan menambah jumlah grenade setiap lempar, have fun !
WriteASM((void *)(adrBombermanOff),(void*)(PBYTE)"???", 1);// ??? <= pikir sendiri
}
}
// Unlimited Grenade Off
if (GetAsyncKeyState(VK_NEXT)&1) {
MessageBeep(0);
DWORD dwPBlankModule = (DWORD)GetModuleHandleA(PBlankExec);
if (dwPBlankModule > 0) {
adrGrenadeOff = dwPBlankModule + (DWORD)ADR_UnlmtdGrnade;
// Untuk off. Offset Bytes nya adalah = 89 81 50 03 00 00
WriteASM((void *)(adrBombermanOff),(void*)(PBYTE)"???", 1); // ??? <= pikir sendiri
}
}
Sleep(5); // Berikan jeda
}
return (0); // unhook
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll); // meringankan kerja dll
if (dwReason == DLL_PROCESS_ATTACH) {
MessageBox (0,"Simple DLL Hack\nPowered by RCD Logger 2.0","RCD Base", MB_OK | MB_ICONINFORMATION);
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)HackThread, 0, 0, 0);
}
return TRUE;
}
[/sourcecode]
ADDYS.H
[sourcecode language="cpp"]
/*
Name: RCD Base
Copyright: RCD
Author: RCD
Date: 22/11/10 15:37
Description: SC Dasar untuk lebih mudah menggunakan RCD Logger
===============================================================
MOHON DESKRIPSI INI JANGAN DIBUANG !
*/
#ifndef __RCD_BASE_H
#define __RCD_BASE_H
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
void WriteASM(void *adr, void *ptr, int size);
DWORD WINAPI HackThread(LPVOID param);
#endif
// ADDYS TEMPELKAN DISINI !!!
[/sourcecode]
3. Cari offset dengan cara menjalankan RCD Logger 2.0
4. Copas hasil logging ke addys.h
5. check dulu kalau ada syntax yang error
6. Build Project dan DLL siap diinject !
Subscribe to:
Post Comments (Atom)

0 comments:
Post a Comment