I'm gonna move this to CF General and change the [Request] to tutorial. Also you should post screenshots, there's probably some from the site you ripped this off of
/moved
YOU MUST DO THIS FIRST
INSTALLING VISUAL C++ 2008
LINK :
HOW-TO : Select Visual C++ 2008 Express Edition under Visual Studios 2008 Express and click Free Download
INSTALLING DIRECT-X SDK
LINK : https://www.microsof*****m/downloads/d...displaylang=en
HOW-TO : Click download and install this SDK
ADDING DIRECT-X INCLUDE FILES IN VC++
STEP 1. Install Direct-X SDK
STEP 2. Open VC++
STEP 3. Select Tools -> Option -> Projects and Solutions -> VC++ Directories
STEP 4. In VC ++ Directories, go to the drop-down menu and select Include Files
STEP 5. Add the code below
Code:
C:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Include
ADDING DIRECT-X LIBRARY FILES IN VC++
STEP 1. Install Direct-X SDK
STEP 2. Open VC++
STEP 3. Select Tools -> Option -> Projects and Solutions -> VC++ Directories
STEP 4. In VC ++ Directories, go to the drop-down menu and select Library Files
STEP 5. Add the code below
Code:
C:\Program Files\Microsoft DirectX 9.0 SDK (Summer 2004)\Lib
--------------------------------------
Here's a tutorial on how to create a d3d8 / Sudden attack base!
---------------------------------------------
Open up Visual C++ 2008
Create: Project...
Choose Win32 Console Application
If you do not see it, look at Project types and click on Visual C++
Screenshot
This image has been resized. Click this bar to view the full image. The original image is sized 1023x743.
You should see the picture below be presented on your Visual C++
Press NEXT
Screenshot
This image has been resized. Click this bar to view the full image. The original image is sized 617x519.
Do not touch anything else. Application type - Select "DLL"
Press FINISH
Screenshot
This image has been resized. Click this bar to view the full image. The original image is sized 611x511.
You should see the screenshot below presented on your Visual C++
Right click and remove dllmain.cpp*
* - Remove because it is already defined in the base source I will give you.
Screenshot
This image has been resized. Click this bar to view the full image. The original image is sized 699x487.
Click the green arrow on the top to debug / release. Alternately, you can just build / rebuild (for those who know how to use C++ IDE)
Screenshot
This image has been resized. Click this bar to view the full image. The original image is sized 759x654.
---------------------------------------------
Base Source Code
---------------------------------------------
Replace your main cpp file with this.
Code:
#include "stdafx.h"
#include <windows.h>
#include <d3d8.h>
#pragma comment(lib, "d3d8.lib")
typedef HRESULT (WINAPI* CreateDevice_Prototype) (LPDIRECT3D8, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE8*);
typedef HRESULT (WINAPI* Reset_Prototype) (LPDIRECT3DDEVICE8, D3DPRESENT_PARAMETERS*);
typedef HRESULT (WINAPI* EndScene_Prototype) (LPDIRECT3DDEVICE8);
typedef HRESULT (WINAPI* DrawIndexedPrimitive_Prototype)(LPDIRECT3DDEVICE8, D3DPRIMITIVETYPE, UINT, UINT, UINT, UINT);
CreateDevice_Prototype CreateDevice_Pointer = NULL;
Reset_Prototype Reset_Pointer = NULL;
EndScene_Prototype EndScene_Pointer = NULL;
DrawIndexedPrimitive_Prototype DrawIndexedPrimitive_Pointer = NULL;
HRESULT WINAPI Direct3DCreate8_VMTable (VOID);
HRESULT WINAPI CreateDevice_Detour (LPDIRECT3D8, UINT, D3DDEVTYPE, HWND, DWORD, D3DPRESENT_PARAMETERS*, LPDIRECT3DDEVICE8*);
HRESULT WINAPI Reset_Detour (LPDIRECT3DDEVICE8, D3DPRESENT_PARAMETERS*);
HRESULT WINAPI EndScene_Detour (LPDIRECT3DDEVICE8);
HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8, D3DPRIMITIVETYPE, UINT, UINT, UINT, UINT);
PDWORD Direct3D_VMTable = NULL;
BOOL WINAPI DllMain(HINSTANCE hinstModule, DWORD dwReason, LPVOID lpvReserved)
{
if(dwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hinstModule);
if(Direct3DCreate8_VMTable() == D3D_OK)
return TRUE;
}
return FALSE;
}
HRESULT WINAPI Direct3DCreate8_VMTable(VOID)
{
LPDIRECT3D8 Direct3D_Object = Direct3DCreate8(D3D_SDK_VERSION);
if(Direct3D_Object == NULL)
return D3DERR_INVALIDCALL;
Direct3D_VMTable = (PDWORD)*(PDWORD)Direct3D_Object;
Direct3D_Object->Release();
DWORD dwProtect;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)
{
*(PDWORD)&CreateDevice_Pointer = Direct3D_VMTable[15];
*(PDWORD)&Direct3D_VMTable[15] = (DWORD)CreateDevice_Detour;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), dwProtect, &dwProtect) == 0)
return D3DERR_INVALIDCALL;
}
else
return D3DERR_INVALIDCALL;
return D3D_OK;
}
HRESULT WINAPI CreateDevice_Detour(LPDIRECT3D8 Direct3D_Object, UINT Adapter, D3DDEVTYPE DeviceType, HWND FocusWindow,
DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* PresentationParameters,
LPDIRECT3DDEVICE8* Returned_Device_Interface)
{
HRESULT Returned_Result = CreateDevice_Pointer(Direct3D_Object, Adapter, DeviceType, FocusWindow, BehaviorFlags,
PresentationParameters, Returned_Device_Interface);
DWORD dwProtect;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), PAGE_READWRITE, &dwProtect) != 0)
{
*(PDWORD)&Direct3D_VMTable[15] = *(PDWORD)&CreateDevice_Pointer;
CreateDevice_Pointer = NULL;
if(VirtualProtect(&Direct3D_VMTable[15], sizeof(DWORD), dwProtect, &dwProtect) == 0)
return D3DERR_INVALIDCALL;
}
else
return D3DERR_INVALIDCALL;
if(Returned_Result == D3D_OK)
{
Direct3D_VMTable = (PDWORD)*(PDWORD)*Returned_Device_Interface;
*(PDWORD)&Reset_Pointer = (DWORD)Direct3D_VMTable[14];
*(PDWORD)&EndScene_Pointer = (DWORD)Direct3D_VMTable[35];
*(PDWORD)&DrawIndexedPrimitive_Pointer = (DWORD)Direct3D_VMTable[71];
*(PDWORD)&Direct3D_VMTable[14] = (DWORD)Reset_Detour;
*(PDWORD)&Direct3D_VMTable[35] = (DWORD)EndScene_Detour;
*(PDWORD)&Direct3D_VMTable[71] = (DWORD)DrawIndexedPrimitive_Detour;
}
return Returned_Result;
}
HRESULT WINAPI Reset_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRESENT_PARAMETERS* PresentationParameters)
{
return Reset_Pointer(Device_Interface, PresentationParameters);
}
HRESULT WINAPI EndScene_Detour(LPDIRECT3DDEVICE8 Device_Interface)
{
return EndScene_Pointer(Device_Interface);
}
HRESULT WINAPI DrawIndexedPrimitive_Detour(LPDIRECT3DDEVICE8 Device_Interface, D3DPRIMITIVETYPE Type,
UINT MinIndex, UINT NumVertices, UINT StartIndex, UINT PrimitiveCount)
{
LPDIRECT3DVERTEXBUFFER8 Stream_Data;
UINT Stride = 0;
if(Device_Interface->GetStreamSource(0, &Stream_Data, &Stride) == D3D_OK)
Stream_Data->Release();
//code
return DrawIndexedPrimitive_Pointer(Device_Interface, Type, MinIndex, NumVertices, StartIndex, PrimitiveCount);
}
Enjoy your Base!
-Voltage552
** Note : This is definately detected. Find a way to make it undetected; I will not tell you how.
__________________
SuddenAttackNA Coder~
SANA Pub Hook V1
SANA Pub Hook V2
SEXY
okay why dont tell us how lol and that's really hard could u make some public hak for cf?
Last edited by soulteam; 03-22-2010 at 08:36 PM.
join
https://clan.z8games.com/clanstat_cf.aspx?guildid=44103 we farm a lots to rank up i am tugakid there so hope to see u there
If you can do it why can't other people, cause I haven't seen any pub hacks yet. Is this old and leeched?
What a lot of game companies, like Z8 and Nexon, do is they patch the bypass that lets you inject the hacked code into their program. This code looks ripped to me, but if you can write your own bypass it might work for you. Idk, i'm just leaving it up here for you guys.
Can any1 here really code a bypass? I think not, cuz the only coder for this section is in college full time. Basically u are posting instructions to a bunch of special needs people XD
[IMG]https://i192.photobucke*****m/albums/z254/1axeman1/nuckers.png[/IMG]U gotta admit, that's funny...LOL[IMG]https://i192.photobucke*****m/albums/z254/1axeman1/war.gif[/IMG]
Originally posted by FPS Russia
"In Soviet Russia, pussy eats you!"
PRESS THANKS, DON'T SAY IT
I will not read this, but i think its fail. If it was working, someone would make a pub hack.
Oh really?
Let's see what I can make of this..
This'll be useful, thanks.
Edit: Obviously leeched. "Enjoy your base -Voltage552". Lmao.
i Think its hard to make a bypass but if you could edit the D3d9.dll itself it would be good.
If X-trap detects that you can make a dll that auto-injects the hack after X-trap opens.
I believe that the Hack-injecting method won't work.You must edit the game itself.
Hacks in visual basic suck.
But it's pretty good for teh newbs.
lmao, obvious leecher
how about a video?
Do not go gentle into that good night,
Old age should burn and rave at close of day;
Rage, rage against the dying of the light.