原文& C T( G$ I) B0 X0 \
http://www.descipe.net/forum/sol ... -your-wallhack.html, G) ]2 h9 l/ ]
3 K0 n) H$ x3 y% w( m4 Y2 c
视频教学5 _' D3 C+ G, a; o* o
http://www.youtube.com/watch?v=6b5XMzT-b_U 3 t( k) n4 s8 S4 m4 L3 S
# S D, o8 X" x7 i; x
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch 6 {; P# G, Q* }6 `
6 J* {* R" P4 u- ] h: H
Hello shane007,, D9 ?4 M' N' w. [( r
Our records indicate that you have never posted to our site before! Why not make your first post today by saying hello to our community in our Introductions forum.
) e7 R; _; [1 U( \7 ~7 H: W; I: u2 q, t" H+ W' Q
Why not start with your first post today and become an active part of DEScipe.net now!
/ L" z" P$ k; A5 O
$ f" P& k; Q- Z) l5 X) `1 ^ T# F. ~4 K* O4 T& O
- p/ [" m$ {% V- K! U0 ^5 X1 F5 P DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats ' t+ W6 L" J" H/ p2 H
How to make a wallhack and how to hook your wallhack! ; m5 M# }. s3 K& K5 a H+ {
Welcome, shane007.
; X) j U# D; [2 t6 `0 h/ hYou last visited: Today at 03:55
4 J( v I7 P9 mPrivate Messages: Unread 0, Total 0. 6 ~- R# K$ Y8 W
Credits: 200 [Check] h0 q+ @. h' ]8 T& _$ U
8 }! v2 I; {8 f# k7 ^9 X9 {
Home User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
+ Q$ N0 T6 V n8 T4 s
6 d# L3 o6 S7 M7 _) j7 ]( j+ Z# ?5 F5 \+ W! `9 E
5 y1 y' ?' E! E6 rSearch Forums ; [" q- h1 n# D" z
& X: }: _; @& G% Q
( ]4 F5 u, k" {6 G) g* BShow Threads Show Posts ) x$ y2 W& [& C& A: e
Advanced Search
0 j/ d8 b' t: S2 R6 DFind All Thanked Posts
! o1 z$ |# }/ `- [3 C
7 \0 g( k+ O! e4 I0 k3 b" JQuick Links
$ T0 z" N5 c& mToday's Posts
! y; H( i7 e6 d, h6 iMark Forums Read
$ j2 q6 |$ I- p3 O / j7 i: o) _0 S, d. Y' r; {
User Control Panel ) J# I D' y/ a% @$ I$ c" ~
Edit Signature * R8 j( K5 D2 j1 H, ?0 n8 f/ n
9 ]% n* G, k' Z" { V! l- a8 M% C; y
Edit Options
: l$ h7 c. p/ RMiscellaneous ; K) M$ X! O0 V- H( K
Private Messages 4 y. q" M. B: G* j+ ~5 |
Subscribed Threads
w- D) ~5 F! p7 a% Q " Y6 `$ D$ V! k$ w: U( f2 v# |' ?
Who's Online ) Q! X. y6 r+ a
" f; D' ~. [' mGo to Page...
; J$ X, K X# }/ H% B: J+ I: z 8 o/ v$ W' H" v$ w' A' E
How to make a wallhack and how to hook your wallhack!
. C0 \7 b+ k' z, c1 n: u7 @7 \This is a discussion on How to make a wallhack and how to hook your wallhack! within the Soldier Front Cheats forum part of the Soldier Front category; I will be showing you how to make a detected wallhack and then hook it for it to be undetected. ...
3 v9 F0 n* {2 E1 Q4 [# Z$ W# ?. q! ~" ^! w/ W" I
Poll: Was this helpful?
# ~2 N3 t3 `5 }Poll Options" o- E( I( f7 s* N6 S
Was this helpful?
& k5 s: o) M" H4 XYes, I WILL press the thanks button F/ X- q+ Y$ p% ? b
No, I am a failure " o$ P7 H8 s) F& Q
View Poll Results
6 W2 g' I6 V, m, ~5 D
+ ]% [4 `0 }4 R1 u# [; z' Z- L Page 1 of 3 1 2 3 >
! E/ h4 \- _2 X! ~7 b l; U9 ?5 ^& B9 X1 o
View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
+ v( U/ J. R# f( {
/ Q0 }# R- T- \1 c( D5 @7 d& @% ^& @* P& |* E5 L; N
% F; L7 s8 u! w, A$ r/ u7 P
05-02-2009, 20:49 #1 # h$ B4 d2 O8 C, z* V) V, I* _6 [
killax9 + R2 ^( _ q& y4 A! u5 ?# n1 t$ z. j; b
Punk. Q$ C& B( F/ S/ k+ q
9 w9 l+ z- ?. ^$ B7 C9 W
8 u8 S2 E; I; Q I, T / l$ K7 F/ R& N/ B+ \$ q
& m% V' A9 b+ ~( J- X+ @: NJoin Date: Jan 2008
# E/ A3 P! \3 y2 n, G6 s" OCredits: 2,701 [Donate]
! d/ t; K5 I& s" J3 V9 I9 g# uPosts: 103 + I2 t, D! M3 Z1 U5 X- ]! h6 J ~
Thanks: 10
7 j6 x Y$ r8 {, V& A2 ?% ^, }Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack!
* X$ a" z1 q0 G1 O: y4 @# [, I- y; z7 s5 ^1 }
--------------------------------------------------------------------------------2 _0 B2 j. \, Y/ J: o% F
) d/ C# I& D6 A5 \- m% t" {) qI will be showing you how to make a detected wallhack and then hook it for it to be undetected.
4 q4 d: Z( ^& E6 }% }7 Z' q$ h9 UPossible Undetected Methods:. ?# n& y: i+ _1 h! v& Y
1)F5,F6 original this was put into place cuz GG only scanned for wallhack once,until you joined a room.so basically hook a unscanned function then once in game hook d3d.* j" F6 G* x. K7 e$ [
2)another way **** it hack GG., u* a3 z- |. D; j
3)breakpoint hooking;doesnt change memory... well changes debug registers.
# Q" Z C; x4 u& C, d) H p: T% r4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin+ |! H* S2 Q) k) {
1 m* p- K! v e1 ?/ u, z6 c! W) n
Vtable:
- x4 T9 `. c8 yit wont work for vista its not a vtable hook =)
7 w* g& m/ ^# J+ q1 n$ {: J
& z, p9 J! x/ X7 Mthe reason why my older version worked was cuz it hooked : W% _6 {! [% N
Createdevice->pointers to the functions: e: b3 T4 E V- l$ s+ s
+ I- e, S+ C/ h
kinda like a class or a struct.
* N( a2 t; \: b" R2 I& ?+ t$ F# K+ k+ o4 K( h7 S. k" H5 L& e
( V0 |6 [% Q+ J( M: c( u" Wand GG scans createdevice right off the back and the only way u can hook it is a few ways {DETECTED}either when d3d8.dll loaded in....{Undetected}or reversing to internal call inside the game[0x00000] pointer.
* B" \& a# x6 B" ?) b: L
, M4 N7 y! a9 V8 V& d3rd maybe- some games recreate the device when a map loads...like BF1942.
/ M& f5 b" ?% j8 Z
4 E. V; w, f, e! [- n- yThings needed to do this:+ O" u+ _5 Q( T7 J6 J9 X
1. Microsoft Visual C++ 2008
7 G$ e# K# @2 w; m2. DirectX_SDK_(Summer 2004)
/ ^- N3 B; p* d3. D3d_hooks
" d, |2 a0 H9 Z& K3 ^" v4. IndirectX
& \4 O& r7 q- z9 N# BI HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
3 K5 v8 q- H* {; Y: b d: I e
" |2 u3 S1 {3 V9 A% V9 ANow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
" s. |- o5 m0 s# X* h8 Y& }3 k% q5 B* l- n6 W2 f
YouTube - How to Compile WallHack [Tutorial] % d4 x1 `0 L7 v ~
. G5 B# K# r/ K! {6 |/ Z/ n
6 Z7 c. t% W, Y0 c- O
" o1 D6 X) @ s& G% R& T% _+ l
Detected Source Code:
( u5 \( u. E9 }1 c/ ~- ]; Z# o6 Q: k% m4 K9 x1 a- d% V
#include <windows.h>
5 t- M' X& Q# g( ^#include <detours.h>
1 }' |# u6 \2 f5 A#include <d3d8.h>
4 Q$ h( h5 p; S+ L! k9 R" H. K#include <d3dx8.h>
8 @% }$ c6 M+ C#include "log.h"
% h" D0 W q/ k#include <fstream>
$ b4 d6 l$ \& Q4 \3 Q#include <iostream>* K* M. H9 V3 D# i, A9 r
#pragma comment(lib, "d3dx8.lib")
' T" d2 ?( _7 M4 y/ n, k1 n) o#pragma comment(lib, "d3d8.lib")" `% [1 b! M9 H5 s
using namespace std;
O6 f$ v3 l# T' f/ o# y- I" ~/ Estatic DWORD dwBeginScene = 0x6D9D9250;& V5 E( @" l+ F) j
static DWORD dwEndScene = 0x6d9d93a0;2 G. N0 k* z9 B8 E% c
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;$ G( F& k- h5 `% P* i" ]
static DWORD dwSetStreamSource = 0x6d9d6760;/ m! A0 D6 r8 d+ S+ \# f. e
static DWORD dwSetViewport = 0x6d9d5b90 ;
* @/ `+ _- Q( F/ Q. |+ w* S# \' {$ Y9 f5 K5 Q. s
; ~8 y2 B7 H# Fint m_Stride;# x1 _2 g- F* Q1 E
int texnum;+ I, l, `' {" i G* {3 F
int nNumVertices;
. M9 j- U" A; ?' F0 T% ^int nPrimitiveCount;
; q/ ?) w% [8 D: ^ u, {8 M/ g7 S$ G# g. F
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
: [. N* H- b3 R1 w1 A; n6 t' F! Jbool Color = true;+ i; F8 @8 ?# Y5 Y5 P
bool Logger = false;
; ^- S& E2 L/ J2 c Vofstream ofile;
" @! z7 k" D& ] x) @' n% `char dlldir[320];
$ g" ^% M1 ]! G2 qfloat ScreenCenterX = 0.0f; V; \& D5 |7 K8 w! K/ Z+ g
float ScreenCenterY = 0.0f;
2 W2 C2 a8 X9 I5 e# |bool xhair = false;: h' f, t: X0 r6 z. l
bool WallHack = false;
- N* {- {7 C# N2 _6 lbool WallHack2 = false;& U( G. R, b+ H6 Y7 @- N+ f( \9 \2 |! ~
HANDLE hand1 =NULL;
0 L8 b3 A* S/ d6 Z+ FHANDLE hand2 =NULL;
\6 t: w/ T! m- i% W
- v0 w# e7 N/ g! r9 vDWORD bytes;: g' U/ j+ V$ F5 B1 ~" `: t9 d/ _
( U( k% n$ `$ k//Logger
8 K5 W" F2 N0 t3 F/ oint texarray[1000];
! m% g! y& a2 |1 I2 n" ~int arraycounter; . W" M% M: l6 o5 z
int delarray[500]; 2 W0 C. c7 s) P6 ~* \) _/ o- l
int dcount; 9 ]* Q H, \* K4 d4 Z: l
unsigned int arrc;
: I" G& J2 \ k J6 Qint i=0;; O" [. H2 ? Y7 V
" c7 x- z H/ N/ K- t( [+ \8 x* }
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );) F) |1 W; P+ u7 h1 F" S
! A8 Y0 n' x* x% q# U" |5 t
: W1 t: i% g/ V$ ~# |9 M
char *GetDirectoryFile(char *filename)
- I, d! q" E; s{
7 O% @, r! z: Z" L! wstatic char path[320];
6 h1 c, F% Y' Z/ l1 c7 @1 E# }0 pstrcpy(path, dlldir);# s/ y. ^, q4 u! ~. a/ B
strcat(path, filename);4 c) X2 O9 r& p
return path;
# ^" K, I3 h& S: [7 }! z* z}
* ^% ^; t; k: U: O1 t& K; c
, ]% }1 k7 y( bvoid __cdecl add_log (const char *fmt, ...)) t. B) ~# U: x9 x/ F. W
{
% n# M, k7 y# Fif(ofile != NULL)4 k& f, r& w8 {- T
{
/ B" e+ V, B3 r8 z1 [- _2 n# [* nif(!fmt) { return; }1 ^4 i4 ]& e1 Z, M* K. q
& k$ M. I- k/ P+ N( h' V kva_list va_alist;
& U4 t1 F2 T, _, J" o0 Vchar logbuf[256] = {0};
4 v1 l: T+ t, n
8 G1 B! b# c qva_start (va_alist, fmt);" ]4 i8 t; j3 q# X1 v0 B
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
; K, g3 G$ u' R/ Pva_end (va_alist);
0 A2 B- R1 k$ M' Y2 ^
, Q6 U( x+ D8 o: L5 w" Mofile << logbuf << endl;
# _& Y- A8 O6 Q% E4 C$ R* W5 ^}
3 X. r6 a3 } c3 K2 w! o}
% A# L5 ?. f ?8 \5 Z& ~- U
. R% ]: k, W) NHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)% J* v( [( ^3 o) L, l
{
+ D; w$ m! c( Fif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )# t, v2 G. l- i" e9 \2 A0 X
return E_FAIL;
$ O' \; T6 E9 _4 I* i
! Q. @% l# T/ [, O+ d+ w! ^WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)" k5 l0 @6 \4 m2 e3 V
|(WORD)(((colour32>>20)&0xF)<<8). c/ w0 t2 t" ]% ~
|(WORD)(((colour32>>12)&0xF)<<4)
9 N) m) ?4 ~. `3 Z" y|(WORD)(((colour32>>4)&0xF)<<0);- u" `6 R3 @ L4 u5 E
5 J+ B3 M$ q* Z' T$ H
D3DLOCKED_RECT d3dlr;
9 B/ D% M" k7 z! @$ L0 a \(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);7 ]$ z4 `/ ~0 t, G1 n
WORD *pDst16 = (WORD*)d3dlr.pBits;* V2 ^! J! \/ s% P2 ^- ~. S
4 ^' @3 P2 `* Ufor(int xy=0; xy < 8*8; xy++)
0 D/ z' ~2 a, B* u, n5 {*pDst16++ = colour16;' Y1 d) U& g% V6 K! t7 R
6 x) X) Z& U! l5 w, D+ U' {' q(*ppD3Dtex)->UnlockRect(0);
$ i( Q) |; U+ L# W3 h7 t
4 |5 E3 U Q6 l7 z' K3 rreturn S_OK;
# q( v$ p: o- v0 G9 a}
8 N4 O, ~7 J; Y8 v* d" p
3 T& s+ ?0 u0 k5 ]/ w" o5 T3 ?; q9 C( Q
//=================================EndScene_Start=== ================================================== ============================//; u% C% }& L/ \0 z
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
: Q9 S+ s( @# g9 XoEndScene pEndScene;" W) ?/ Y8 |4 l9 D
' R/ h9 [0 _# @) a2 s
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
' R& B8 z5 V( D9 F{
# b# }. [+ m5 c3 o& O$ gif(Color)2 G1 b8 p" v: d/ c
{ ; x; Y# z) Q5 {3 d
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
# ` M- O5 @" _9 cGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
) L& n5 e( v+ a3 C, e2 cGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));5 D1 u# G1 x# e
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));& [' l; o) d% V, c
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
$ {1 g; ]4 ]' N2 m; }# `GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
! K7 U7 \6 [% ~7 M% y: F. fGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));. c# C' _2 K1 ? ?! t1 f* B
Color=false;
7 ]/ c. u. x0 \5 w: z}9 S" {8 _3 Y+ u0 j; A' l! @
/ M e+ S/ l# d9 oif(xhair)
& g1 r M' J( o% x2 L{$ W: w; x; @8 B* _
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
( x9 ?0 a" R- {' U; b6 bD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};% z6 u, ~, k* C
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
, K- D% R7 o* B' W1 ?, t8 ~9 _pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);7 y R6 S1 B' w k
} , y% Q+ [, i2 I( |7 ~6 V$ b& J
1 K; x3 J9 F+ ?+ I0 R# P
//=============================================UnHoo K_Start=========================================== ========//
6 w& ^( i1 ~6 Q: p
2 Y# S4 m! y. W B3 z! Qif((GetAsyncKeyState(VK_F5)&1))
# e a0 ]2 X$ g! z5 V{ c6 G0 @9 B9 [2 A
int end =NULL;6 E/ C8 Y+ e- |% V* G8 c0 a
int dip =NULL;
$ I0 d$ @* m+ c1 Fint svp =NULL;4 E# A9 q0 m9 K: i- r4 N
int sss =NULL;8 \9 q$ r5 F& t; z& W& n
1 w3 y W6 B, T
" Q: F+ y! B2 x
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
S q$ ?9 x$ h" A1 ?; D- Phand1 = GetCurrentProcess();( N# \& }4 v$ N( Q6 W! `1 C+ @# h, k
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
+ b# q- E9 B; N9 j2 y* dend = 0x6d9d93a0;
8 B6 l$ `* \" Rdip = 0x6d9d73a0;
Q- u w9 } e& F7 qsvp = 0x6d9d5b90;. u$ l( Z7 ~0 f4 U7 A1 u0 u0 q7 L
sss = 0x6d9d6760;# ^5 }3 U5 }6 d( x+ Y: M- V) k, Y
. i, M% g1 O/ w5 V; j- {WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
) m" X6 X' r& rWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);5 W+ D( n. w9 {$ h9 G
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
/ d) r' c% O6 R1 [5 zWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
( \: \# f/ @) x7 E- Q8 D9 c# Z} / e6 i. E/ Q) W+ f% G2 U
//=========================================UnHook_En d================================================= ========//% `) \$ l7 q9 [% i' T
+ j- {9 @8 w9 D3 p* Dif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} / _; }5 O9 E! O3 Y# a& u
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} , M$ q4 d2 |3 w7 C" v# i* V
8 F0 W8 r3 E0 H& z5 k
return pEndScene(pDevice);
4 M6 {1 V! `: S) Q5 @5 m}3 w5 n1 R5 B' E2 f$ Z2 t
//====================================EndScene_End== ================================================== ========================//
6 @6 V/ i4 X- I$ Z* h( Q9 l/ q2 L% u9 F6 p6 e/ B
! r+ Q% N7 A/ L" V& g
2 i; e! [" P: p: [; L
" j& [$ N& F: w//=================================Dip_Start======== ================================================== ==================================//9 ^: A2 ~- ?' k$ |( B+ J: J
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
" |( s4 ^4 G! Z- Z7 y1 moDrawIndexedPrimitive pDrawIndexedPrimitive;
9 @. V. v) y, o2 U& f4 k( c! P- q5 D# E
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
1 P6 {1 e+ N5 E& i{
# d' i2 i0 E+ l4 M; m; z0 {, y m6 ?, f: V
5 \6 g# w% Y y6 r9 A. U
6 w9 P. x6 k% I9 Q u4 c7 x' ]& g& A. k- Q) n2 k7 E' \5 q. n
if(WallHack)
0 I" a% F' p7 B4 J6 I. Q* e( a9 J{
) G) P L- Q8 atexnum = (nNumVertices*100000)+nPrimitiveCount;
( L" J4 A) T. O% g8 Vif(m_Stride==40 &&
0 v! X) ]2 G2 {4 q! T! D3 l7 f) p. ^" u; I" |* c9 N
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||, Q8 e, @ b/ @1 l, f+ [% H
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||, B" Z( n; x! |( e7 Z, x/ p
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||3 y) T3 [" b2 D! b4 Q8 o; B! M
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
7 v- r$ E7 z( u. o) \& t(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
) j, p6 `9 S+ a, U2 T. `(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| 2 k$ L! o+ J0 r8 j1 r
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
x# Q5 m# { t* X4 X(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
1 R3 T( g" F G4 h(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| % T& l2 x' ^4 j
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| # a4 Q; U. k+ j, L5 O( x
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
* c) g# M- |6 w. A/ d) C
, ^' {. f+ a5 b1 \$ w+ k
/ g, A' ^3 I* f, M5 I' [" A1 ^9 B5 I R2 H6 O9 Z3 ?, x+ A
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
( m5 }3 |2 Y* J ^5 z8 ?$ I. |(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm " ^ B" L$ Y b/ z- J% v& x& h
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand 8 c) W1 U+ i; o2 G& e) c* G
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
" n5 O* @. m5 V# c(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)( Q6 Z3 m7 F% M. J
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
$ E* K) N2 S* z' [(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
: h. o3 g$ |4 Q(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest 4 s# b; {$ e0 D" k5 K1 I: d1 t
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants' v4 `. |& E+ i. @( s
5 G! d( N$ M8 `' Q6 s
{) _7 p5 z8 L+ m C" J' C
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);/ _" s+ M0 ^5 `2 z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);8 a0 Z) i9 E1 A6 o0 x1 d, e7 Z
pDevice->SetTexture(0,Orange);
' b: f5 y5 K' g' v//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );9 z/ Q* R. O& F9 w8 S% w7 W: p: V
; T, y# r( ^2 w$ V2 H' s
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
& i9 r2 L0 J& ]. [. R2 {( W6 {9 Y4 u4 @
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );8 }! v# |: F' z; a; Y& y* o
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
( L7 d- ?# y' h* ipDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
2 p9 ^2 s2 V! D3 c/ bpDevice->SetTexture(0,Pink);
1 E2 f' C+ U: [5 D# ^}
% {' s2 l! F s+ ~/ ?; D0 s
1 f7 `% p X: T! m; b7 }if(m_Stride==40 && texnum== 21300174)
4 |, q, R) F+ _2 W1 _( E{
" v; f1 R, t1 @ M& MpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);% o3 M1 S, }: f/ f3 W7 p3 Z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
& N. l9 A" q& f3 cpDevice->SetTexture(0,Green);//GreenNade& S& e0 f( F' C3 P0 Y. \
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
- |# P" r1 ~& T' U( G; YpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
7 Y3 L! t1 f2 A* E9 HpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
3 ]8 E4 D5 w% w0 q6 J, z: S1 M+ bpDevice->SetTexture(0,Purple);
! s! h# X+ m: z% o, w}
% R' |2 z) l+ B9 k: s( _( B2 J; }* [5 v; [, l) k, h' E
) q# Z8 J/ l( K* [) I8 b
if(nNumVertices == 158 && nPrimitiveCount == 131)
# n0 A+ @, c; p+ D/ I" O+ M{
' W7 F! q, v; t. z: v3 X( ApDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
2 X3 v( D: S4 K3 I# B& wpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);2 F2 e- r( Q! A' t( W/ M: M
pDevice->SetTexture(0,Red);//GreenNade! {; Y" j, T3 S6 |, ^/ M
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);3 d N8 d) G4 s
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
R0 Y4 U* K+ DpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);( k9 l" K& u. \; K$ p0 C
pDevice->SetTexture(0,Yellow);( Q* _7 Y* x% ^+ v, \3 ]/ ?
}5 r2 [1 s. `$ i
- Z* j0 I3 l4 t/ w$ G+ aif (nNumVertices == 171 && nPrimitiveCount == 143)
$ `3 Q1 r C+ V2 V- P. [! `, ?{
: k0 E" [& n: j/ x9 T- |' y! w" s0 e$ p- \7 {" v# W- b! u& W8 f
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);; {( o$ t& ~2 g. A1 A4 Z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);1 Z9 k; x2 ?: P
pDevice->SetTexture(0,Red);//GreenNade
" j$ n z' n# }; i4 kpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
! o5 X/ V6 @ r! qpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
' r. R5 y0 K. D! WpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
) ?9 M# @, C6 a( H: o$ ?; qpDevice->SetTexture(0,Yellow);
/ \3 e8 e6 D+ I! w" u6 I: E}3 r( h' C! D$ H
" P; [ D) h y& a8 z/ c) z: o
2 F: @' h( b7 R/ A4 F
" Q1 c3 S( R$ J& t1 n& |' |8 `if(m_Stride==40 &&//face,mask etc...
" m# k( X' n. A: I. R( |/ j(texnum==36700612) ||
4 d# U- Y; o2 P S(texnum==9600172 ) ||
/ a3 P% @$ V; ^8 s/ |7 G* }(texnum==14200236) ||0 p' i( K) e a* T; R
(texnum==37800552) ||+ [7 ~1 `4 I# P' S4 V0 _2 i$ ~6 V8 n
(texnum==28100486) ||
+ E, Y6 i5 x8 o" u) w) ?* h5 m(texnum==35500568) ||
( A8 J1 C+ d# i7 P' m* n(texnum==2200024 ) ||& m+ C* f1 o5 q( |4 h) w Z- g; w
(texnum==16200243) ||
( T4 F4 y9 T: R) T4 `# \9 }(texnum==31900466) ||( ~8 y. H# J8 x! ^( h
(texnum==19300342) ||' N$ u6 Z o0 Q% B8 C: e
(texnum==36200604) ||0 s6 c% g# z, f3 y
(texnum==21300290) ||+ w4 B* _1 x+ o/ U! p3 v% [0 D. `8 @# i
(texnum==35700558) ||$ [& [" Z/ U' K
(texnum==22100396) ||' _% Y. K) T4 ]) [3 u% M1 R. s+ H" q
(texnum==36100604) ||
5 u3 l, `3 x. A4 i8 Q/ z$ L(texnum==27100464) ||3 ]$ q5 k4 q+ Q' B- D% v
(texnum==11400180) ||
$ f' p% b. x, X4 F/ N+ |(texnum==34900580) ||
h' C z* O- ^' P( ?- O `6 I(texnum==13200212) ||
# _& I& u* ~( u(texnum==34700538) ||
, [2 v: D& w1 R5 L' M6 \: ~ M; E(texnum==19500352)&&/ b9 m) M$ _+ O3 w, F0 M/ f
(nNumVertices == 448 && nPrimitiveCount == 776))
4 M7 R/ D5 c! W" N f& h( X: {& k
( ~% r$ N# G4 o{
& g5 ?; R5 G; _, E mpDevice->SetTexture(0,Blue);
' ?( j4 y8 {3 D& N4 @, V0 O. Q}
, h. E4 s8 }* I, N, @
# w6 |$ q/ ^6 B0 Z
3 t& x) L+ |. s0 H' a! q& c. M+ r* b{
0 V& N$ r' M6 N2 o* g5 Q! XpDevice->SetRenderState(D3DRS_FOGENABLE,false);& {! g$ b+ @3 I
}% x7 o! c2 M" F @. k W% G+ A
. j6 p3 H/ G4 ^: h2 M; s4 }6 \
/*Logger# U% e9 D. I/ n9 H
if(m_Stride==40){' y" J N# V1 q' ~* D% [* g
7 J2 v; _1 U5 k/ K, o# u. U
+ V( x) m& o9 A
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
, f, v8 x- O7 c/ n1 s# Ywhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;% _. E: ?" J) n7 \2 J
bool alrdy=false;+ V" S- x* v2 d8 R' R( m
bool inarr=false;4 ~- z0 A# c! N6 J
5 z: G8 F S8 P' F' p0 P6 c7 } D
if(texarray[arrc]==texnum)
2 p3 s+ R9 @4 B3 P0 \if(delarray==texarray[arrc])
7 Y# ~1 i4 l" @" Q7 A9 z7 a. Yalrdy=true;% x }* [9 F: Y3 M6 v- ?5 a
for(int i=0;i<dcount;i++) //sees if said texture is in delarray+ ~% E6 X E3 Q7 n5 m5 }! ~5 x! `
if(delarray==texnum)( l1 D: W) S$ o& @$ _
inarr=true;; O# _$ E3 S# F7 U
if(texarray[arrc]==texnum || inarr){ //If true, color model differently
: O; d' _5 B6 N( J% Y& PLPDIRECT3DTEXTURE8 texCol;9 |& e1 D4 u: @
DWORD dwOldZEnable = D3DZB_TRUE; # M+ [5 ~- t' U8 V
pDevice->SetTexture(0, NULL);
: C' Y l$ R" }! l, hpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
+ Q1 b7 c) } A* q6 c6 O; xpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
! e1 j* a: }! s, B. Z: v# ~- s2 Rif(alrdy) //Different colors for selected models that are already being logged (For removal from array) S( y4 l. B! g
texCol=Blue;: Q+ g/ L0 C- Y' V( w. p; ~
else
5 }& j0 R4 G+ {# c+ I% s% UtexCol=Red;+ j9 C" Q8 N& ]6 P! \9 K! R
pDevice->SetTexture(0, texCol);4 ~! l$ l4 h( d( V* ^9 k
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);8 o+ J. \, ]) S6 Z4 {
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable); v, k& r: x. d4 j' X; k# k
1 B& W8 ^* e0 U6 l$ a4 \" ^8 |
}
- K# q. J) I0 h% G O( h& V( E3 G" I}# T/ o7 f6 D$ J* N! ^9 O
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
) D5 f/ u& c3 v) @& L; Cif(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array0 g) v, c& N& V5 g! d: m
bool inarr=true;$ |1 F0 [2 e+ h7 O, V9 c3 K1 v* ^% a
for(int k=0;k<dcount;k++){* ], ~# j0 }/ Z, ]7 c9 I$ ]3 d+ G, {
if(delarray[k]==texarray[arrc])
3 X( V# g) O: F" l5 `8 N" D{$ W o: r6 t# ?+ n+ K
inarr=false;//Found selected texture to already exist
1 P, R2 B/ |$ l* i! wdelarray[k]=0;//Delete texture
6 B2 h* O9 Z' V+ v) @8 V6 Obreak;//Cancel loop( r/ B% g4 M9 S/ }* G5 s7 V
}& |' x7 I' Q% b# F. f5 p; r
}+ v2 l, @( R1 l! Q+ B1 H
if(inarr==true)4 Z% Y3 S6 @- o5 Y! U; @( F
{& `6 c: p6 \; l9 M
delarray[dcount]=texarray[arrc];//Add texture4 `: L v) d2 J" x) A# |
dcount++;& e$ e: o& G! r4 V9 b
}
0 W5 O" N+ w L/ t: p} D1 ~: O. o8 f( _% l9 n
if(GetAsyncKeyState(VK_F7)&1){7 W0 G3 {2 K8 I [, d
int total=1;
: \8 [4 u2 H( m1 @9 ]& Aadd_log("omfg values?!? {");. P7 i. y) ^ p3 W: o- N
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format1 \" P0 K* J/ @0 ]& J" ]
if(delarray[x]){
# u' y, [7 Z" D( E) }add_log("%i,",delarray[x]); //add_log2==add_log but without endl j0 x8 r' o" P. S$ r) ?
total++;
% x7 {, V' c" k5 f3 I/ Y}: y; ?' N: ?5 D( `' e; `
add_log("}; %i variables in array",total);
2 _, m0 H% L% I, q# Q- n}6 Q6 r" L3 m+ c5 J
bool found = false; //THIS PART CREDITS TO KRYPTEC6 b) p$ A( a! T
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION" I# R3 P8 h- }6 s. `
{
8 _+ \( d' e! [ T) u5 `: nif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
* Y8 b, \* C( R% m' K1 c( G7 Q}! A0 ^5 x7 t: s. i* l
if(!found && arraycounter < 1000)
6 X" v* f! `7 o1 R6 n2 n{7 ?: E" o0 p+ i
texarray[arraycounter]=texnum;3 D2 p' m+ g6 S0 ?7 i1 }( T
arraycounter++;9 D: P$ k/ u; A, I; Y" d
}*/
7 z6 W$ t. g1 O4 W1 \& ~
; J2 y5 L6 I' E' K7 T! o0 S. e% f) Q* p. \8 G% l7 G* Z; J
}
5 e4 |: k. ~8 o) Kreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
l. s) X% k4 x/ }# }2 A}
. j$ k6 H" e6 `/ Y8 W- B I) J//=====================================Dip_End====== ================================================== ===================//3 I2 D1 f* Q( Z
1 ^; V9 E# S* J- p6 J3 `: S
5 T Z. H1 ^6 F& @; \0 z8 }
//=====================================Sss_Start==== ================================================== ====================//
! B* s0 O5 U4 W0 O0 d2 ]typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );+ n3 X0 I( t* K! V( X& D
oSetStreamSource pSetStreamSource;+ X4 ^8 t: X4 J. d0 A- g0 U8 ~8 B9 \
, `( S! E* Z, U" \6 L9 T' kHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride): x1 X3 g1 ]; [5 W
{: S& a! B; W6 V# @
if(nStreamNumber==0)
( b: n) }1 ?$ F6 t7 n' |9 Km_Stride = nStride;5 n, `6 S* Y1 W' u% O( l% `; z
( E) A5 p* ^5 K4 y% f6 xreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);5 ~) |4 [" D) R$ O+ F' G8 E1 H; B
}2 K9 l- S4 j9 V7 ]
//====================================Sss_End======= ================================================== ===================//' v' @1 x2 c% I/ N
$ ]3 ~7 o+ u* P8 U5 ^2 b# O. ?
//====================================Svp_Start===== ================================================== ===================//, l0 ~% U& I7 a7 e
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);2 x0 o! t* l! O" U
oSetViewport pSetViewport;
! z: w8 D) @, ?" V# _9 {# Z; G u2 W* P
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
1 z+ J$ [* s0 m1 _0 P* F{" l F9 u% \% A& h3 x$ d
ScreenCenterX = ( float )pViewport->Width / 2;
9 ?. ]: D% H3 R0 w: R2 @* C! AScreenCenterY = ( float )pViewport->Height / 2;
0 g6 o7 n9 s6 T& h
2 ^3 m6 J8 `. b7 e. k, ]return pSetViewport(pDevice,pViewport);9 M1 a7 }1 u) B$ b' w6 A: y
}$ b5 y8 D; y3 H1 p( p
//===================================Svp_End======== ================================================== ===================//& I6 Q0 H" R# V+ }4 T% Q) l$ L/ ^- O
+ |5 r5 u6 i* U9 Ttypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );8 y j0 ^; ]: l/ ~( ]+ e
oBeginScene pBeginScene;
, D. A! e: p7 v+ M' G
0 W" m0 w" n! S: C9 mHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
$ E8 e' i0 ]; B' g1 U0 T% R{. |0 w: P" j; y# }6 g
if((GetAsyncKeyState(VK_F6)&1)) 0 b( p5 K+ i- R) m
{% E, J5 R J- ?+ y. U% ~
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
7 D, h7 D3 I( P( r5 ?pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
1 Q! Z# N& p: dpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);4 a: k4 j% t R$ y4 s. ^5 \
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
" M; _; v1 |3 U4 l+ m; C9 \}
0 B5 q$ ^& H5 c" e2 {( R, t1 l% _6 e3 E8 ~0 ~4 F& |2 b
return pBeginScene(pDevice);
6 u n, Z0 Q- H}* k2 ~! [& B/ ]: h7 E1 b6 b% K5 v( p
( m7 {7 C8 v) M( z/ C
6 d. z, r* ?. r" E/ NBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
8 d9 o$ D- y d4 [( U& D! `. i1 v& V{8 R' U3 }# S1 N& [" h4 m$ m
DisableThreadLibraryCalls(hModule);
! ?* v$ X3 O4 A$ {4 p5 L# b% f- Y. A* M8 B- E- h% g% o" f" E
if ( dwReason == DLL_PROCESS_ATTACH )
$ A% V& R7 Z9 h( O0 A; T* b{
v y. e1 ]. p" A- X4 m, N* o6 i# Q
//=========Log==========================//4 V+ w6 s$ `% M: g7 _" q
GetModuleFileName(hModule, dlldir, 512);
# q! A( Y$ c( n/ hfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }, u& k7 @: P5 j8 R e7 l( I. Q
ofile.open(GetDirectoryFile("log.txt"), ios::app); % _. R* ]1 f- F2 u+ @3 p3 t
//=========Log=========================//5 i" U8 f" v' ~8 x
5 k7 }2 J+ ^3 T+ J# _7 \
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);1 g$ j, z, x/ a
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);6 g" K1 Q0 ?% L4 y. F; ^9 z
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive); p) y C3 Z. i% F/ ~
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
) l+ c$ C% {! F/ PpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);, O% [9 j" q. N' d+ ?* v2 W
6 \1 Z v) n1 v3 a" P! w}" W* y5 P, g9 ]4 |) H0 ^
return TRUE;6 Y# m2 {4 t: ]+ U
} * L U' |0 G- K" `! `
5 G7 `4 o0 B1 S, Z I
3 I! g0 Z/ w/ ]0 H& t! _3 P: M2 ?; }Log.h (The header File):. b4 ?: f# V5 q4 F( C9 p
4 ^6 b6 q w. j! Z4 R! i8 \) h, D
#define WIN32_LEAN_AND_MEAN
. G2 O* l. o1 c0 \: |9 Y4 p( K% n/ B1 Q, n2 K: a
#ifndef _MAIN_H/ }5 S! h1 x3 k: F! ^! j- y
#define _MAIN_H
* a- |0 W" C" O
: x3 n- t, M, k; z) O3 U9 i3 G+ Ichar *GetDirectoryFile(char *filename);: x1 ?- c6 \ m% R2 X
void __cdecl add_log (const char * fmt, ...);( X- i+ ]0 F c1 B6 H
#endif 0 G# x* t, b. r0 N3 U
. P$ ?% O D y& C% K6 |& U/ f- m
Now after you have built your wallhack you will be able 2 find it in :
9 t5 C, X+ C0 f6 ?4 E% NC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)0 j, {4 N3 P, f) A* H4 ?$ B5 P
7 V: d" D5 e0 H0 hNow I will show you how to make your wallhack undetected:
6 _6 [( `6 t* _% s9 ~; j0 n' T1. Download D3d hooks
8 s4 X6 [) L5 w2. Open the file that says "create device code made by me.h"
+ r0 U! ~4 _1 R; d+ c( N3. You will need to make another header file in your project and then put name it create device and paste that code it.2 B, ?) h- X: p0 F" A( }
4. Your wallhack is now undetected.
8 g$ g% Q6 T/ A! |4 z5 m" W" U! `
3 Q9 S) b: L9 I. P9 d$ ~Credits:. q' j- Y4 r0 G+ N
1. ME FOR THE TUTURIAL, J) a: j; f7 W, H1 b
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE1 G/ D( m2 y) N. p" c0 O/ E) [
3. FATBOY88 FOR THE SOURCE CODE
( z; _9 H3 ^% ~7 Y. r4. THE INDIRECTX I JUST FOUND :P
8 r8 m4 o+ Q$ F
" E/ d2 c) {, G" wAttachments:
; L8 Y4 ?" J0 ]5 DD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj55 ~& i h: H' O
IndirectX: http://www.mediafire.com/?gimzgmeny11
6 O( Q1 a$ l/ v" ?" lMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5- D6 r, e4 E8 D9 o
SEARCH THE LAST ONE UP
. { {1 U9 Q y8 `* |; X__________________( R3 c# k: P; B& y; p
; w r' x ^* @' ~
<---------- WALLHACKED |