原文
( J# [- a+ F# M/ yhttp://www.descipe.net/forum/sol ... -your-wallhack.html0 q' j0 R1 i! Z. C
3 N" s6 | S9 Z6 h1 q! ^% Q4 ^7 s
视频教学! f- c8 [# Q" n
http://www.youtube.com/watch?v=6b5XMzT-b_U , j, ?9 A; Q# T& z5 {
w, p: S7 g8 B: W# g) A. ]9 u7 R" f
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
8 @! q5 M% E/ ~+ M0 ^
9 z, ~' q% F# C+ S% A5 \& @/ J Hello shane007,$ a6 K; ?5 t0 l* N
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.
+ b3 q, ~/ Z) n% w
3 T, h- {1 }0 AWhy not start with your first post today and become an active part of DEScipe.net now! ! P& R$ |8 P& s# g9 G; ~
6 c9 R, E0 a+ q6 L: Z
* _6 |; D( Y z7 C
7 |' Y, u. J8 v4 c* O DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats
$ w: C, C" t& L, W. ^ How to make a wallhack and how to hook your wallhack!
9 Q! G/ v9 z0 j: T& q& N/ M Welcome, shane007.
: P6 {, v& }4 f2 E/ r/ [ DYou last visited: Today at 03:55
4 J- u6 S2 @& Z2 @# hPrivate Messages: Unread 0, Total 0.
' r' }- D/ |1 {" Z) UCredits: 200 [Check]
" U D5 T" b- l% x
5 O* g5 v- P* w. JHome User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
! y! y, A6 O" K( U& |7 \
5 ?8 q) Y4 j; Y0 ?. H& ]4 X1 m1 u) h5 W4 d( K, x- r
3 p) J% z( x# ^* z; q' O+ bSearch Forums
0 G3 w$ D- ^; T5 J! g2 k, W
& |) _0 n5 {1 C* }: Z! x3 K; ]* c+ [9 P. @
Show Threads Show Posts
9 d0 b+ C! t" h8 n) Q' `Advanced Search
! d, E; s; N: zFind All Thanked Posts ; M( C- N( t" K9 l! w, Q( p5 Q
& \! ~# g! b# P" K( B: j* x5 o
Quick Links
( K. h5 o# c% L/ i& G7 i7 FToday's Posts
9 g+ Y6 H, k2 g" Z& k2 Y6 O% FMark Forums Read + [! x# I, x- m
C: i: d$ ` Y$ F& b
User Control Panel ; M5 x4 S1 t" P6 p5 a3 A
Edit Signature $ Q4 R7 S7 H# e6 q
& \; q7 C/ r5 S- [( h' F* R3 @8 |0 zEdit Options ! q, Y* ~; \) i8 E1 L' |7 ?
Miscellaneous 3 S5 K' C8 j" g/ i
Private Messages 6 q# @7 g* }6 t
Subscribed Threads
" f1 p5 N' J, F( k6 k ; q8 P* P4 b# h
Who's Online
0 s6 f+ B& U0 B6 z
" m2 M) u* Q* l! H* w1 ?5 a- \Go to Page... i+ ~2 B$ n6 A, d
; J/ N2 [8 Z" M8 V) t- c0 x4 wHow to make a wallhack and how to hook your wallhack!
; Y% S1 V* e/ x4 |" B6 SThis 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. ... 9 Y& {9 e5 N$ {: Q0 z+ f# b. T
8 S4 x. p* O% Z/ P7 N9 j Poll: Was this helpful?
: L6 F* b: y A2 V5 y5 t) hPoll Options
; c$ X6 O$ N0 OWas this helpful?
8 x4 S% \+ }8 h1 m, ZYes, I WILL press the thanks button
2 t: S$ b# x4 R* ~+ zNo, I am a failure
2 |& ^4 F$ f6 ?; u8 P- @, kView Poll Results & q0 [* k: c9 m( y! h O
) [% K% j4 V) V. l* }+ ?9 I Page 1 of 3 1 2 3 > 4 _. ^+ V: y* T: d! n3 X. D
& R7 p" X3 `) f8 C% S" ?1 x1 x6 I- k+ {3 d View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes 4 f% P: \5 O6 I. F# B& J' \1 f
, Z+ ?9 h. D+ T+ E0 b1 q. _
7 e& K2 J% E) [: b 1 M5 w7 h) Y& q5 B0 s, v. |6 q2 i G) u
05-02-2009, 20:49 #1
7 N8 g: H$ i$ ?2 g/ G3 P6 x% ], ckillax9 1 P9 Y* U* ~" G8 B1 j
Punk: k# z" v+ y; T& g1 K9 E
' P* W. A/ ~' r. D% x% O
' y0 t/ v. G1 S5 H# p, T- T1 _ ' r9 H2 G/ g0 b
9 U1 [9 T3 M$ n. z5 Q! S9 f' RJoin Date: Jan 2008, r S h( ^2 \+ Q8 D& o2 _6 \. z
Credits: 2,701 [Donate]
& s8 B5 ]0 n4 x, }. Y. zPosts: 103 % |9 M+ T( _+ k `9 [' G
Thanks: 10
" o& x6 m5 y( E% ^1 wThanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack! T3 d3 Q2 k: `/ e$ b
$ s0 S0 a; ^6 \
--------------------------------------------------------------------------------
# L. C$ a0 s6 F. p7 `8 O5 P- V3 O* }2 h8 Y( J; U ^" K: z
I will be showing you how to make a detected wallhack and then hook it for it to be undetected., y' K, @5 n0 Y" M: u
Possible Undetected Methods:
7 @/ [% q2 K! t1 S8 A8 M0 e1)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.
% @2 i, T. X' k t2)another way **** it hack GG.
4 e1 Q1 o+ S; |( d3)breakpoint hooking;doesnt change memory... well changes debug registers.
* d J/ t+ t4 ]% h7 x- E0 j$ O# N, h4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin- E7 e& B5 m% n$ V* H
$ A1 D0 ~/ c0 G/ b0 {Vtable:* I, p: E* B3 g) V8 g% d" b
it wont work for vista its not a vtable hook =)
+ j4 C# q! F9 o6 S- S; x/ D4 Y2 t! v% I
the reason why my older version worked was cuz it hooked 3 ]5 \6 K% q; a$ `
Createdevice->pointers to the functions* i; h8 ~+ g1 S$ `7 k
: D- l7 j# Z! e5 M1 C2 Okinda like a class or a struct.
0 C' w+ n) ?* Q5 ~9 h
* y5 {0 l2 r* o9 }- r( _
9 N% f# c4 u- D& _5 U; Vand 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.
9 w9 o. J4 I* Q
( k& z) T$ L0 S, H% D4 _3rd maybe- some games recreate the device when a map loads...like BF1942.
* L$ F+ }4 @$ `; x* K; F
4 v( R1 E) A' j+ @Things needed to do this:
9 b9 \# {% R. x: r9 _5 {" h7 j( b/ z1. Microsoft Visual C++ 2008+ e! V6 q2 _) l6 u2 f
2. DirectX_SDK_(Summer 2004)3 v# w8 X7 M7 k# Q1 w& w8 _3 |5 g$ _
3. D3d_hooks
! W( Z3 s$ x/ A4. IndirectX1 U$ }9 a4 B' O7 O) W$ X" p
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM, Q6 F1 x+ g6 j. I9 Q# b* z7 U
& U5 P( d: G% M/ x1 PNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
0 d4 \, y8 k( t! x7 \
# Y/ n9 Z8 x" w hYouTube - How to Compile WallHack [Tutorial]
, j* U" K2 q. L, ?2 l1 D1 s# M " x7 \- P; J' q' C0 h4 ^
& T! p, ^1 K7 S6 K: d% u
w* l& n- H* b( F6 b% W6 K3 pDetected Source Code:
5 F+ n5 v V. A/ P
4 ^5 p; R7 ^ {3 n! u#include <windows.h>
0 } R1 ]; E( V1 [6 b* ]#include <detours.h>
6 z( G5 ?) p6 Z x#include <d3d8.h>( k8 I8 L5 V" _8 @0 w: }, m. h6 W0 c
#include <d3dx8.h>" w/ c' T5 g. L% ?9 O! }
#include "log.h"% S$ @' U3 l: W! F* y3 f( Q; y
#include <fstream>
/ `0 G( z* u& e& A3 i* M* ~, P#include <iostream>
. b4 `$ B3 F" ^7 C4 Z#pragma comment(lib, "d3dx8.lib")
7 x; V& [5 ]4 {: ?) i#pragma comment(lib, "d3d8.lib"), y9 R- _% u! s1 \5 k, n
using namespace std;
: o* o- D1 y; T* g# I0 Mstatic DWORD dwBeginScene = 0x6D9D9250;
& w3 T, o2 f5 m4 }static DWORD dwEndScene = 0x6d9d93a0; R" `* K1 C3 l( d% U: H L
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
, ]; }- ^" G& g+ {1 I& l& |static DWORD dwSetStreamSource = 0x6d9d6760;
! Z- y/ R8 `* M/ K5 o; r! `! wstatic DWORD dwSetViewport = 0x6d9d5b90 ;
U( S8 x( n. T9 w# u) Y# ?! w1 i/ c P6 K$ E( t$ E
: y) B$ Y' V9 P: i z6 b& {" M; @% hint m_Stride;: e( o' N3 Y. T& k- Q
int texnum;- U( H* i! L! e) o' c
int nNumVertices;
o3 y, M! r' |2 [( Kint nPrimitiveCount;
6 a) V+ M# s; ]5 ? u2 ^3 ^5 S$ @" g7 J& d0 y/ Z
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
# N* U, Z9 }* v- x9 x8 E8 ~bool Color = true;
! ^% s* n5 ~0 Lbool Logger = false;
; H# ~" A$ p/ D, C6 V0 k6 sofstream ofile;
( w6 x# s& _- {# P" c$ D8 O1 _char dlldir[320];
* x+ ^# M8 C+ O5 R0 m a2 `float ScreenCenterX = 0.0f;
8 p* D8 N. |/ @1 efloat ScreenCenterY = 0.0f;$ z, m, W% J. o9 a+ s
bool xhair = false;: \6 i( H% V3 K& \' O
bool WallHack = false;
+ n. t/ b' O1 M$ Fbool WallHack2 = false;
: O9 c% s/ b7 ?4 r6 r; rHANDLE hand1 =NULL;1 F+ Z9 I) N0 p! M2 o
HANDLE hand2 =NULL;
% N% Q0 m$ B) d6 _3 t2 `
* l* @, E2 C. ~& q9 B& vDWORD bytes;0 k" i6 p4 c( O# g1 X5 e3 M
1 c0 l" a; i! g1 T
//Logger( D9 e @, s$ n0 q
int texarray[1000]; % {! {. \/ ^1 m' H e% j
int arraycounter; 4 \1 Q( ?* {- H5 w* X
int delarray[500];
- L* l9 r; \* i$ Fint dcount;
D6 S1 m7 h* p7 e9 [. Lunsigned int arrc;
; x8 d9 p: W# n6 jint i=0;
& F" P0 u2 B0 B3 e( ?( X) f) T4 G6 ^7 q0 n+ \: B5 }
9 W G% ^! U1 c5 J6 ?, cD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
% Y- Z4 B$ u: J% `+ t I$ P
4 t& N7 T1 W; r: h
% e3 h9 {* H4 P. e+ O0 Kchar *GetDirectoryFile(char *filename)2 `0 H9 t, |- { T9 ~( l4 @, ^
{
) j" S' y* ^) H# @2 `static char path[320];: X( g( e8 R6 d9 }$ u
strcpy(path, dlldir);
' V1 h- `) c" G. x" y& G# j2 }strcat(path, filename);
: p* ~# X5 A7 @+ s0 A% jreturn path;
1 E+ Q: f3 ~1 {! j! F+ i0 I W% D}
. }/ m }$ J7 y9 z' g
" \! e' C7 ]6 z5 T Lvoid __cdecl add_log (const char *fmt, ...)& x$ c0 p+ J! d
{2 v6 n# f& @& e' r
if(ofile != NULL)1 ]5 B9 w/ @# @3 j
{* n4 d# h5 P3 r. O
if(!fmt) { return; }4 _% ~8 G/ D2 [! G: ^
" F1 S @7 b* y/ q7 C h
va_list va_alist;
$ o# ?$ g& L/ l/ r' e+ gchar logbuf[256] = {0};
5 C. Q6 p7 B5 Z: n6 F0 n% X. P. b4 ]6 {: F: t2 D1 m: [5 T
va_start (va_alist, fmt);0 @# h7 d h0 L: @
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
; T- i( ?2 D+ E3 {8 zva_end (va_alist);
; e0 S7 | M8 s! g; J F0 t/ H0 a5 ]( u! E" j+ v( I( D: j
ofile << logbuf << endl;
) S6 d( D9 ]4 M* |}. d, h" F% |: ^% V# P$ n
}
+ R) a& N5 T8 d6 ~# I4 i
* b; v+ A$ J$ B1 ?HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)- A- I7 w2 ]' g, o7 U+ x! C) i
{
- w0 a' v" x1 S8 G- E7 T- bif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
* H( p( a" }5 s- u6 treturn E_FAIL; `+ |2 U% V S/ H
9 X/ N% v* v: ]0 \/ `5 a6 M- {8 xWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
# L; X, H3 y! _9 v( C: e; K. r& x|(WORD)(((colour32>>20)&0xF)<<8)) d$ e) K+ g0 b( G0 B
|(WORD)(((colour32>>12)&0xF)<<4)# j: \6 E" J2 z6 E# f/ T6 T+ d
|(WORD)(((colour32>>4)&0xF)<<0);
, `1 P+ p( L, z% S8 K, H% V
5 i7 A6 G! c! w+ ED3DLOCKED_RECT d3dlr;
; t4 k+ o" c& f% b" j(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);6 {: G" {' A: _1 y% ~5 D/ v5 z6 P
WORD *pDst16 = (WORD*)d3dlr.pBits;
- G7 @9 _4 x5 w* Y8 M
+ e; v2 b& m* e& L7 kfor(int xy=0; xy < 8*8; xy++)
+ D2 m1 o+ T4 C3 @) Y9 a*pDst16++ = colour16;9 h6 @7 w0 _4 t& x/ n9 [
) C+ |2 d/ s4 s1 o; V4 J8 z
(*ppD3Dtex)->UnlockRect(0);& s+ e& i/ J4 ^( P, H' F$ z- Z; @
z) x1 g3 ?7 D; F7 u0 xreturn S_OK;
0 l+ V' X9 G& l4 I0 f}" a+ D3 w0 p( G# \ s
/ B5 _+ Z$ ]/ H/ T5 x8 N& y0 j
: ?* S& W# b9 Y" }4 {+ V/ F//=================================EndScene_Start=== ================================================== ============================//
4 {3 x4 D" v0 P, Vtypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
{# x! n8 i: M% E i' C3 b$ j: boEndScene pEndScene;
8 G o* S4 K) ^2 `( E5 N7 N
6 I1 E# j4 E) Z. C, I9 R% {/ ~1 WHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
7 N2 C" e' X% D5 l{6 m5 A$ P1 ^2 C- {
if(Color)% o+ \6 @/ I8 o9 [: {
{
+ f) `6 U% V; p$ G/ @. g) AGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));3 c# E! {- h7 g- h) ?
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));8 V+ J2 ?0 {& `' S
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
' W* n- c( O4 r+ u! s2 f. BGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
# I+ u$ d; s H: S: H: q8 E+ GGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
: w x% o; I/ C; Y+ u7 [& @GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));6 G% x; s1 D3 e- C
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
9 P. l8 `+ {9 [1 w c T3 iColor=false;
. n: X, [! w# ^}
5 \* T: S( u7 [' ^0 F% l, Q2 `- |' D9 K! P
if(xhair)
9 [- K' v9 ^" V0 Y; N{$ {+ x: M3 d" |# S- U
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
) R$ Y" I9 z0 n! Z3 eD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};- F$ b' c1 N- q0 n
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
' Z& w8 s& y/ o+ Y5 f0 NpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
6 Z! d6 |( e8 _2 b}
1 M- m6 s- F; I6 R1 n; w7 F" {& z# E5 @2 K* V3 c- L
//=============================================UnHoo K_Start=========================================== ========//
3 k T# j# c' s3 H
% k, R2 l$ u8 _: R' q2 L7 \5 l9 Hif((GetAsyncKeyState(VK_F5)&1)) , U: T* E; L5 y5 u& D; ~
{
, \! ^* r& ?9 q, [, T0 Gint end =NULL;+ c# }4 Q3 @8 ?! G
int dip =NULL;* Z) k9 i3 V9 H0 e
int svp =NULL;
: g1 `+ Z8 M" X" I, Wint sss =NULL;
* s! S8 r4 Y( o( O% v/ I( R
, C1 e3 @5 p5 S: j
# g, I# p& s4 h! ^/ h# D! |BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
, j8 d$ ?$ a$ H; W6 ghand1 = GetCurrentProcess();
5 H3 T$ e. ]3 VDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
" q0 B5 o0 m1 `9 E7 Cend = 0x6d9d93a0;
* R/ O1 D. L, a& Hdip = 0x6d9d73a0;3 H- Y: e& D g, C: Y+ o
svp = 0x6d9d5b90;
. |( b$ x$ D4 b$ k9 msss = 0x6d9d6760;
3 a3 }* W6 i7 d' ]
( Q* ^4 E. i) q% u6 M( Y5 s# LWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
4 ?- s6 ~ i' H$ [* A2 M5 H" NWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);) {* b! ]9 o1 l! O! W# ~
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
# q+ m1 t& v$ G( q6 {* LWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
2 E: v0 p$ z; Z' y}
. X8 d8 q6 W, q7 ]//=========================================UnHook_En d================================================= ========/// V1 V- A4 K6 p# B
; L( y/ I& c/ y/ i1 p- _ H' C
if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} 8 K8 ?& W! |& D1 d4 Y- q& P
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 5 B3 N* D, f% Q. Z) N3 W }
2 r4 j" T6 ~/ O, E% ?' L; J& a" ]return pEndScene(pDevice);+ T7 ~4 j( p, ?0 q% d$ G' n
}
A z# |! r7 z7 }4 X% V6 {6 S//====================================EndScene_End== ================================================== ========================//
/ }7 j" G+ n, w& P$ E& K6 s) e/ u: }9 G* K6 }
" O4 @7 b) G: N F3 J& C c- [; z8 V; B$ `* y2 b5 s! c
' J# g; V' M0 v//=================================Dip_Start======== ================================================== ==================================//
6 l1 N( j+ q+ ~* [typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );0 I: U; M( K3 k8 X; {4 o5 `. |
oDrawIndexedPrimitive pDrawIndexedPrimitive;6 w1 ~! v# y% X: I1 N
D; M1 }* d; L/ ]( z! JHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)* n! k! ^: v5 B7 o
{
1 y4 q- t: D# o2 A
. W- U5 t' A5 ^* F3 v* a6 Y& R- l: x( I) j' j c$ E3 m( i) d3 g
: ~1 ^6 i8 r8 M1 t Y/ p3 `, D! R c) m5 e5 Y# Q& Q
if(WallHack)9 y: q1 r8 L' Q" u: E/ p- I
{
# j9 X( r* q* Ftexnum = (nNumVertices*100000)+nPrimitiveCount;
: g% B5 r" N/ r- d1 V, N/ [9 Pif(m_Stride==40 &&
# |2 j& M$ i O# |; `
: j! P( ]- B1 I(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||
+ F1 r; Y( s( E(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||2 H! A0 k/ g9 R6 m
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||+ S: J& z1 i1 a; }6 D
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||# c j+ x: Z4 c" J- r
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
2 G) K8 H' \ n(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| ( D) f& f8 e( a& q$ J0 o
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 8 X. @3 {7 O& S
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| 5 T8 ?( t) J+ i) J2 N* g
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
4 ^9 S/ E9 |3 R(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| 7 F! C9 m: y7 b7 ?
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
% X- s. m" D% u- E0 ^
4 Z$ E4 `3 ]: o/ J+ @0 u/ Y4 x' ~& o9 V \* ^2 T1 w( j, P$ P& j
8 y4 l9 ^4 b' `1 G(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
$ j, o: F; x: C. R7 h(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
& M \3 H8 O9 f: ]. }(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand 4 t. \8 R3 d6 w4 z
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm / ]- k1 G' i7 w3 E. T
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)4 Y5 F9 J3 d+ x: u6 g
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
2 m, T9 h0 K0 g(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
; ^! V! ^, g+ S3 q# p1 E$ `(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
& l [5 H- V' o9 P1 ^: {0 y) t9 ^(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants. \+ h( {4 v+ R. G9 U" O; F: a
2 W! ?( u" B& b7 ^{
* w$ N7 q6 x5 E% NpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
4 \$ \0 l' X; G/ I3 OpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
3 L/ S) ^ i+ ZpDevice->SetTexture(0,Orange);$ M. P3 \8 L7 t+ }# x
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
/ D6 |+ ~1 x9 ^1 Z& z+ a. o
% s. X" ?7 ?* v2 j8 [$ EpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);- I: e2 H2 J `1 u' z- m1 W+ B
/ V. f w& Y# q! ]
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
" l* [+ D4 x( O( X2 t# _2 hpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
i# |, s$ ]7 p; m1 A* XpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
/ M/ h7 X" U! o" @ B7 o$ MpDevice->SetTexture(0,Pink);& y% V3 Z! q5 n4 {
}
5 s W: t$ o9 i$ [
3 R% k9 T; x4 ?5 s H5 U& Gif(m_Stride==40 && texnum== 21300174) & Y# g" ]# x+ e) ^' Q
{ e0 Q+ X" H! V7 Y) o
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);# }8 n9 T5 |# X% u
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);. ~0 N/ x5 b5 A3 S4 n x3 Z
pDevice->SetTexture(0,Green);//GreenNade. g/ a" P) u8 J3 t3 j g
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 Z5 O6 U D, O
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
+ S3 w- {3 N7 c4 \& npDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
9 }: O% D, R, R$ E- JpDevice->SetTexture(0,Purple);
: M. U, k8 A* N# ^8 q; y} 8 R9 m& F, T% z0 R5 Y4 w1 Z$ b
3 i" l% }& `9 q; x( A
# c: K, [9 z8 q% S0 T0 fif(nNumVertices == 158 && nPrimitiveCount == 131)$ A' b' Y1 f7 _) H2 z' k
{
2 s5 e- r3 v) s" `5 spDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);+ e; l! K% l- c; i
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
; c4 i/ b/ `4 F! T$ e, m- N8 npDevice->SetTexture(0,Red);//GreenNade
; x$ f3 m" v. D! p/ y8 ]pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
, i- i- G4 B6 N* EpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);' W4 i* u5 j: e0 O
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);* N! _$ z! E, J& G* c
pDevice->SetTexture(0,Yellow);
6 K5 ?5 T; r0 n7 H# y* y}' x, N4 W3 N' A) [- o
% V/ u% U8 @0 z }1 `- H9 A
if (nNumVertices == 171 && nPrimitiveCount == 143)4 X3 a* H& \9 E2 ]4 i
{ ~- |# @2 o& _2 c, k" n$ ~2 |
6 B4 n/ W" F# k0 p1 lpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);2 h9 U! q( J% }
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
: C A% S( a5 [$ r9 \) P7 lpDevice->SetTexture(0,Red);//GreenNade
9 I J9 u! \$ ]pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
% f* p* j' Q, IpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
7 l3 k% _( f4 Y4 x+ y0 xpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);1 g& n, [4 l1 ~, _" }, D4 f" Q7 j
pDevice->SetTexture(0,Yellow);
7 b- W! Z2 e' }3 A}. a" @1 Z) f0 T
% p* {7 q- r9 y; c% ^9 u7 E
0 ~+ m9 d: [; R, k1 r# T. j1 ~/ Q) S8 a3 R( x7 F) l8 U
if(m_Stride==40 &&//face,mask etc...' ~; _+ q9 l. d1 N
(texnum==36700612) ||
4 [6 ?8 T l/ D0 Z5 J(texnum==9600172 ) ||
$ f5 o6 ?7 D2 A8 ]0 q(texnum==14200236) ||
- ^; k0 O& f, g+ H(texnum==37800552) ||6 z# I( u* T2 `$ Y
(texnum==28100486) ||
. F" q9 `/ }- x& K* T(texnum==35500568) ||
; Z3 j! Y* m. R% H$ E' D* ]) ]8 s9 P7 Y(texnum==2200024 ) ||) t/ R, N! A* X) U
(texnum==16200243) ||
- e8 z. ~/ T7 ]4 M* z(texnum==31900466) ||' s# s% F, F8 n( K/ L/ n* F4 P
(texnum==19300342) ||
- Y- B t$ A a(texnum==36200604) ||
, U; B" m( G: w5 u/ y8 S2 l0 D(texnum==21300290) ||
' S3 y$ ~/ E" w1 m ~3 Z* X(texnum==35700558) ||+ }$ E5 {/ H+ R
(texnum==22100396) ||# _/ ~8 i5 q+ l9 N; P
(texnum==36100604) ||
, ?- o% j/ G a5 B(texnum==27100464) ||
: ], W5 s8 M6 G/ x9 `, Q4 c(texnum==11400180) ||' V9 x' y. Q2 }- |5 ^0 A
(texnum==34900580) ||. `% I9 a. g1 C
(texnum==13200212) ||" G+ P6 c% `* |5 L# ~/ O
(texnum==34700538) ||
# ^/ T0 Y9 U: s9 H+ Q(texnum==19500352)&&3 V3 n6 P. ^: {
(nNumVertices == 448 && nPrimitiveCount == 776))2 n8 Y0 J, U8 Y- Y: V f* w; a
4 T% o/ l: C; }9 I8 v6 k! j
{* h2 d3 K8 T0 i& c8 {4 D
pDevice->SetTexture(0,Blue);) Y5 _$ k# Q' T. v
}. A4 Y% H U9 u* ]
! @% ~4 L( g6 e$ l
+ k) r& t% T5 v/ _- w* A! Y{- F O) u5 m* I/ Y
pDevice->SetRenderState(D3DRS_FOGENABLE,false);! Y l# y* D1 `: a
}
- U/ z3 j- i! ]
0 O3 q2 ]1 y4 f2 r6 U5 P' Q) K. u) k) b& E/*Logger
: L+ N. E$ R3 P$ Aif(m_Stride==40){
4 {7 Q" Z8 i5 `5 O# j& Z2 O* v1 R" r: b' \& M
4 W& W! K3 P9 |
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray5 u6 z5 E, }% v! [
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
9 ~, B" i' X' J) hbool alrdy=false;$ z4 T8 ~6 N6 F; _6 X# U% T- v" v
bool inarr=false;
+ t8 I/ g. h& c0 G1 o. A
: ~/ t2 y. i. @if(texarray[arrc]==texnum)7 [) F9 ~% E4 O8 [/ S
if(delarray==texarray[arrc]). ]& H7 C: ^% m7 x: e
alrdy=true;
; @5 P d$ g8 X2 E A1 e6 b9 Ffor(int i=0;i<dcount;i++) //sees if said texture is in delarray) s+ J. }' r3 E: a; C. s( q4 a
if(delarray==texnum)2 W( T* F$ S% l/ ]7 y
inarr=true;
9 N. p* j' ~' ]7 Pif(texarray[arrc]==texnum || inarr){ //If true, color model differently
+ a: L, Y, E5 p9 N; U0 n) q2 J' b K tLPDIRECT3DTEXTURE8 texCol;. h0 _" R/ g% H8 }( \
DWORD dwOldZEnable = D3DZB_TRUE;
( L$ q6 |9 z9 j. C$ `9 t8 NpDevice->SetTexture(0, NULL);& F4 T6 K+ Z; V
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); # C. X/ t' k7 J
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);8 m: a2 w' R( W
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)- E) X$ R. Y! G. n) r
texCol=Blue;* G2 ^& U, P& o/ I% Z0 k) H, {6 x
else
. v l5 `. T! O4 j4 I$ Y+ atexCol=Red;
% g$ Y( k$ s4 }) q0 G3 WpDevice->SetTexture(0, texCol);9 L1 [4 l4 i) I: P
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);# s9 ^! C& h- F* I& J' W6 Q
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);7 }- n9 t& z8 a5 d1 `
8 n' r2 F6 @+ [}
+ u, j- |. x. Q! C}
z0 H9 z7 |/ I& z# hif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile' d# ?8 {$ B; u* g D& E' o. P
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
" d, U) R. g3 vbool inarr=true;$ a6 F0 `/ P" H: H% V
for(int k=0;k<dcount;k++){
2 ?( K a- M X0 b, g4 {& t& }if(delarray[k]==texarray[arrc])
4 W2 G2 X8 ?; _" y1 w( w6 A{4 m: F2 |8 b a. |, [ P
inarr=false;//Found selected texture to already exist
8 `6 {3 m3 ]7 |& R& ^" U/ K; e( Sdelarray[k]=0;//Delete texture# F% K- _4 o4 H1 w2 ?3 h
break;//Cancel loop2 a9 p% C) w6 R; B8 \% h
}) { D& C9 r2 q R9 Q
}
9 ]2 ^4 I* v m0 W m4 cif(inarr==true)
9 c( c* U3 D9 e# d7 V( Y{/ x1 P/ A/ \6 a, m$ o ?7 ]; a
delarray[dcount]=texarray[arrc];//Add texture5 i1 M& Y' o! M# e4 `
dcount++;& M+ H1 ^; @$ t+ O" |
}
0 g- S- f# _, g9 y+ e) _}7 [2 u0 b, G5 ~- ^3 b+ \3 I
if(GetAsyncKeyState(VK_F7)&1){
8 x# k' c) ]( L' ]: e! u* \int total=1;
5 U& \; t6 O4 Q4 oadd_log("omfg values?!? {");; @# g7 l* L# n c! p+ v+ l
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
6 x$ H" n3 ^& O1 N( a/ V. p3 oif(delarray[x]){- K! u1 ?1 M2 z7 t
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
" Z/ I- j7 K9 Q: m+ e$ `total++;3 [, U3 V. n3 n+ {- D& c
}
, X! B/ N0 @5 w' Q+ ?+ oadd_log("}; %i variables in array",total);
1 i1 [, D; g0 L3 V8 w}; {7 ~8 t9 u! E* Y
bool found = false; //THIS PART CREDITS TO KRYPTEC" b9 E3 y* s$ X" t
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION2 P, z+ g8 M' G( L& r
{
0 R+ f6 O1 E, \, z: B& L, Mif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
3 |; d, p& P2 l5 o# ]# u}
& G. D4 }7 s$ hif(!found && arraycounter < 1000)5 |: B. ^/ Z7 K) N
{% y' m9 `0 t7 W: Q
texarray[arraycounter]=texnum;; ~) a; Y' {7 I* y
arraycounter++;. Y; S, H3 d$ n
}*/
1 a8 x r$ J, J8 b+ I7 S- E) F
) B/ |0 I) u+ ~3 ]. L* W3 _, Z$ _0 L; A
}
7 v/ G: L R3 b2 w! B8 f" X" ]return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);( X. n1 t' A1 [% @. G! v/ E
}
' F/ k7 n& w4 m+ V( O//=====================================Dip_End====== ================================================== ===================//
" H3 Y' B- Z9 R9 a8 P2 `
6 b6 @1 N; @" m5 m% Z$ l/ `# i+ G% g4 F7 v( @
//=====================================Sss_Start==== ================================================== ====================//9 t7 w( X* {, U4 ~3 P) C3 v
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
6 Z3 N1 V2 U4 y9 t9 L$ e; xoSetStreamSource pSetStreamSource;4 q% M, \& ?: n7 K
2 N* ?& ^ J6 V4 U$ N8 s0 H: J1 \HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
( `# ?; F( Z: R3 U{, @ E* ]1 Y5 ^$ f6 [3 c8 p1 j
if(nStreamNumber==0)% A% {3 V7 u/ L, O; u% c
m_Stride = nStride;, `4 _( K6 v7 b; Q2 M9 a; ^
% \+ _" m T7 Jreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
' v# t/ I& P8 N, k}
1 p( N1 w. x8 S5 o# k$ d+ T* j//====================================Sss_End======= ================================================== ===================//) T P! F& n, i9 W
; d0 u: H/ i/ W) Q; Z2 `% ^2 D
//====================================Svp_Start===== ================================================== ===================//
9 ?8 f! g' \* m( _6 ftypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);1 I7 x3 \& L _& D e
oSetViewport pSetViewport;
* F5 ~1 o3 V7 [" V! l6 g
4 A0 k; e$ a! z& hHRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
* \! R- Z( b& K F{
+ _3 O! w% ?, K5 O4 j$ T2 dScreenCenterX = ( float )pViewport->Width / 2;
& v0 S" d2 ^7 [5 kScreenCenterY = ( float )pViewport->Height / 2;
9 ~, Y) Q) b5 n4 V* _
8 s9 G5 f2 K- Creturn pSetViewport(pDevice,pViewport);; X$ s# j5 P% o: a
}4 x8 G, z3 d+ _3 {! w3 ~' {
//===================================Svp_End======== ================================================== ===================//
* z: g$ ]' y f( l' ?3 H9 L( |. L" k/ D' f- _/ N: O
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );' y; G9 D$ T7 f; T( _. X* G
oBeginScene pBeginScene;5 T5 P, [9 ~6 Q# ?5 q" S4 e8 X
+ K& f' z8 e: M) m- w( t
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
2 u( K) A3 d' ?2 m# Q- t" [{
, l: W# N0 G. R. z2 m5 p8 ?( W" L$ Wif((GetAsyncKeyState(VK_F6)&1)) ' Q* o+ L4 a& Q0 ~% b; z
{/ T! j! J, B% u r0 S; R' [
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene); D4 \- F9 _$ t3 c# q8 [
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
/ }& M8 l; D6 L8 K/ y4 FpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
' I; S9 u8 w. [pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
3 T/ Y# L: r+ n0 G+ K2 |4 b6 Z}
3 E- L( O4 w2 Q
' ]7 i. Y; y* i" X# o2 E4 ireturn pBeginScene(pDevice);: b8 n$ [: v' B* t2 }3 ^2 d- Z1 K
}
* Q7 ]/ N9 ]$ e4 J: s6 [9 D6 q+ a! z! f& u
% H# q$ T: G: @& D1 m$ z- gBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
/ N0 v* g" L$ v& X# N{+ A8 H7 a% d2 |9 B; x
DisableThreadLibraryCalls(hModule);3 b9 S) O$ `2 M2 `9 p
- B+ m, }4 [2 q5 `
if ( dwReason == DLL_PROCESS_ATTACH )/ l/ D" ^1 @; y, j) o
{
8 Z4 q' E' k6 L9 ] y; e; I/ ~8 G5 y, r6 K6 ^) Y
//=========Log==========================//& G/ p3 D6 e! K: d+ T! b$ N7 Z
GetModuleFileName(hModule, dlldir, 512);
# y& n, ~ r) O' Rfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
; @2 `" f( J; F; g! bofile.open(GetDirectoryFile("log.txt"), ios::app); , h5 E) v2 k! R6 s* o+ f+ w$ Q
//=========Log=========================//( \% z6 j) _* g# i
. u% P* T6 S9 T0 TpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
6 o6 P! O7 j, _' B0 L; o9 XpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);: p. z+ i' i3 W5 }# z0 B$ ~
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);# m7 e' G# ]+ U- w* x
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);6 z6 {2 U2 q" I# ^4 I
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
& C9 F3 H. r9 N" W9 N* y/ W+ }5 v5 i- U5 _1 i) c F
}
0 ^0 J( w x7 Xreturn TRUE;
6 Z" g" I( d4 D7 H- l} ! f/ v- v, C7 n/ f" Z2 `: W4 i
3 u1 O" w, I. l0 N: d5 R7 k
+ i( a. q" C6 L$ e7 j9 y6 ULog.h (The header File):
" p8 L r1 |5 V: I. r& n% w
: E6 n0 G/ P4 u& e: j& k#define WIN32_LEAN_AND_MEAN4 o; p$ p& x( ]1 X7 |" m
U$ O: F' l- [! S- _4 ]#ifndef _MAIN_H9 \/ f7 z" Q8 X/ N1 I, l) A/ I! B
#define _MAIN_H$ ]# n- D4 U( z' m
% {% E! e, j0 |# {7 L W, g7 ychar *GetDirectoryFile(char *filename);4 J, Z" k: G2 m! g# J
void __cdecl add_log (const char * fmt, ...);# J: F/ A1 N- t& r! }' w+ Q+ M! l
#endif # Y) t4 `7 j7 B1 A8 @8 D
6 t: Q: E9 A" y3 ], {Now after you have built your wallhack you will be able 2 find it in :$ j+ ~2 Q6 i: h6 K) J; w
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
# Z) u6 i% M# v* W9 q# v( \4 j( {3 W& `) b7 i% t
Now I will show you how to make your wallhack undetected:
w" L/ j% x3 K1. Download D3d hooks% n0 T# q. v: |& {3 P2 i, }) M
2. Open the file that says "create device code made by me.h"! ~8 K0 v. { r! `: _
3. You will need to make another header file in your project and then put name it create device and paste that code it.4 x& {$ H2 @- }% i8 n' `7 J
4. Your wallhack is now undetected.
" Y3 e# V& n9 K/ M+ D- p: k$ `5 [- E/ r4 a/ c# b6 u
Credits:/ D& \) \( l: x6 A
1. ME FOR THE TUTURIAL
) P3 h- ?# a0 b& b2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
/ z, p3 Z) @: S% p3 D# i5 c6 k3. FATBOY88 FOR THE SOURCE CODE
, d; m# r5 V; Z# d2 T4. THE INDIRECTX I JUST FOUND :P3 a2 t' E; r$ M$ Q4 ]
O# P% `' ?. @9 }5 d
Attachments:& {" u \: |, t3 Y+ g* `
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5% f# K0 S p* u7 _0 T J' ?
IndirectX: http://www.mediafire.com/?gimzgmeny11
) g e0 Z2 Z' T6 F7 E4 UMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
) o" E4 ?! n5 n2 z. V% SSEARCH THE LAST ONE UP
# w. D3 B( l) z) b: m: u* ~__________________& B, d3 x, _: I) ^1 I
+ U2 k! J V8 g3 c' e5 P
<---------- WALLHACKED |