原文
# T+ m. z7 s8 Z7 ]6 x. J" f% jhttp://www.descipe.net/forum/sol ... -your-wallhack.html
# u$ B% G) A- p! T ?2 q. G: |
' P7 D- x @, J1 u: p" O; g视频教学
( H/ d. R7 q$ P1 Y7 c+ h% v2 \http://www.youtube.com/watch?v=6b5XMzT-b_U : B( |2 _( D% S E0 j! ~
1 p5 [1 {5 D9 }5 S. O+ o6 m( ]
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
) K3 K6 M$ {) O
6 K7 F" n: E3 ^" Z Hello shane007,; V3 `+ U) `) v7 {
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.
- F: T3 M1 g! R) _' z' x' j
& C( `- I y9 h, l( M: @$ wWhy not start with your first post today and become an active part of DEScipe.net now!
, \& h' X+ m: m/ b# g 8 s8 R2 @$ r# ] M
" J$ ~" W" |+ b( i7 o' B0 A' ~- @
$ ~! v, |; ]1 n/ ~" w DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats
" [9 ` i0 a5 }3 l+ V How to make a wallhack and how to hook your wallhack!
; K5 N( x8 ?* Q" w/ Q Welcome, shane007.
. f/ `/ J! p- |0 d; U5 m# u pYou last visited: Today at 03:55
9 R: X: U% [) p* k" [8 F& HPrivate Messages: Unread 0, Total 0.
7 j2 |' h: G7 d: U- p' S7 nCredits: 200 [Check]
; o+ P7 G3 L& R( P5 ?0 Z; d$ W+ c& @: g& C; C* K# l
Home User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
6 Y# P5 l* O! d$ Q0 J7 @2 v- _& Q) x7 _( @
( ?3 v: K( |2 R
* }( Y" A2 q; \! I3 kSearch Forums
5 m1 D7 @- r0 ]9 x2 u* X; ?
+ v5 `' _$ N# y; Y6 H* L9 ~' z) j- V! [' D F
Show Threads Show Posts * u4 z# h+ \8 w( G2 {7 @; Y
Advanced Search
7 w9 f, w P( c `( g; e& c" y9 BFind All Thanked Posts P7 O- n2 ~/ s3 M: ]( j l
$ g4 v7 `7 \6 ^( ^1 r$ Q( z8 O& `
Quick Links
" F2 o j3 s! ~Today's Posts
- q9 P1 P" n" k9 t4 SMark Forums Read " m9 i4 C$ I6 [0 P" g( o ]! s0 l
6 q% v6 T* l4 P9 R- m, ?User Control Panel
! f6 \+ l. x% S J: P/ D% JEdit Signature
& L1 `1 R3 O- X+ J/ ~2 N( s0 w4 T1 E 1 p) r' u0 |% W
Edit Options 6 }0 @: B/ ]0 \) R% y3 V4 H7 G- F! W a
Miscellaneous
) p: v) h! C* G a% s- _* EPrivate Messages
$ d& w. K- N2 KSubscribed Threads
) f* r) Z+ N) O8 {. f
% l0 ^" {+ m0 HWho's Online
6 _9 V a# ~0 P/ p2 a- s& T( @
! O/ Q5 d' D' U, K" UGo to Page...
6 b* s2 Q2 F& v
2 a% t5 z, V4 J/ r/ l2 {% z9 K4 JHow to make a wallhack and how to hook your wallhack!
; {1 W3 P7 o' |/ O% ]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. ...
: K/ \' C4 O7 F) H; c# E5 x( ~' X9 Y2 l4 e% o# z
Poll: Was this helpful?
9 t" B1 ^. W$ o/ b) d" S) D$ J- Z. M" rPoll Options+ e2 z* J! R+ ?, z
Was this helpful?& A6 ^: T) e2 ]
Yes, I WILL press the thanks button
' I: w1 U' i9 {No, I am a failure
: |3 I y6 d/ [3 X$ u. }1 MView Poll Results ; ]' f L# s* r7 p: L- G' Q
. z+ Y! D) q) R: g2 u# F
Page 1 of 3 1 2 3 > " W2 z, T2 r& S/ H. W, P9 _
: T0 x( @4 [! P/ P* d& T View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
3 ?* x! X+ Q w3 [9 O* C0 _0 N! z4 q% m
& D+ O) L# |2 _ $ z2 c3 Z" T; d2 x n
05-02-2009, 20:49 #1
& z1 {/ Z) P. F$ W; a. I8 E7 Mkillax9 ]. f1 Z3 R% @( f
Punk
4 f% M, s( q. W) g0 k
8 k( ]$ f7 J$ [ ; A) e. ?# E' I5 E" F8 ~( O
# Z$ {; G. d' H
7 B h& Z8 c3 p$ S3 X) XJoin Date: Jan 2008' `# o3 S$ K2 D4 D. G
Credits: 2,701 [Donate]
/ [5 e! E9 M: G" h1 f- o; vPosts: 103
7 e9 T& W. t4 I/ O# t2 W+ jThanks: 10% C6 {; K# P' L
Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack! % R& U0 M. \/ `6 v; R
" B1 _* |! ^, g c0 J
--------------------------------------------------------------------------------
/ n$ W8 r/ _0 U+ i, f0 m; y. h% J5 B
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.4 a k8 _* V4 j7 \& {7 t1 q
Possible Undetected Methods:; ~& G6 e3 A- g7 U( l& U3 r# r/ q
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." c% L# u6 C, [: W0 P3 S( ~) ~
2)another way **** it hack GG.
0 u: \/ E( B( D# y2 R1 ]: q3)breakpoint hooking;doesnt change memory... well changes debug registers. Y! _# k I1 O1 H
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
- }7 h9 c7 b9 ?3 D6 ]! O
$ s+ B! a1 A- }8 DVtable:
8 Z$ _* i3 C+ B' o( uit wont work for vista its not a vtable hook =)
% w; X. `3 M+ o% N" u
. {: q9 B8 Z3 sthe reason why my older version worked was cuz it hooked
3 B% e; q! z0 r+ ECreatedevice->pointers to the functions" X, M! X7 e8 l# U% o a
/ t2 @( k& a+ D6 v- w k
kinda like a class or a struct.( B9 d: M* }8 R/ {
+ b( w' l: e1 [4 N% ?6 Z# S; P; D- F/ m0 d) W
and 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." N: x: v% q" v' k
% t$ `# {2 D0 y
3rd maybe- some games recreate the device when a map loads...like BF1942.
. Q- S8 e# ]( @) p: h7 X _
* `& @( R/ E- c7 j9 N: `Things needed to do this:
2 x6 [: q. q: a" ]1. Microsoft Visual C++ 20083 d7 _; ?" n0 {
2. DirectX_SDK_(Summer 2004)* Y7 O1 Z/ a2 y2 @
3. D3d_hooks6 {: f' K+ a: E" c. ^4 ^% }. Z$ V
4. IndirectX7 k1 j" v P$ h( Y
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM6 _0 |" D9 Y* j, z& \
6 a( ~3 Y" E: B: ZNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:- ?1 o8 j6 L$ w/ T1 d4 @
$ g c2 M8 q& B3 Y. tYouTube - How to Compile WallHack [Tutorial] ) {# q3 L0 Z9 F4 M3 o
J |- F" L# S- z8 |- z& k7 o$ v N6 P/ F V/ x8 R6 o. K1 k
2 W3 q* ^/ O8 q! E
Detected Source Code:
& V& j/ x; b: C* C; C+ ~8 h
8 ^7 n) B0 z& }! b#include <windows.h>4 f. |+ o/ j2 {$ A
#include <detours.h>
, ?, M6 C, o5 e4 I# W#include <d3d8.h>
3 ]( I! b& x) G+ ]" q( T0 g/ x" B' l#include <d3dx8.h>
, R9 q% a) ^, @#include "log.h"
# q; i- x5 S* z#include <fstream>4 c$ x" H, D6 _& I l: R
#include <iostream>
. C' e- s1 k' G7 k E+ D8 F: o/ o#pragma comment(lib, "d3dx8.lib")
$ O" F8 c4 p5 p: {( e4 }#pragma comment(lib, "d3d8.lib")& J. O! p+ n0 c
using namespace std;
# _1 w5 B3 }+ k$ V! W1 ^' y1 {static DWORD dwBeginScene = 0x6D9D9250;. u+ N9 D/ |' M% M
static DWORD dwEndScene = 0x6d9d93a0;
, f: r L% e( G( Fstatic DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;+ V h3 r! z" k' G: Q6 q
static DWORD dwSetStreamSource = 0x6d9d6760;
. @" g. F8 n2 r x2 D0 e9 |7 g4 Mstatic DWORD dwSetViewport = 0x6d9d5b90 ;
. f- H5 q" l0 u1 b# z" `) R7 S! \( U1 T5 x4 } x9 C* N
) t+ R3 g5 @. B5 K' ?1 p. Bint m_Stride;
( C6 r0 T% G3 Zint texnum;
* ?; j0 ~9 }+ {+ @; q" k! zint nNumVertices;; k/ O& Y* g5 h0 o! N7 z
int nPrimitiveCount;9 I: {8 W% n9 l+ ~+ g
M# E3 N& @# x# jLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
# j2 `5 e- u# m6 u+ t: |- n, I3 _( Sbool Color = true;* M9 {" g5 p* \, c" G
bool Logger = false;
# W3 d! B, `1 z3 J" h" Cofstream ofile; $ [* H4 ]0 M0 |9 l
char dlldir[320];
& f( c2 k8 I- W# q# [' zfloat ScreenCenterX = 0.0f;/ K) A$ x! p$ ]7 O% H7 I
float ScreenCenterY = 0.0f;
+ }$ h6 y- G: [) C3 ]bool xhair = false;
! M( P! b# \* N& Pbool WallHack = false; 9 V( n! R v; W6 W: B8 N) e1 L2 \
bool WallHack2 = false;5 C- X- |% ]8 S
HANDLE hand1 =NULL;
3 p8 A0 T N! _- o3 uHANDLE hand2 =NULL;3 i7 Z' p7 ^& F6 G G+ r$ W k
3 A0 q4 E: }6 ]% T. n5 G5 u. B
DWORD bytes;
, e$ m6 z" J( D& j* q5 J( d" L1 d8 S& ~2 ]! k
//Logger
% M8 I* c% u+ Kint texarray[1000]; 0 x9 k; K } h Q5 a
int arraycounter;
' O1 G3 Q: T3 n' dint delarray[500]; $ B/ b1 m6 A* r
int dcount; % W; J; l* ^$ `: k( I3 a) M1 D$ Z
unsigned int arrc;2 h% I! ~: F9 D* m* K3 N5 g4 T
int i=0;
2 b( t/ w: L* o7 U) |& X8 w1 k+ f5 @* V
2 A6 @" \3 h$ y5 s( Q2 p0 z* c0 S; \4 a+ l
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );; x9 ], q# A; V3 l) V; ^# x5 r
, x; I N; z M8 d/ M6 [
& D5 l3 J7 C3 `! ~char *GetDirectoryFile(char *filename)$ F7 M* D, U o" S* v* Q
{
4 v- d8 y- J% k2 z+ _. o/ t b; wstatic char path[320];$ g! ?6 e4 [! E7 i
strcpy(path, dlldir);7 Z" y6 g: P5 F w8 U
strcat(path, filename);
( K9 [% z9 a) B4 F: Xreturn path;- O. W/ s' ?# p! D. y
}9 o) U3 h4 b3 Y. b. f
, L6 n! w5 J. {7 b# c
void __cdecl add_log (const char *fmt, ...)
+ S2 s: X, X2 `1 S. }# ?9 C9 I{
, G$ `8 s. g9 P: j0 k/ X2 J! f4 u) x8 }: O, Vif(ofile != NULL)
% j9 j+ s) S/ T{; |7 L. J/ a* y
if(!fmt) { return; }
7 ^9 W& H1 ]( Z
3 G# R! Q3 |8 @: |- ^+ Sva_list va_alist;
- Z" C4 v% g: f: [; v& ~6 ?, dchar logbuf[256] = {0};
8 f& a& p, g3 I/ Q8 o4 k4 v% t+ _* o
va_start (va_alist, fmt);0 x$ S p2 l8 @6 s
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);! L& R! ~- i, |! U
va_end (va_alist);" A* ^; I" o& p$ L2 ~
- ~! Q: K" ^+ p2 C9 O- A' u
ofile << logbuf << endl;
9 h! y" b- A- `}! s# C% [0 _) s, g4 j: V7 D
} q( e: a" E: j5 ?2 k$ @
8 N8 Y7 N% w& c
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
2 `1 ^" v& {3 R9 W0 W{/ }: E* w9 }) _( a/ b+ O6 N+ q q2 j
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ), H7 c2 g0 }* r A% E- ^
return E_FAIL;( e2 A5 i; i/ e# \, V; S, h3 s
0 H/ g5 j/ g) V% O7 c: O
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)* g% M& c0 f) Q( a9 d& M
|(WORD)(((colour32>>20)&0xF)<<8)( _3 i7 K8 X( S2 p
|(WORD)(((colour32>>12)&0xF)<<4)* J# W& N7 B: I4 [, W2 S: P" f
|(WORD)(((colour32>>4)&0xF)<<0);
o( x- S6 n, z/ k" B
3 V; e- g! b" \/ u5 @D3DLOCKED_RECT d3dlr;
) m$ ^' M7 N5 P3 X t(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
2 W# f; s( P, NWORD *pDst16 = (WORD*)d3dlr.pBits;
; F3 S/ `2 q- m2 ^. E; @& m+ m6 r* G" D j5 Z5 r% i4 d
for(int xy=0; xy < 8*8; xy++)* Z/ @8 a' [5 R) G* f' U
*pDst16++ = colour16;
& G* K- K t3 _3 Y# @2 b
0 z2 B& d/ U: E+ Z(*ppD3Dtex)->UnlockRect(0);5 R6 d* F( B$ b0 o* ?. C- l
# J3 o; x, I9 i5 D
return S_OK;
' K, [! B5 G7 w! |1 q}8 B, {, f) X8 [4 ^7 [* B
" k$ Q& ^8 C$ F8 x2 m5 k2 K
) D, v9 r0 {" x- X. @" v8 |
//=================================EndScene_Start=== ================================================== ============================//
1 a! w1 E1 @( n* p' \2 S8 btypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
5 T n) ^) ]9 d# V2 VoEndScene pEndScene;
) g ~8 z4 d% {4 D3 h8 i3 q8 p& e: h- n" V7 \! j6 o
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
* ~$ l" w% L) l/ T+ y{- v3 Z& k. E9 Z( }7 j
if(Color)7 m! Y1 Q0 |& u l
{ 2 o' |7 N2 V9 I
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
% H* T ?- a% _- z! k/ q0 CGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));! d3 b/ `0 o; Q
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));' p9 s& @7 }% s% u% I
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));8 J* `1 X3 P R0 h
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));; p! D* d* t$ Z, [8 F
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));% Z- H( J/ r2 Q2 A6 Q% f1 b! u
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
+ m7 L6 k9 \- n7 q" i1 PColor=false; " n6 i$ `& a$ I0 r
}# W1 D! [+ U# J1 D' n
+ q! k2 k2 U$ i4 Z
if(xhair)
4 x2 x5 y3 Y. {& X{
* c4 x, n0 V5 H" N2 I1 M1 gD3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
% d, v3 M- A( L9 ~" S0 o- {D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};/ f5 s. I! \+ E) `# U+ G. }
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);0 Q2 u' R9 g" C: b$ O
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
$ Z* [5 U" X% c}
" `* n3 Z% r5 }/ n2 ]6 D0 n7 y+ u i# l$ B; g+ f+ x9 {3 }) |
//=============================================UnHoo K_Start=========================================== ========//; z- h+ ~+ L; v0 |6 k I
# _' r5 a3 N. U
if((GetAsyncKeyState(VK_F5)&1)) 5 u# e2 I) V$ w* u) t) y
{ 1 I) _5 k; {+ M- m. N0 c- n
int end =NULL;( b& J( s0 W9 c! d$ [2 r7 K
int dip =NULL;
$ |7 K9 H* w0 g+ ^: z# Z- Q9 _- u& hint svp =NULL;' w. @, O1 R7 D$ L
int sss =NULL;
2 q5 n7 j! T0 v/ x; p5 F% \: Z! J) H: x
6 Y; y6 N! r1 E! T6 C8 V' l8 G; G
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.% G1 R+ n* Z; A! K/ ?( s R, A
hand1 = GetCurrentProcess();
* l- O# ]* M2 `" I% N% VDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
+ S# ~6 x' b: C$ d" E4 h( P/ hend = 0x6d9d93a0;
4 T; L- a5 z# s4 n/ C! R1 l Ndip = 0x6d9d73a0;3 q& v+ @7 T2 B
svp = 0x6d9d5b90;. q+ C# h1 \ J
sss = 0x6d9d6760;7 ~+ }; R' I; B. `+ s/ D/ g$ E: E) [
6 ]8 N) p. J% }* o) o/ o1 J& z SWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);+ r) J5 Z% m' A& f# _; Q9 \" Z
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);9 R: x, K' E! {9 J) I7 }
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);7 I. b% D+ O* `4 k' N1 H" H
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
, }" I/ {6 d. p$ K/ M} ( r* |1 X* q- {5 z: c' o: \
//=========================================UnHook_En d================================================= ========//
7 \/ W8 y y& o" ?( E$ U; w7 j9 Z3 z4 ~2 y# X( C8 i
if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
+ f6 ^. o/ ]# _if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} ; F* K: V5 f' }/ C4 n L5 |+ \! ^/ a4 c
: k/ n* _9 N9 G9 b; ~$ V
return pEndScene(pDevice);
# J( _' b8 N0 i# c5 Q, ~}
9 W# @0 N- N7 D//====================================EndScene_End== ================================================== ========================//, c: n8 i1 y3 A& c' G0 V8 F
9 Y) D. S% P& Y2 B2 \5 _) b W
8 o9 T8 c/ l* p' z
- v5 K( M8 i% Q3 m. L8 p: `8 V' V7 z8 O0 M
//=================================Dip_Start======== ================================================== ==================================//
2 v5 M1 C0 ]$ M# J7 {typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );8 W" z$ P; g. P
oDrawIndexedPrimitive pDrawIndexedPrimitive;
f5 z8 G3 y( i8 c- @. G
R0 P/ S4 a" F d. ~HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount): b7 o: w+ K6 A+ k( R
{, ]" Z j* N5 ^
# W) r% u+ W& H
8 q8 y H+ [4 t: M. j7 [& G. J9 {% C' c( a! f
1 w% s/ ]( \5 s* G6 k' e
if(WallHack)
4 J' ]% z' q: N{: x2 B5 \* P5 X+ \% o) G
texnum = (nNumVertices*100000)+nPrimitiveCount; 6 c" A1 y* |5 T! E8 u
if(m_Stride==40 &&
6 Y( I- m: K4 l+ a9 x- T6 w- @
4 i$ B: a' a. f! r F(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||; F2 u3 j7 m& w3 q$ m7 m E
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||4 C# Z8 t4 s) y3 c7 h
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||' {. G; O' U# f) Z
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||$ _) q2 m2 V; B# F1 P) H0 ]
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||- Q$ e! O6 x4 d" {+ N
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| ! S% r! e% G5 b& M; K& c
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 2 |4 d2 S3 c- v6 F& H
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| 0 h) M4 d! r+ y
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| ) I1 M6 Y$ g9 ^3 _) D1 C
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
- C2 b( H6 _8 k) c* G3 n6 a8 q1 Y(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
, z% P7 }) a, ~9 m& k ? i s" D1 Y7 b- I# }
4 N# g8 [& m" v A
3 w# M. K7 `+ [' H; U; U, m# ]
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot 5 A9 p1 F- k! i7 |: ]- R
(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
5 K& {: K7 l4 \9 d" M7 I! O: H(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
' [. G( l$ ?, m8 [(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
( ?% \. m( ?- N(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
# P. q: W( k5 Q, o: ?//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
^$ ?- t2 `# U8 ~7 |(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item 7 A6 a. z7 q9 @0 @; r9 W
(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest 3 d$ @ _; h# f1 l/ f3 v
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants' v- j# s& j; [% Q9 L9 K* z
% I) r; K4 P; M) P) h& f
{
$ ^% O( d" C+ ppDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
6 [1 }( q' a# v1 |. ?pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);: i3 p, y0 w1 Q, b( Z% I
pDevice->SetTexture(0,Orange);. W" K% g6 o+ h" s* a, J
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
- v8 E# y* y. D$ l+ k l5 `6 T! s, l' _" o4 G9 q
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 U* v( ?' D0 D. ~: [: p/ u
! @$ J* N* j! } K$ m& \//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
9 K. m, z% {% g7 r0 e6 HpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);/ }0 B; S6 X7 I- y( ~1 J+ G: E' O
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
m. ? @9 q& e6 l G/ UpDevice->SetTexture(0,Pink);( Z+ y' N2 m5 h8 U4 {) Z1 z
} # b$ l0 y8 O& j6 N+ u8 M) [
! ~$ R* K2 L/ p) ]- Q0 ?5 Wif(m_Stride==40 && texnum== 21300174) ! }/ @" _$ `: d' L+ F
{
$ ]; ?) |. B u0 L O& u, v' rpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
$ t/ Y( }* W: fpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
! G' Y# G. V5 K1 n$ \pDevice->SetTexture(0,Green);//GreenNade
1 T* |1 E5 W2 u1 rpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);7 ]# f. m! H# Y* m
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
: X4 W! K6 d/ a/ a; zpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
7 k! H$ N* h# S+ ]pDevice->SetTexture(0,Purple);; w' R2 V3 R4 [ O! h& ^6 e9 B
}
; Q) {! a+ B3 x7 ]$ ]& @& O+ z1 D1 c# K
- X3 M k( t. Z+ \& p, C* P' ]( ^3 M& b. j1 ?! h* I+ \
if(nNumVertices == 158 && nPrimitiveCount == 131)
3 h; q- K: d% N0 S{6 }: [6 V/ G' I. }5 X' a
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);$ h3 v: k C2 n' T- o- q
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
+ z& Z% s6 Q1 |! o; _% DpDevice->SetTexture(0,Red);//GreenNade
+ W- f7 z7 ^% c8 A: ]! x6 t" R9 qpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
6 H5 n3 D9 e- P- V' YpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
/ I0 X! A/ W; ~2 g( _pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);- J1 L9 L; z: I
pDevice->SetTexture(0,Yellow);
% G9 R% _2 v: O% d* p}* C9 O8 s3 r; k+ x- K
6 V# n' B- q/ Bif (nNumVertices == 171 && nPrimitiveCount == 143)7 l; j( q1 u6 r- \$ l- s' Q
{9 D3 t6 T* O3 U$ J* o3 z& G
0 t+ o# h( Y S
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);( i3 M2 s: g3 D
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
9 U; Z) }$ }* t7 vpDevice->SetTexture(0,Red);//GreenNade
" ?& G6 A. p! t0 I# ^pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);- e4 S m% u1 G
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);( P0 t- @+ R& V3 I1 }4 y% ?% Q
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);# x4 e, O7 [0 A) Z# w2 n% S
pDevice->SetTexture(0,Yellow);
4 k; p& v' ` u: R& S# S}0 C0 C! A+ C3 j- C1 p& J
3 M6 E$ k2 a) P* m8 G- h8 ~0 Y7 d
% p) I! T* p) {5 O8 \% F- |. z& i$ @% t/ p
if(m_Stride==40 &&//face,mask etc...
' R- Y7 D$ k9 J(texnum==36700612) ||# Q! }2 U# q! G U4 t* _
(texnum==9600172 ) ||# F; {6 [' z' O% C
(texnum==14200236) ||
6 _7 i0 e$ u7 X6 h% M f# C0 P+ p(texnum==37800552) ||0 O+ @) N' }; q0 @' U: {
(texnum==28100486) ||- e' @. D0 ]! o& L
(texnum==35500568) ||
7 y0 ^* T: Q/ k! ]: G6 w* l: s(texnum==2200024 ) ||1 H# b7 m* v0 }' q) e, ?
(texnum==16200243) ||2 |* q- L5 \/ }. N. Z7 Z2 m
(texnum==31900466) ||
) A4 n0 L; l. X: u: p(texnum==19300342) ||; M4 T5 p: t8 F- g
(texnum==36200604) ||+ G8 L. R# n& P2 d7 _! X
(texnum==21300290) ||
+ G0 o5 q/ r: A) a0 G& y- k(texnum==35700558) ||: A# l& M+ j- S2 w# ]* {
(texnum==22100396) ||
# @+ y0 ^# s" y2 g: q(texnum==36100604) ||# c& A; z$ t- @& e) K. C
(texnum==27100464) ||- z- t8 [. ]* K4 E5 y4 h5 K
(texnum==11400180) ||8 n8 P1 @+ V) ?8 o* {9 _
(texnum==34900580) ||
2 M+ p# Q, _! I- N) X(texnum==13200212) ||
3 h0 k- b' p' m5 c$ ?! \% e% k(texnum==34700538) ||
1 @, N7 y7 }& ?# J& {(texnum==19500352)&&% Y4 @& p0 q8 ?- Q9 d/ ?( K) N/ a
(nNumVertices == 448 && nPrimitiveCount == 776))
X* ^5 Q4 X4 s( e* B4 G- n4 A- {+ d4 B5 @: k
{
L! i1 r2 `2 a- G: c1 SpDevice->SetTexture(0,Blue);) G+ F7 A% r$ ^& e8 R% A/ A7 f
}, _/ J" i# O$ ]7 c% b2 k2 Z
, I# V/ e: b( B: T, V( R( C* H0 V( z1 _$ ?
{* W! b; j- l& G* Y& T D2 S- a/ j, w
pDevice->SetRenderState(D3DRS_FOGENABLE,false);
m% R+ R+ x: e4 L/ s}8 E) m; m) o2 [) X# d4 C6 U
+ a2 N: h! o- H" k7 G" \ D$ ^/*Logger
( h9 c* R [3 K: [0 F8 @/ cif(m_Stride==40){
+ H+ `9 D- p4 q/ p# K! N8 z
: \' W# t1 C3 d" I8 ~. A6 \' D2 g' U3 c( X. s9 Q# f
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray) E' q& Q4 U- e. x: |+ x' P; P
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;' Q( F4 `, n: u0 H" E9 M
bool alrdy=false;
+ ~2 K9 I" H' L( n( Q5 m5 Dbool inarr=false; u5 c/ o$ g5 |7 O0 ?
( j5 \ G' L( U" I% g+ J
if(texarray[arrc]==texnum) C9 X( l* a1 x: r) q6 P# x5 V
if(delarray==texarray[arrc])
+ _& S8 q; U: E* J, N+ G4 Galrdy=true;# J! X. \- u( d7 G. w8 |
for(int i=0;i<dcount;i++) //sees if said texture is in delarray3 L/ M- @. W6 n! Q3 Z% u
if(delarray==texnum)
. d, @9 s" D! b3 g8 Y% l9 Sinarr=true; V7 M3 b7 `( ?
if(texarray[arrc]==texnum || inarr){ //If true, color model differently. f& x. B, u4 ^9 Q
LPDIRECT3DTEXTURE8 texCol;7 F) Y7 w6 V( U: w8 C
DWORD dwOldZEnable = D3DZB_TRUE; 5 U+ I0 ~) |! J% t2 T4 e) d" t
pDevice->SetTexture(0, NULL);
" f5 e5 d+ n3 VpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
3 r! T5 X: v' Z) EpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);$ G# o- ]8 j. R' b
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
) t& V+ ]+ H9 T8 htexCol=Blue;
" ]- q7 C/ e2 N# Y- selse" q! d& A$ M" m: [& W4 v
texCol=Red;
/ Z8 E M. c' G5 q2 TpDevice->SetTexture(0, texCol);" r; Z/ t) r4 W* I0 r/ V
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
, z, Q0 |/ g( y# v7 ?pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);) Y' a, [# y3 m% s ?, _$ U
' u5 V z+ Y* Y. r& \' t
}
" ~" K8 h% t( N$ z+ u2 {" y}
$ g6 Q Y. I$ M: w" w8 S; Iif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile# I' A9 Q1 P1 E0 g
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
4 H# Z i5 |4 J; V* s; ebool inarr=true;2 B k1 a" {- J1 e) j
for(int k=0;k<dcount;k++){
7 }, d) p+ F5 j0 P8 b2 Y; |if(delarray[k]==texarray[arrc])
7 \- J5 c# D' J/ ~- M8 |{
1 ?+ h3 e a- d* c2 d) a, Ginarr=false;//Found selected texture to already exist4 }, }( [& z) D8 v U+ `
delarray[k]=0;//Delete texture! m |8 J. p7 O7 L8 d5 _
break;//Cancel loop
* W3 o# I; p. l0 E3 U}
# `0 y5 U% X1 h- C; N; b" k}
8 L0 C& e+ ~# e$ `8 Hif(inarr==true)8 }" {2 \8 O# m4 [) Q' f& o8 h
{. B2 o2 u& o" m0 _
delarray[dcount]=texarray[arrc];//Add texture
+ o9 ~* J$ r2 m4 q, L3 g8 U$ {dcount++;
+ r P8 d" X5 k: T}; J1 d/ a# y0 y
}) N% T* w; Z: ~; q
if(GetAsyncKeyState(VK_F7)&1){
9 E; G% i3 R4 Z$ `! q Wint total=1;
9 M8 e. j: z g8 f+ z1 U5 G' X6 B# vadd_log("omfg values?!? {");
4 i; m; T. i) I8 Hfor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
5 D) ~6 j' q1 H' w8 @% bif(delarray[x]){% C' Z6 X+ s1 V; l9 p4 Z
add_log("%i,",delarray[x]); //add_log2==add_log but without endl- e, ]! m- W- L$ m) i, f4 q
total++;
$ t& ^; w9 q9 Y/ d7 `, c$ k: I}& `# ?% A( c9 A
add_log("}; %i variables in array",total);
. G- F. F) ~. d& p9 t; H% W( S}
; k, [+ }1 D! K9 [7 Qbool found = false; //THIS PART CREDITS TO KRYPTEC) v$ R' z0 j, {
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
: {) i( [$ C, ^+ U; [, v{4 S' J; Y. ~5 `0 t
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
$ S& }+ W( u6 J' s( D" S5 r}% `+ z! ?+ g& @$ l+ r
if(!found && arraycounter < 1000)" c9 D5 R; F% A6 w
{* r" k8 r8 t+ n( t
texarray[arraycounter]=texnum;
1 I t% d& v; I& narraycounter++;
8 Z$ ^+ k+ A& p0 Q}*/7 \# o1 n" o {+ w0 K4 M6 g
* F) t9 J. R m& b v" U5 D" `
) Q* J' P: w" \ X! ^}
! T5 q( X( S) E0 u- V: A1 Q0 ireturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
3 r4 K, t6 _& Q4 g) R& g3 @/ i}
" W3 }$ |0 V) @) l) d- m+ E; \//=====================================Dip_End====== ================================================== ===================//: g2 L" G, |8 l- N6 F
$ g' i y, M$ w; H8 R. ?! e. w1 Y
1 I8 B$ _. l# w7 U//=====================================Sss_Start==== ================================================== ====================//$ ^" G; |( F& m/ h
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
# m6 E8 p9 ~' r2 o+ o+ _oSetStreamSource pSetStreamSource;
% j; j' }( S# G$ O& R% r& R' \
% I) `, }& z- u M) c& w( ]! o; jHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)* B1 {7 }9 `6 c/ e& O
{0 y$ s5 A2 J$ s; r; s1 h" {4 u, e
if(nStreamNumber==0)
5 d3 z( @% n* o' d. v( l; b% pm_Stride = nStride;% j2 K* N; m3 x" }
; U' V a3 S h! h3 G& ?2 U
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);2 N9 F8 r/ g$ H5 o& y# a; j
}
+ @1 [$ Y1 j8 ~8 d+ h( ~# g D//====================================Sss_End======= ================================================== ===================//. D, Y$ z. D# ?; F
' U S7 O- G9 f$ K* S//====================================Svp_Start===== ================================================== ===================//0 _& J1 |- L$ L6 b
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
& c `& b7 \6 LoSetViewport pSetViewport;) l* [6 ]* V! ~7 x8 w
+ R5 B+ b7 N# J( Y& F, g
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)9 R8 p8 ^' `; H2 l, u7 r" Y
{5 Y$ u5 i9 ~" @! U _
ScreenCenterX = ( float )pViewport->Width / 2;, c* z: |! D' g- z
ScreenCenterY = ( float )pViewport->Height / 2;
% W, l2 _- }8 s* E
1 k2 ~, g2 j' w" ]* oreturn pSetViewport(pDevice,pViewport);
/ r B4 [# U' ?7 _}- ~% Q- G4 ^5 Y5 @# a
//===================================Svp_End======== ================================================== ===================//
1 s2 j4 }. D0 ]5 H5 E; r0 ~
9 e) F% y2 V$ d- U. q& itypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );# B3 C8 a; t4 [4 _# L
oBeginScene pBeginScene;, a% Q- O9 J- J3 Q
. A) t+ V$ ]: Q" m4 e% Z OHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
, t$ p8 ^( H6 d( q% l1 Q% G{3 o0 z1 E# E3 z5 F+ P4 z6 }% p4 E
if((GetAsyncKeyState(VK_F6)&1)) ( Q. A$ ?1 ?, g- c! X) o% `
{
$ L+ M0 ?$ [& R3 J1 j+ UpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
* u6 `2 d0 u% i( N" ]- N4 vpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
' y7 y) u- j' L' `: W1 p& SpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
) d& Z1 r$ R7 }( }pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
; H, q0 t- \, k) t}3 m7 {3 J6 j. V0 j9 h
8 i' Z- q+ _9 ^
return pBeginScene(pDevice);/ p: u+ n$ }4 ?4 r
}+ H! r, Y1 L! w1 x5 p
, O7 e( z# l1 B% A
: L3 I6 X( S) a# Y5 rBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )% G' V" L% K" g6 a
{
1 \7 E/ C9 M. c8 ]- G, |( VDisableThreadLibraryCalls(hModule);+ W* b6 d+ \3 Q9 }$ w
/ E6 M% u* b5 [2 j, X& V' n' @; dif ( dwReason == DLL_PROCESS_ATTACH )
! n+ g' L$ P( H; k, e9 Z4 ~{
# m8 a; R+ N/ \( g; ?; s$ v
- T# n" v1 h4 ?+ O' r" | L//=========Log==========================//6 o- {1 t7 Z" Z6 W% C
GetModuleFileName(hModule, dlldir, 512);
7 o0 h6 j2 M& H; {1 Yfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
: a- d9 W# j4 R! T8 J' [; N& `ofile.open(GetDirectoryFile("log.txt"), ios::app); 5 q" U. R" o- Q. H7 f9 u
//=========Log=========================//
* u7 a" ], X: t3 j
9 r! D9 m8 ]! `7 V+ d, {8 lpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);% [; p2 p2 I6 n6 X
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
: N3 t) T$ i1 W: A* SpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);+ w9 b4 `( O4 A$ m. ~% z- a
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);% {" x# |1 c" C0 e8 t/ V2 K
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
; y' ~# h/ I2 z' b, Z" S1 v
0 E. h8 D1 L8 E& k$ [0 R}5 ~& v& {! ^$ X7 W4 W) Y
return TRUE;
. x+ S7 o& K. V. J} 7 K! ~7 G& S/ X* L1 U
: \3 j% [5 o0 j9 ~/ k$ W5 D$ B4 {5 l$ u
! n5 ` B* T1 tLog.h (The header File):9 n" S% s. @0 Y
* y. A# j9 W6 G1 V
#define WIN32_LEAN_AND_MEAN: s7 }* x, \+ ^1 o
: X9 r! I# g! o# U#ifndef _MAIN_H( l `. i9 A1 h$ y& x
#define _MAIN_H5 {" C6 r$ x1 k8 ~
3 j( y+ U( x" F$ c1 ychar *GetDirectoryFile(char *filename);
! s& y# h/ h! V+ h! avoid __cdecl add_log (const char * fmt, ...);
1 x% t$ b3 A) b8 f7 K1 D( S#endif
# a) I2 _9 v8 F d$ w' {- @0 D( Q+ J$ ]- s7 r" o0 Q% j% {
Now after you have built your wallhack you will be able 2 find it in :* O2 y; U: I! j
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)1 S9 N+ N% g! i1 S- t2 Y) W- R
% X. S: j0 C7 u+ B" W- m+ b
Now I will show you how to make your wallhack undetected:! m% p8 L$ e% G6 r& c& ~6 b
1. Download D3d hooks
& W* w+ p# m) N% ^/ Z2. Open the file that says "create device code made by me.h"' J, X. }7 S' R2 } e
3. You will need to make another header file in your project and then put name it create device and paste that code it.2 G( G; b/ n8 n! n0 N! J w d/ ]/ Z
4. Your wallhack is now undetected.
& l H! Z7 d/ C" y
|! Z* B' B& g# f/ {9 s; d( dCredits:
# g9 t! T, i6 I1 w: p7 F: \1. ME FOR THE TUTURIAL
$ u, M* _, G; x: t' G+ j2 {$ J2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
9 x+ P3 j! e% {3. FATBOY88 FOR THE SOURCE CODE" }/ o- h* h. j0 P8 B
4. THE INDIRECTX I JUST FOUND :P' D/ ]0 A# d$ p, F
/ N# p1 j. q$ y( L/ `6 tAttachments:
7 x( J8 R8 [2 B5 e8 a& O% _/ gD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
* v4 o% G) ?* i! u+ YIndirectX: http://www.mediafire.com/?gimzgmeny113 l) u" X& N& V$ V6 j' r- |
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
! I: p) Z8 h* lSEARCH THE LAST ONE UP. D7 p: J7 x/ M/ s( P+ k9 Q
__________________( g6 z+ M! X1 u( y& |
8 u' x/ e- X$ v: N g- {* k <---------- WALLHACKED |