Minggu, 17 Juni 2012

Cara membuat DLL WAllhack D3D MENU ..

0 komentar
INI sekedar Bocoran tentang pembuatan DLL WALLHACK POINT BLANK....

Ok Langsung aja siapin Tools yang dibutuhkan :
VC++ 2010
Microsoft DirectX 9.0 SDK (Summer 2004)

Okey setelah dapet Alat perang..


1.Jalankan Visual C++ 2010 Express Edition, Setelah itu buat new Project.
2.Pilih Visual C++, Empty Project dan namakan dengan zenix D3Dbase.
3.Screenshot:
[Image: 1.jpg]

Ok Project telah dibuat, Setelah itu buat Header setelah itu Klik pada Project dan pilih Add New Item.
Pilih Header File dan Namai dengan zenixMenuClass.h dan isikan code berikut :

chibiMenuClass.h



//==================================================================
// This file is part of chibibase d3d v1
// © copyright Chibi 2011
// special thanks to:
// http://chibi-cyber.com
// C3 yang selalu dukung gw
// http://code-codes.blogspot.com
//==================================================================
#include "Functions.h"

typedef struct{
int index;
char * title;
int *hack;
int hackmaxval;
int hacktype;
DWORD HCOLOR;
}ITEM;

class chibiMenu {
public:
LPDIRECT3DDEVICE9 pDevice;
LPD3DXFONT pFont;

int hackcount;
int selector;
int x,y,w,h;
DWORD COLOR;

ITEM HACKITEM[99];
char hackrval[256];

void CreateItem(int index, char * title, int *hack,int hackmaxval=1,int hacktype=0);
void BuildMenu(char * menuname, int x, int y, int h, int w, DWORD TITLECOL, DWORD BACKCOLOR, DWORD BORDERCOLOR, LPDIRECT3DDEVICE9 pDevice);
void RenderMenu();
};

typedef HRESULT ( WINAPI* oReset )( LPDIRECT3DDEVICE9 pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters );
typedef HRESULT (WINAPI* oEndScene)(LPDIRECT3DDEVICE9 pDevice);

//Colors A,R,G,B bro Silahkan dipakai untuk membuat Chams
#define RED D3DCOLOR_ARGB(255, 255, 0, 0)
#define GREEN D3DCOLOR_ARGB(255, 0, 255, 0)
#define BLUE D3DCOLOR_ARGB(255, 0, 0, 255)
#define WHITE D3DCOLOR_ARGB(255, 255, 255, 255)
#define BLACK D3DCOLOR_ARGB(255, 0, 0, 0)
#define YELLOW D3DCOLOR_ARGB(255, 255, 255, 0)
#define TEAL D3DCOLOR_ARGB(255, 0, 255, 255)
#define PINK D3DCOLOR_ARGB(255, 255, 240, 0)
#define ORANGE D3DCOLOR_ARGB(255, 255, 132, 0)
#define LIME D3DCOLOR_ARGB(255, 198, 255, 0)
#define SKYBLUE D3DCOLOR_ARGB(255, 0, 180, 255)
#define MAROON D3DCOLOR_ARGB(255, 142, 30, 0)
#define LGRAY D3DCOLOR_ARGB(255, 174, 174, 174)
#define DGRAY D3DCOLOR_ARGB(255, 71, 65, 64)
#define BROWN D3DCOLOR_ARGB(255, 77, 46, 3Cool
#define SHIT D3DCOLOR_ARGB(255, 74, 38, 3Cool


Setelah itu buat Header lagi dan Beri Nama dengan Functions.h dan Isi dengan code berikut :

Spoiler Functions.h

Spoiler:


Buat Header lagi beri Nama SystemIncludes.h dan Isikan code berikut :

SystemIncludes.h


//==================================================================
// This file is part of chibibase d3d v1
// © copyright chibi 2011
// special thanks to:
// http://chibi-cyber.com
// //mcz yang selalu dukung gw
// http://code-codes.blogspot.com
//==================================================================

#include
#include
#include
#include

#pragma comment(lib,"d3dx9.lib")



Klik pada Source Files kemudian Add New Item pilih C++ File (.cpp) Beri Nama D3dbase.cpp Isikan code berikut :

Spoiler D3dbase.cpp

//==================================================================
// This file is part of chibibase d3d v1
// © copyright chibi 2011
// special thanks to:
// http://chibi-cyber.com
// //mcz yang selalu dukung gw
// http://code-codes.blogspot.com
//==================================================================
#include "zenixMenuClass.h"

oReset pReset;
oEndScene pEndScene;

chibiMenu dMenu;

LPDIRECT3DDEVICE9 g_pDevice = 0;
//Mengatur Offset Font Menu Hack
int xFontOffSet = 15;

int hackopt1;
int MenuHeight = 10;

int show=1;

int b = 0;
//==================================================================
//Menu HACK
int hack1 = 0;
int hack2 = 0;
int hack3 = 0;
int hack4 = 0;
int hack5 = 0;
//==================================================================

void chibiMenu::CreateItem(int index, char * title, int *hack, int hackmaxval,int hacktype)
{
hackcount++;
HACKITEM[hackcount].index = index;
HACKITEM[hackcount].hack = hack;
HACKITEM[hackcount].hackmaxval = hackmaxval;
HACKITEM[hackcount].hacktype = hacktype;
// Mengatur tinggi rendahnya Menu Hack
PrintText(title, xFontOffSet, index*15,HACKITEM[hackcount].HCOLOR,pFont);
}

void chibiMenu::BuildMenu(char * menuname, int x, int y, int h, int w, DWORD TITLECOL, DWORD BACKCOLOR, DWORD BORDERCOLOR, LPDIRECT3DDEVICE9 pDevice)
{
if(GetAsyncKeyState(VK_INSERT)&1)show=(!show); //Memunculkan Menu HACK (INSERT)
if(!show) {
DrawBox(0,0, w, 20, BACKCOLOR, BORDERCOLOR, pDevice);
PrintText(menuname, 5, 2, TITLECOL, pFont);
return;
}

DrawBox(x,y, w, h, BACKCOLOR, BORDERCOLOR, pDevice); // Sesuaikan dengan Base Menu HACK
PrintText(menuname, x+10, y+2, TITLECOL, pFont);
CreateItem(1,"Ammo", &hack1);
CreateItem(2,"Recoil", &hack2);
CreateItem(3,"Wallhack", &hack3);
CreateItem(4,"Chams", &hack4);
CreateItem(5,"Apa aja deh", &hack5);
RenderMenu();
}


void chibiMenu::RenderMenu() //Hotkey menu
{
if(GetAsyncKeyState(VK_DOWN)&1)
selector++;

if(GetAsyncKeyState(VK_UP)&1)
if(selector > 1)
selector--;

if (GetAsyncKeyState(VK_RIGHT)<0){
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index){
if(*HACKITEM[i].hack < HACKITEM[i].hackmaxval)
*HACKITEM[i].hack += 1;

}
}
}

if (GetAsyncKeyState(VK_LEFT)<0){
for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index){
*HACKITEM[i].hack = 0;
Sleep(200);
}
}
}

for(int i=0;i < (hackcount+1);i++){
if(selector == HACKITEM[i].index)
HACKITEM[i].HCOLOR = GREEN;
else
HACKITEM[i].HCOLOR = RED;
}

for(int i=1; i<(hackcount+1); i++){
if(HACKITEM[i].hacktype == 0){
if(*HACKITEM[i].hack == 1)

// Mengatur tinggi rendahnya Menu Hotkey
PrintText("On", xFontOffSet+100, HACKITEM[i].index*15,WHITE,pFont);
else
PrintText("Off", xFontOffSet+100, HACKITEM[i].index*15,RED,pFont);

}
}

if(selector < 1)
selector = 1;

if(selector > hackcount)
selector = 1;

hackcount = 0;
}

void TestThread() //Memunculkan texk jika ON/OFF
{
if( hack1 == 1)
PrintText("Jika Ammo [ON] text akan berubah warna", 30, 200, GREEN, dMenu.pFont);
else
PrintText("Jika Ammo [ON] text akan berubah warna", 30, 200, RED, dMenu.pFont);
} //Sesuaikan saja

void ReFont(LPDIRECT3DDEVICE9 pDevice) //Untuk penggantian font
{
if (g_pDevice != pDevice)
{
g_pDevice = pDevice;
try
{
if (dMenu.pFont != 0)
dMenu.pFont->Release();
} catch (...) {}
dMenu.pFont = 0;
D3DXCreateFontA(pDevice, 14, 0, FW_BOLD, 0, 0, DEFAULT_CHARSET, OUT_TT_ONLY_PRECIS, PROOF_QUALITY, DEFAULT_PITCH | FF_DONTCARE, "Arial", &dMenu.pFont );
}
}

HRESULT WINAPI Reset(IDirect3DDevice9* pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters )
{
dMenu.pFont->OnLostDevice();

HRESULT hRet = pReset(pDevice, pPresentationParameters);

dMenu.pFont->OnResetDevice();

return hRet;
}

// Menu TITLE
HRESULT WINAPI EndScene(LPDIRECT3DDEVICE9 pDevice)
{
ReFont(pDevice);
dMenu.BuildMenu("Nyit-nyit.net 2010",0,0,190,200,RED,BLACK,GREEN,pDevice);
TestThread();
return pEndScene(pDevice);
}



int D3Dinit(void)
{
DWORD hD3D, adr, *vtbl;
hD3D=0;
do {
hD3D = (DWORD)GetModuleHandle("d3d9.dll");
Sleep(10);
} while(!hD3D);
adr = FindPattern(hD3D, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
if (adr) {
memcpy(&vtbl,(void *)(adr+2),4);
pReset = (oReset) DetourFunction((PBYTE)vtbl[16] , (PBYTE)Reset ,5);
pEndScene = (oEndScene) DetourFunction((PBYTE)vtbl[42], (PBYTE)EndScene,5);
}
return 0;
}

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
DisableThreadLibraryCalls(hDll);

if ( dwReason == DLL_PROCESS_ATTACH ) {

CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3Dinit, NULL, NULL, NULL);
}
if( dwReason == DLL_PROCESS_DETACH) {
dMenu.pFont->Release();
}
return TRUE;


1.Kemudian Save All Project. Setelah project telah di Save lalu Compile/Start Debugging.
2.Jangan lupa rubah Properties Project rubah Application (.exe) menjadi Dinamic Library (.dll)
3.Pada Fungtions.h void *DetourFunction


void *DetourFunction (BYTE *src, const BYTE *dst, const int len)
{
BYTE *jmp;
DWORD dwback;
DWORD jumpto, newjump;

VirtualProtect(src,len,PAGE_READWRITE,&dwback);

if(src[0] == 0xE9)
{
jmp = (BYTE*)malloc(10);
jumpto = (*(DWORD*)(src+1))+((DWORD)src)+5;
newjump = (jumpto-(DWORD)(jmp+5));
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = newjump;
jmp += 5;
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src-jmp);
}
else
{
jmp = (BYTE*)malloc(5+len);
memcpy(jmp,src,len);
jmp += len;
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src+len-jmp)-5;
}
src[0] = 0xE9;
*(DWORD*)(src+1) = (DWORD)(dst - src) - 5;

for(int i = 5; i < len; i++)
src[i] = 0x90;
VirtualProtect(src,len,dwback,&dwback);
return (jmp-len);
}



bisa brayyy ganti dengan:


void *DetourFunction (BYTE *src, const BYTE *dst, const int len)
{
BYTE *jmp = (BYTE*)malloc(len+5);
DWORD dwBack;

VirtualProtect(src, len, PAGE_EXECUTE_READWRITE, &dwBack);
memcpy(jmp, src, len);
jmp += len;
jmp[0] = 0xE9;
*(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5;
src[0] = 0xE9;
*(DWORD*)(src+1) = (DWORD)(dst - src) - 5;
for (int i=5; i



SELAMAT MENCOBA..!

Thank's to C3

Leave a Reply