原文
, }* q* W# v% c7 Jhttp://www.descipe.net/forum/sol ... -your-wallhack.html) _5 e; @0 K. e Z* |
7 b! t" o9 t+ p- h视频教学- n; @6 X, ?) m
http://www.youtube.com/watch?v=6b5XMzT-b_U # w, x9 c/ p3 ~4 i
f/ m2 J! V- h- wHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
( M( @% Q. T7 W4 J8 _/ `
7 k& f: _9 L/ H7 x: y3 K% x Hello shane007,$ \2 X1 Y) A0 ^- G
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. 2 J+ L0 X3 p* C* q+ |
' L2 Y; E ]: }3 JWhy not start with your first post today and become an active part of DEScipe.net now! & s* l6 o0 a; |
. S9 b3 ]3 M) ]; U' g; l; q1 C, ]. e
; Y3 o$ t/ H4 W6 A1 ^: c ) n% H1 v, q3 ?& g8 v
DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats : e# u/ s1 h" j' k+ F* \
How to make a wallhack and how to hook your wallhack! 6 w4 a, ?' Y5 F9 |
Welcome, shane007.
8 K# j, L; G" p8 ?$ g- C! aYou last visited: Today at 03:55 2 b1 v5 P9 U8 {4 i/ r
Private Messages: Unread 0, Total 0. ; T* I9 L& X+ }- F# J
Credits: 200 [Check] 7 R. z8 c: L# j
8 Z1 f1 R* \: ?/ \$ UHome User CP FAQ Members List Calendar New Posts Search Quick Links Log Out % }1 p( \0 o# u
7 a, F+ E7 Q6 [) R
2 G" o$ X3 a' u% B9 u
4 T' `) z0 [5 _8 F! ^( X4 i2 r5 P) KSearch Forums ) f1 |1 ^! f- @" R# |9 U7 X& r, x9 c
/ R5 o. j9 K$ W* t, ~( L' T3 Z! |9 y& e% ^8 o
Show Threads Show Posts : g/ @1 ?) H3 S4 ]. b
Advanced Search
+ C2 d% t& N- c+ L* D, M7 XFind All Thanked Posts
( ]! w# ], k* r( W5 x/ ~# i
, X2 \$ H- x- i5 ^) e5 TQuick Links K, L5 `: n, ~
Today's Posts
- G5 x/ I0 V3 o; g6 e$ SMark Forums Read
; e3 E% U' i6 H! x- j$ }% `! J6 u
4 H, C$ P4 I/ C1 \! k* [User Control Panel ( n3 N4 ]( D" m- Q0 v( ?1 U
Edit Signature
9 V/ h3 G- T6 H0 O . x4 H1 h- h p# U! D% [# L, G; E k
Edit Options
# s5 W: R( u" HMiscellaneous 8 k8 C& p! W" t0 {
Private Messages
- k# ^4 V9 w3 I2 USubscribed Threads
5 h6 `0 g$ Z6 y : _% s% X5 t$ R6 q+ G6 D
Who's Online
5 N2 O6 g0 ?* \% R
( d$ {0 G! a* d/ BGo to Page... 1 }8 }5 R) w/ C# t" I
' X/ {. N3 N& W8 H7 J$ l
How to make a wallhack and how to hook your wallhack!3 Q- ^4 c' { U0 y0 A
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. ... . D' V% C; @ |7 Y7 j
7 I. Q' Z. v7 w) N
Poll: Was this helpful? # ~2 k& f; K2 h% o _
Poll Options* z5 J9 @9 e5 a* ^8 l6 u# e+ _
Was this helpful?
( H- C. }6 S9 _' m0 p- Q: `7 ^% yYes, I WILL press the thanks button6 V/ m1 m9 T0 k2 H- J n
No, I am a failure 4 `, ~$ L! x- r) p0 G
View Poll Results 4 q1 G ]: f! t" R$ G, Y
7 t! a# ?7 g8 F" X' W! q/ H( r
Page 1 of 3 1 2 3 > 4 \7 N* Q# |# N% _, V m
3 o+ ?* z6 `! D! r' M' e7 k' Y View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
2 @$ S6 y0 E' {5 \! A% O+ I2 H0 M5 ?' i' x) s4 I7 O
- ^4 B- i" P9 m( E" g
8 ^3 G+ Z7 @( b y- Z. w# u 05-02-2009, 20:49 #1
D1 Z2 K$ C/ x7 i% M6 Y1 @killax9
7 b! m3 P: Y' ?9 o6 X, D1 yPunk1 J+ w E. {3 L
% P4 ^- z& p: D) Y+ f/ z/ f ( W7 z# Z5 X3 f) W3 i" P
* R5 H: s/ R/ n$ c/ ^* Q! C$ {
4 \- J) e- I7 b! Q8 s* W9 L# DJoin Date: Jan 2008
6 q3 W* k& e& ^; x) H! ? c+ fCredits: 2,701 [Donate]
3 |( _* m& t) ePosts: 103 : @1 s- b) m8 l% i4 ]) w4 K7 b
Thanks: 10
/ c4 ~4 ^$ G7 ]' \Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack! $ \5 x1 X' N) E- E- |# m5 W; k; f
; e5 W# L4 o+ A/ F: M# q
-------------------------------------------------------------------------------- S$ {! l5 T# ~1 S D5 G0 s
' _0 B) J% M* v
I will be showing you how to make a detected wallhack and then hook it for it to be undetected./ ?5 d1 |: K7 ? S+ |( J' E
Possible Undetected Methods:2 a& |8 @& {5 [
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.
/ X: H& s) ]4 w% r2 O& y6 q2)another way **** it hack GG.
! @# r0 w# \* n1 f. _2 M( u3)breakpoint hooking;doesnt change memory... well changes debug registers.' L) r; b$ q) ~4 r
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
( }/ X' q! k; \0 H
" f- c9 L- F/ [" m" v1 lVtable:" ~+ m" \0 V& ~
it wont work for vista its not a vtable hook =)
: f8 b" \6 E5 a' Z8 L! {* P1 @/ W/ ^+ M- U2 ~% A
the reason why my older version worked was cuz it hooked
- j: Z: t" P! v6 i wCreatedevice->pointers to the functions! Y: m% E6 P5 m Y8 n
* A9 B, f+ p$ e# h$ R* d0 okinda like a class or a struct.: E& ~5 n6 F9 J4 c, `1 }
! |+ W2 E- L+ K: ^8 J& g
8 g3 N- |. G- U) n! Jand 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.
/ R6 e' j# n4 C0 U5 q" S5 u/ |: ^* P
3rd maybe- some games recreate the device when a map loads...like BF1942.
. a) ^8 _1 C/ {/ F( E+ N* S0 x" v5 @
Things needed to do this:
; y% y+ z9 {) B* C7 J" y6 U C1. Microsoft Visual C++ 2008
6 T3 Q5 d0 l8 r& U; N8 }# a2. DirectX_SDK_(Summer 2004)
) q- p( k6 ~5 S# R3. D3d_hooks
6 [2 W# v3 @2 j' B# }4. IndirectX
6 X7 ^' i+ w! K- H: I6 [I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM" K" L- V0 s( o! l- t9 Q
5 K' |, C. q. ?7 u' w
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
! F, N8 s3 X. x( h) r7 V* w+ b$ D
6 g+ I' r0 s3 l% wYouTube - How to Compile WallHack [Tutorial] & z( M: h5 D) s& g
8 M, M1 j: o/ C! d: N
1 U! m6 g! O M' _) u, D! m) s, s; ~1 @
Detected Source Code:
& ?' I" e3 O6 T$ M7 L. ?' d% w5 _4 L) d
#include <windows.h>- E5 t/ R! Y2 r H1 Y6 ^1 F
#include <detours.h>8 }) X: Y; g1 G7 ^
#include <d3d8.h>
2 L0 P6 @, q; l7 y#include <d3dx8.h>5 R6 q7 U( S8 E& w/ ^: u0 [+ e
#include "log.h"
8 B; V. i, `; v t: g ^ z. r#include <fstream>! {% l( s/ c- D. |& w1 S5 {
#include <iostream>" Y3 I$ e H( R7 @$ |$ o
#pragma comment(lib, "d3dx8.lib")- Q, @1 ~; X6 c0 i; N: V3 T
#pragma comment(lib, "d3d8.lib")5 B! ]- t1 q; ]/ g* W
using namespace std;
( m' l- _, C8 Vstatic DWORD dwBeginScene = 0x6D9D9250;; P( N; e- o8 C7 k8 v
static DWORD dwEndScene = 0x6d9d93a0;8 H3 L; R$ V B) R/ z
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;8 f# u% f+ l2 J2 T m0 A0 [! f @
static DWORD dwSetStreamSource = 0x6d9d6760;1 F* H7 ^ \0 u
static DWORD dwSetViewport = 0x6d9d5b90 ;
5 C* N0 u2 l2 |5 u+ U' O0 j' a
5 y- d* m# j& G; O& U$ r
, O) d# v% r& `2 ?- w+ ^" S0 hint m_Stride;
9 _8 a* ]# H" }7 L& \int texnum;
' p& i0 C' q c3 ~int nNumVertices;' g( @; @' z) g; e
int nPrimitiveCount;: w) o) K1 t8 z/ i- {+ j# c# I
5 t! G7 {" w+ c1 `0 N
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;9 N7 _* O( W: [3 W* F/ H
bool Color = true;2 x3 ^4 H9 D4 d
bool Logger = false;( G$ o, V7 P" d! a
ofstream ofile; 7 ^4 E; c% a' @* M( G% x u5 q
char dlldir[320];% l" G0 s+ o3 F$ H/ n0 }. X
float ScreenCenterX = 0.0f;
, T' E( D8 F' X7 Ffloat ScreenCenterY = 0.0f;2 _4 x ~2 K& F- M5 G! e' y
bool xhair = false;0 W* G8 p% O: I5 {! Y& m" [3 V
bool WallHack = false;
6 ?2 A" W: a& ]4 Ybool WallHack2 = false;2 ?' _" M# x/ n0 ?+ X' H+ D# y
HANDLE hand1 =NULL;
2 O8 d& T$ i U/ J; _HANDLE hand2 =NULL;8 ^3 B/ W* ~' K" z: ~' x
+ O7 I+ `) j% Y' Z: o
DWORD bytes;! R: R4 C2 K! S; Q( B. K
$ Z. _% [! e+ {+ J% \. E//Logger" j" G9 Z# H' U' L" U
int texarray[1000];
+ t8 m# i% Q6 @/ rint arraycounter;
, } r8 C' q: ?8 l) ~9 } V, lint delarray[500]; : L7 F6 `8 T2 V) m
int dcount; # m4 y2 C! d8 P! a1 {$ q
unsigned int arrc;
) `/ X; O2 K! C* \ ^: `int i=0;
; j8 h" Y* v; o0 o4 C, x
8 L; A" i- J9 G0 w) V: F4 f: x8 q
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );# i7 C, x$ G$ h" `' s. _% L( I6 J1 w
6 D8 E" I# D% r0 d2 f c2 U/ V8 {
8 E6 D* R0 j, gchar *GetDirectoryFile(char *filename)/ K6 g. A$ S2 O9 E2 ^& t" p$ x$ k
{
& A2 a4 e G) e- \static char path[320];: T( N3 o; P% ~- Z! N; R9 |
strcpy(path, dlldir);7 k+ A* {. L# C6 B* D) a4 d( m
strcat(path, filename);6 _4 j' ?1 T4 l& o& L( e5 a+ E/ x
return path;
$ V! G2 P8 x$ y- `( M% d' q}
5 U$ d2 w1 s' i7 J* Q/ W/ z$ {4 B4 W% C3 a/ j4 f; v
void __cdecl add_log (const char *fmt, ...)
* I4 E5 x. y& P: {6 e{! A" M7 g; z3 l7 v3 j
if(ofile != NULL)3 v; {$ H3 y& H6 x8 u
{3 I1 [# N# ]0 U6 ]# w2 G( H
if(!fmt) { return; }
! L7 r! }" |4 s9 {0 ]
0 n5 B% F2 e) b" q" q8 mva_list va_alist;
, D2 v/ s' R& W" L. _char logbuf[256] = {0};/ t% w. y4 j- U8 s7 ]8 i
q6 R9 ?5 q* G6 E! C
va_start (va_alist, fmt);
' H, e$ x% r: r) X9 j_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
}8 D( n3 z) x% `$ U+ `# v1 Tva_end (va_alist);
. X$ W# F1 X' L" T7 k8 i* O2 X
8 J: w5 V* c$ H8 n* ^7 n+ G$ J6 bofile << logbuf << endl;
! P! c6 } H5 k( L4 H7 |7 z% Y}6 r4 g) {7 `+ v% n: a- @7 b1 M
}
f g) W# J* ?2 y! M! Q3 a0 v8 `
+ X0 U, |( e3 K/ oHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)+ E: j% z- d* ~* F
{
( F+ @ o* R! \( _" n- P1 X8 p/ t4 C0 xif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
) ~ i! t0 J. v0 h4 Dreturn E_FAIL;: r: B3 b) N& t g# w4 X1 o; p+ m# {
% i: h) q: @! S/ X) M" q
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
' h6 h s' ` ?. s|(WORD)(((colour32>>20)&0xF)<<8)) b! O9 Z7 r( |# M9 ^
|(WORD)(((colour32>>12)&0xF)<<4)$ O3 |8 r1 ?: ]+ }9 f
|(WORD)(((colour32>>4)&0xF)<<0);! |: }2 R0 k4 }7 f
7 H/ V# p; }8 F) z/ ^D3DLOCKED_RECT d3dlr;
1 Y, Z3 Y2 c7 Y" X(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);& [. _7 c5 J* @( @9 z
WORD *pDst16 = (WORD*)d3dlr.pBits;) r- A/ ]3 W4 j, c: n4 `/ u1 p
. |0 `' @% g, J0 ~& D# h7 `1 z$ x
for(int xy=0; xy < 8*8; xy++)
( l; o( l1 p$ `( v. i* ~. a*pDst16++ = colour16;
. ?3 K* I, W8 e: P. B! h* m
R2 t1 k; d( p: I(*ppD3Dtex)->UnlockRect(0);& ?! v8 T0 f. p/ d/ [ _
C) A* d9 `) _2 K+ b
return S_OK;- x/ @* c! w" g" ^) f
}. x9 x* K% t9 c! g0 f5 `
1 H' r& W: a% g$ N
# R7 M8 m# f- x- B% S: Y* `//=================================EndScene_Start=== ================================================== ============================//
, z6 G( J0 v/ F% I. x4 Wtypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
# ^5 K0 Z6 ~ BoEndScene pEndScene;
5 O! ^) h+ W7 z1 K% r/ L
# }0 X2 j; b& l, N7 ]HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)) P8 l9 Z9 Y" H
{
. c- n( ~- D G8 sif(Color)
( m x. i7 x% U# U( |& l0 l{
' H. {3 \4 k5 h: s o( Q, Y2 RGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));+ _1 C6 D2 Y1 W- b
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
5 F3 i `& _" }# U! E1 j8 l; y, J TGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
, H# q% j' v6 {/ U( G- z1 dGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));: B5 @$ v) {& L1 g" o, T+ p! r
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));6 U6 [# I$ ~8 Z8 Z( A
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
2 c) P% [2 L- G, NGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
" a1 k4 e+ ?: b" m9 P1 i: }Color=false;
h1 ~* C! [3 ]. b1 w! e}
2 l4 x$ Y; K8 ]* D! m4 w0 Q2 K7 L2 Z# D, i
if(xhair)( u, g0 n! P9 R+ P/ m6 B
{" e# a, J3 r4 K6 G# E. T
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};. m; N3 a- U M6 W$ U" P9 `
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};8 Q. _: m; S% X
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);8 _! _) k* o: r' }! U' K: W
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);2 s4 Q9 e& S! f) f
} " {0 {4 r& s" T: I3 N& ?
! v% t Q0 j4 j0 t( u0 @4 G% k
//=============================================UnHoo K_Start=========================================== ========//
! |! Q: `6 ^% h( z- \' V- ~. {& @2 o& t9 |
if((GetAsyncKeyState(VK_F5)&1)) 1 F; j Z* C# C' t
{
3 S7 K1 C: t1 q4 n" gint end =NULL;4 V) B% N( w" D( h# [# Q0 p9 ~
int dip =NULL;
" y; C' ?! R6 \' _' I& p0 {& ~int svp =NULL;
" O- m: N. l) Z: {& ^0 G( [int sss =NULL;
7 ]' i# t6 D4 ]4 ~( \" D
- Q4 p+ m; v9 \+ E! s7 y
/ W4 _1 h8 H. YBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.! K# x+ X! W8 e9 ^& y
hand1 = GetCurrentProcess();
" e( O( R- Y0 c5 h( }# W5 DDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
7 N; j# b0 f& a% y4 ?* Q1 `end = 0x6d9d93a0;
9 I4 D) Z/ r) l( `- z. i- ]dip = 0x6d9d73a0;) }, @. @! V0 a; ]1 V9 h8 {6 k
svp = 0x6d9d5b90;
( e/ v7 U6 ?' L3 ~3 ksss = 0x6d9d6760;
5 e' h0 p, h3 W6 n# l' L% ?# y7 m; {% Z- F' I
WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);1 e/ u, l: f2 H2 R" j
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
8 l7 t$ O6 c+ Z' V( f# I+ Z" EWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);; d9 o# Q6 X; A7 ~
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);. ]% F* p ^' h# O+ r
} - d5 @0 [+ L* R s, z: ]
//=========================================UnHook_En d================================================= ========//
9 m) u% x `' i1 K4 c/ l3 j0 R l$ w5 h; h/ Y8 ^- V) |6 k
if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
* w% ~/ e' a% q+ d/ K+ Nif((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} ( [; ?5 y5 Y9 n5 Y3 w* M
2 |' v# g9 `5 b' e: z; v6 y
return pEndScene(pDevice); z B" y! ]1 X9 Y. _
}
* P4 h+ R X* d- m1 U//====================================EndScene_End== ================================================== ========================//
3 Q3 O7 u# c' y
2 w* d' P7 k1 I( @6 c9 q+ C7 Y$ L' g! y" }! {/ B5 e
* B2 P- ]) e; [
8 ~ l4 _$ G6 o+ a& p
//=================================Dip_Start======== ================================================== ==================================//
2 F0 @) b# d. u% z4 n& X3 Etypedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
. a% W% Y7 B6 A. boDrawIndexedPrimitive pDrawIndexedPrimitive;( `! g# ]2 M6 W- u+ q) m. D* W
# S, O/ w( w! q
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)8 U" n& j# X1 c& i# w, t
{
2 q+ I2 I9 j6 A4 \
# r6 f; q7 s) H+ L a: u$ F- y" c
4 k W" v! X. E, v4 l4 H' R) p! m2 j1 z. R% L
: s3 B! z9 Z7 M; T* A9 Oif(WallHack)
) y8 M3 n1 ]* q2 R S* R{& t; k1 D$ _* V v t" Z' x5 ]4 [
texnum = (nNumVertices*100000)+nPrimitiveCount; 9 J9 ?. @1 \$ ^( z; R- ~
if(m_Stride==40 && , ~' I! H ~) ]4 k" }6 r6 g
! W3 [; T4 U& d- o2 z(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||& S7 E- \0 @7 F" ?: V9 l0 ]0 M) x, F
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
& o5 |1 H! U! `/ @+ L4 C(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||0 V1 f2 l S" x3 ]; K" s
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||) ?# V# R" c4 e! L
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||% a- z% l* Y, p+ a
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| ) s+ `1 M7 D; Y O1 D
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 9 v# L! w7 O) X8 g' F
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
6 K$ K L- B4 [7 }4 Z(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| ]3 \0 k+ X: Q) }; p2 {) f! `
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| : y: X9 o: N% ~" I/ G
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&4 `4 r1 V. v% o) U# x# d. m" Q& l/ V
* j: C; e6 ^# D" G6 G# [. K) ^' u+ q+ Q7 e
! f, l5 S6 d& B: y5 W! d! f* |7 S/ \(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
$ R' }1 |7 ^$ Y% q0 }# t) P(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
2 b+ K4 P7 M6 s# J(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand 0 E5 {$ b4 Z# C
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm 6 U+ d' B; B# a8 m
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
% K. Q: }# x/ \8 [! I//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
- W1 g0 C0 v8 @+ I9 C(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
. x) ^% B$ w2 }% [; ]* X# ?(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
5 |6 M6 g+ ]& H9 J( v( P8 a(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
) E+ t# _6 g) ?! W# ?+ B- {! @$ g
/ x: i2 T% l" j& V0 W2 I{
; E2 A! e* H; W, m4 \0 lpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);0 w7 F: _/ W: w7 ^9 J% C9 w- o
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);3 G9 j" ~- a% a& w
pDevice->SetTexture(0,Orange);9 J: v/ w# j+ C8 l G2 W
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );0 y# m% `' y, e) v7 t: L s
) x" f& o, y. PpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
2 z6 A. \, Q, j7 Q/ m% T7 N( @& Y0 g% K/ Y' F( _
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );6 c- {5 g& E% k1 ?" Z" b, R7 T
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);3 T0 y; d+ J8 k( v( w
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);; m" y5 C0 @! k1 D1 @
pDevice->SetTexture(0,Pink);
; `( G4 o6 U- c* F+ b3 m} + x @( x1 g! A* }2 Q) m
: ]+ C X7 r a
if(m_Stride==40 && texnum== 21300174) # D, _3 N- [, l3 r6 H; n* y5 G
{, X6 m( v( ]* T5 A; J
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
8 m ^ |( V; k' SpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER); i) @) o! [8 B
pDevice->SetTexture(0,Green);//GreenNade
/ Z* D- r1 o3 u! J* \pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);6 \( S' t) ^6 `- I
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);' | }) e, \& i$ m) U
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
7 @' p' C& Y; W) vpDevice->SetTexture(0,Purple);
9 F1 s3 ~/ `, I: ~+ n} - t+ Q9 Y, D( Q, G6 v) @
0 c8 C9 `, ]" t3 u# \; {+ V5 x- J! R
# s2 c; b) `3 U4 bif(nNumVertices == 158 && nPrimitiveCount == 131): g# o6 C6 F% A
{
5 V1 u, z( h q% g6 wpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
: a# \3 M7 I( DpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);; X; ?- n l0 C3 z- S
pDevice->SetTexture(0,Red);//GreenNade
5 k: T' Q. d* y) `5 a5 h H' K- @pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
' f, i8 ]- |9 M8 d6 }pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);/ v' }% [/ p' _2 |, f2 F2 e
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
% o, g4 c! b6 V9 L0 z- I0 c- s* apDevice->SetTexture(0,Yellow);
7 x/ s. [; J) ^8 {6 [" v9 W2 [}* p: n) [5 ~) ]6 `8 K
6 H3 C: Q5 T0 g# O
if (nNumVertices == 171 && nPrimitiveCount == 143)
; P7 P5 g3 s; P% ?; j7 d, \{+ x- J" A/ m( |/ m6 a
! k9 H) H% Z% Y. ^pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);4 }' l1 w0 `) {
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
% M, \# K2 A4 }" npDevice->SetTexture(0,Red);//GreenNade
3 c" C5 @/ d& N! k& l1 v& }$ s6 BpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 R, H8 Q( d. e' \4 }
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);8 b- e( L- C& k( S, i
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);% ]/ D) `! Q8 N' q8 w
pDevice->SetTexture(0,Yellow);
. h4 d3 J* x. x1 n8 X! R}0 a4 D3 u0 O: ]$ n/ S# Z2 O
! B2 e. S2 \6 H! p1 {6 L$ x2 M% x5 @
" s. u* [ O4 l
if(m_Stride==40 &&//face,mask etc...
: m' g6 I) v2 Y: g(texnum==36700612) ||
4 c% f. _: W I9 J+ j% R(texnum==9600172 ) ||0 g4 h v' W0 Q8 h6 v$ n4 d9 m8 y0 t# b
(texnum==14200236) ||* j' I. N" d1 q9 D3 N
(texnum==37800552) ||+ Y: r9 H6 e% ^/ F% J
(texnum==28100486) ||: d1 |) n# ?4 q' J4 P3 E* }& F
(texnum==35500568) ||1 e$ p) H9 `. c$ r) K' S
(texnum==2200024 ) ||- _2 ~; {6 p/ N6 q; i1 }
(texnum==16200243) ||1 [, A; t6 I8 p9 ~& M
(texnum==31900466) ||
1 N+ Y4 D- c+ g4 e, ](texnum==19300342) ||+ X. C$ A0 ]9 w, Q
(texnum==36200604) ||
F' w* x' c2 E9 d/ }(texnum==21300290) ||. l( [" Q4 q0 I/ |) P% g, i+ E Z
(texnum==35700558) ||
" Q6 q- d. Y) w+ j3 P( \(texnum==22100396) ||
2 C- J5 w: r e! u* @7 ]. e(texnum==36100604) ||) m8 B7 T. y. e) o" B8 Y
(texnum==27100464) ||( Q R+ Z% d+ p: R
(texnum==11400180) ||2 c' G7 P" ?0 ^/ X! I z; P
(texnum==34900580) ||
& {# t2 s! n" U8 j$ D7 a, U) M(texnum==13200212) ||& @+ x/ F9 b7 q9 H
(texnum==34700538) ||& A& Y) I, s' O3 M
(texnum==19500352)&&4 X$ E! F5 B* @& v
(nNumVertices == 448 && nPrimitiveCount == 776))
- ^! F, Q$ y/ G# w- M0 d# b& Z; X' `% L8 H
{4 \* I; a$ e6 u) n
pDevice->SetTexture(0,Blue);, ?: p6 n2 ?3 i* r8 L3 J
}0 [6 A) M q7 Q
7 P! }7 F1 V6 X6 ?* [6 c) B
' \; W) o3 _ @+ I3 b( Y* ~' q, x{
- o# H$ a: j% a9 c; l. c+ a& gpDevice->SetRenderState(D3DRS_FOGENABLE,false);2 j( E/ S& }8 @# t; ]( s5 s
}
; w& _- O& c+ k* A* g' ^& Q' v% l6 m* j+ e' Z# _" J% B
/*Logger
7 H( l m5 N* Qif(m_Stride==40){
6 `. N9 B+ i: M A: n, `$ `, h
; F5 s2 l5 R( H* ~$ ?' N& r4 Y
& F1 h) \8 z+ A" ewhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
. y& L6 P# d5 L+ Hwhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
5 c) R9 g" |0 Kbool alrdy=false;
% C G0 a8 ~9 l }1 f" e* c9 Tbool inarr=false;: l' b( T- L% x, {2 y( k
5 Y" J6 v" d" W2 fif(texarray[arrc]==texnum). [* [* D6 _; I
if(delarray==texarray[arrc])
5 _& `/ P) y1 `2 b$ falrdy=true;) b% P1 K. e* \: D. Y5 z( a# V
for(int i=0;i<dcount;i++) //sees if said texture is in delarray9 y- b' [" W% e
if(delarray==texnum); B! C* S: `" |
inarr=true;( D7 p6 z8 i' U- j) m; {
if(texarray[arrc]==texnum || inarr){ //If true, color model differently5 v0 R1 Z6 W3 p) Y0 k
LPDIRECT3DTEXTURE8 texCol;- a" e! |: t5 P5 b
DWORD dwOldZEnable = D3DZB_TRUE;
0 X. E' T0 E! t0 U. [$ S1 x- TpDevice->SetTexture(0, NULL);0 s, ~7 e- A9 w- H7 @2 v% _
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
! Y4 x* ~, `- L/ tpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);1 a2 G/ A- z3 a+ L2 j- }4 Y
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
( j/ ~) G; @) BtexCol=Blue;) x5 O. }9 z- T
else4 {" M. j4 K& \
texCol=Red;
9 H8 ^" |. C0 I# upDevice->SetTexture(0, texCol);
" a2 i6 y' O$ {' \pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
2 w, M. ?% v3 fpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
; i8 j9 ~$ m5 ^; O9 Z A1 x
# ]8 Z) W- d$ i}
; k2 W t, m. N2 z* I}4 r7 @! l3 S" k3 l* t p
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile, N0 s/ n8 h; g0 _( g5 R6 |
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
& }5 Y4 K4 O. J. ]bool inarr=true;
1 ?" h% c% Z3 o$ sfor(int k=0;k<dcount;k++){
/ g& V# \( @! F& B9 t8 ]1 I! Qif(delarray[k]==texarray[arrc])9 H) @. u- e. `9 j, H3 ?
{$ F. ~1 ~, E: D8 @$ b$ V7 s. Y
inarr=false;//Found selected texture to already exist/ Z4 C6 b& J6 w- H9 `
delarray[k]=0;//Delete texture. N& i% Y, g6 H3 ^% e2 e' }$ K" ]
break;//Cancel loop
. _" U& k; m# ]( V/ M$ m5 J I}
; T$ w' L+ G) b) |; _) l/ q}
" Y- T* j# w9 q8 L+ }if(inarr==true)
4 M0 t. N. n' }) c7 N{" X. z) Z9 [; ?0 K/ G7 T' j
delarray[dcount]=texarray[arrc];//Add texture4 i. Z$ A/ `7 c1 Q; I: X
dcount++;
j& G3 [% H5 q}
0 ^1 D6 n, m' X3 Y+ r}
1 l" U4 L8 |) P) k$ wif(GetAsyncKeyState(VK_F7)&1){
: N9 F$ f; q$ cint total=1;
* b& e$ r, I" B. L0 H2 \add_log("omfg values?!? {");+ q! d" ]9 K! T: K& \ x; g
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
4 @" e, A3 N4 J1 Z& aif(delarray[x]){, I# D! O# D6 X8 ~' c3 r5 F) M
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
' k) x" q- z5 ]7 t0 q3 I, ztotal++;
, U5 ]+ j2 V* W4 N/ H}
0 j. _( k8 v0 L- _) ]) Q. @add_log("}; %i variables in array",total);
. J1 L# P9 h6 f: B9 O}& G8 H+ ?( f8 A1 a
bool found = false; //THIS PART CREDITS TO KRYPTEC
5 l1 \- @+ k6 c) x- Ufor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION1 r7 ^0 J8 q" X) S3 S" @# r
{
+ o; x, C5 ~& B$ D: u2 B1 H& k7 sif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
# @5 u- U6 b6 [; [ Z+ W}
1 y0 u& C2 k8 aif(!found && arraycounter < 1000)
) ~8 c& H3 _8 B' n{
+ m. k F! Q1 W1 G' k1 c1 h; U2 N. Rtexarray[arraycounter]=texnum;
9 e8 E5 P, H+ d+ o2 J8 `8 x7 Zarraycounter++;
7 R/ `9 m# J! D# w6 |}*/. B* l9 d9 c7 [4 |+ p9 D
! N, X" m& ~/ h- _2 G/ I$ O* ~
9 V% @$ H6 H0 D) o; W$ f5 a8 n}. Z& ]: u" b8 m+ h. e+ \
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);. v G9 C1 l3 E! p2 m; R+ w
}2 e( M- I8 i- i" S! x+ x
//=====================================Dip_End====== ================================================== ===================//
/ S I+ V, \. E8 P) \# W. _6 G( {7 Z
3 k$ x, B- i7 F( C+ U+ \3 }
//=====================================Sss_Start==== ================================================== ====================//
* D2 d7 n" V% r8 S6 s" b* wtypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );) j2 \& J r8 ^
oSetStreamSource pSetStreamSource;
1 `4 I, D: p! }; t4 V6 r
7 Q" y% K2 m3 [" X, f2 `0 I6 m* @HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
4 B R4 |9 j, D5 P{
9 e8 y/ R9 S: wif(nStreamNumber==0)
& o* z; R3 Z- X0 Q0 \2 C' jm_Stride = nStride;2 L9 @ O' ]; d. [" _! ~
7 J* B2 Z; k, A
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
1 \' C R, m; m0 _/ {7 @}
- x& p$ U. P& H& i- L//====================================Sss_End======= ================================================== ===================//0 i7 ?, w" R+ i* N
7 E2 i4 e/ v* \$ }" G/ X( H
//====================================Svp_Start===== ================================================== ===================//
7 \3 C" Z+ ?2 }) `6 qtypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
' v3 F* ^8 y- m/ MoSetViewport pSetViewport;% T/ P- a) Z" ~- i! @; t
% ^ b7 j/ }# t: W2 M& N1 {" OHRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)* _' n4 }/ Y3 u; J8 ~
{$ Z( \1 o8 M+ z3 s8 ~
ScreenCenterX = ( float )pViewport->Width / 2;1 n- v* H5 w0 @- R
ScreenCenterY = ( float )pViewport->Height / 2; : L0 i# ]+ L8 R" ]6 v4 L
3 O) q% `2 g* L5 q: Jreturn pSetViewport(pDevice,pViewport);3 T. N. a4 _2 r
}
0 h8 Z4 T {7 [ U w& g//===================================Svp_End======== ================================================== ===================// p# l$ V& O: Y; w2 O2 s
: f: Z5 r- v1 h! ^2 ctypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );, H" U4 M) ]: f
oBeginScene pBeginScene;: t# i& V. x# H( B" H+ x1 y
. H- W5 N" [* t/ i. f1 z1 t
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
3 ]8 d+ Y* X/ x: _1 @{
4 N2 @) e- J0 V& [% H! Q0 pif((GetAsyncKeyState(VK_F6)&1)) , z6 u( K2 P c1 C% o, `
{- O/ g$ P5 Z* G$ x k8 j
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
|3 ~; T# W- B9 N* @! a- FpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
. l- t% K; s3 d" N- N7 ^- m, TpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);; H4 N! [4 a0 o
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
7 O3 ~8 H" N2 g" J}
+ u! \& f: Y, V. p3 H7 ]6 B0 {- o/ |; P- [
return pBeginScene(pDevice);8 ]! a0 B4 _& o( j S
}
9 l" |0 y1 @0 ~( E5 J
) A( \2 m' y9 i4 y" `
: S I/ E! i1 E- |; W Z# cBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )! K* D% Y: V2 b
{
& D- S) l' z8 Y9 }DisableThreadLibraryCalls(hModule);9 r2 C2 Z$ b1 V1 f( ^0 D
: L% E) o) U$ R! ]8 ?( ?6 m# pif ( dwReason == DLL_PROCESS_ATTACH )6 E4 f0 |7 T; J$ W8 H0 G4 x
{
9 {# T9 b! f( L9 O- E) V
, g9 t+ \' m. e+ J1 W//=========Log==========================//0 v; S K" A5 p9 w9 @$ G# N% Q O' T
GetModuleFileName(hModule, dlldir, 512);1 Y% b( W; `. a u4 W( L
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
% F+ T' s4 [8 o! X6 X3 @' [ofile.open(GetDirectoryFile("log.txt"), ios::app); & {0 [" v' L8 ]: t0 S' r- `, [
//=========Log=========================//8 s$ s) X! a8 h' w- z: k
( q7 {7 I% j8 t- e4 A( s
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);4 y/ r7 E2 |- ?2 ^/ h
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
4 N2 O, ?* ~4 a. l# E# c# epDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);4 i& q5 ^% d& O& V5 V4 Z4 O. _" C
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);# ~9 d: M, m- N7 W0 H
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);+ Z& T: T2 v* V& ~1 O1 f* Y
7 n8 v+ A+ Z2 T# m, A( v2 f* S% p
}
% ~. g2 g, Y$ I8 w8 e" s* }* j Oreturn TRUE;
1 W& _3 R/ B& F! F- C}
k3 p6 u L5 T' `/ |
$ m# m4 b; t: W7 R" | m/ s0 ~' `, U( A9 P$ {1 W- A' o' z1 T
Log.h (The header File):
" q# C5 u( _# ^ q4 V1 {3 T' B: q( `, ]
#define WIN32_LEAN_AND_MEAN
, z: i. J1 D& g9 D/ o% S
5 x( O( k( s8 B; u9 v* v2 }#ifndef _MAIN_H1 q6 p% g" j5 I; o1 ?8 R
#define _MAIN_H
3 a. _+ u6 Q) y, [1 ^2 ]5 s3 Z9 }
; Z9 P% }) ?, Cchar *GetDirectoryFile(char *filename);
a; m- t+ d! Cvoid __cdecl add_log (const char * fmt, ...);
- g: d3 Y7 f4 s; U#endif
& }3 v, l) G+ T0 W- s7 g; P
$ ~: o# |5 w9 i6 Z5 [ u5 ]- aNow after you have built your wallhack you will be able 2 find it in : [2 z( ]+ p+ k/ z( M
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)) b9 @0 T% z/ `
6 [ g4 L$ g. s) t$ t7 R" v' `
Now I will show you how to make your wallhack undetected:" v* u6 t! o& @3 e! N
1. Download D3d hooks
w7 {6 n5 L. D$ ~0 p8 W! e' N4 e2. Open the file that says "create device code made by me.h"
: I* x* J$ n( ~: B# z3. You will need to make another header file in your project and then put name it create device and paste that code it.
# b: V, M# I+ r* z- D' D4. Your wallhack is now undetected.
5 F$ L( M( O7 N" i+ D5 E5 ]$ ~6 G2 w$ [7 }
Credits:9 l, z- w2 } e+ v+ l2 H8 A& T
1. ME FOR THE TUTURIAL0 _& |" O( L2 F. h
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE: o: P. n9 F: h
3. FATBOY88 FOR THE SOURCE CODE
# L4 X; M: N5 r, G: i4. THE INDIRECTX I JUST FOUND :P
! J4 E3 e$ g W$ f- i6 m4 D1 K" a# O$ ]# {" o4 T" T. N
Attachments:
8 v6 `: b2 O& }. u6 s, gD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
* G" Y2 ?" {* o/ B HIndirectX: http://www.mediafire.com/?gimzgmeny11* W3 l6 w1 D5 p9 e6 c
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj55 s! {- Q: w% n. R: s+ b
SEARCH THE LAST ONE UP
( ]) h6 F) M% N4 K0 d. J__________________
3 t5 p" U; p, Q
2 D/ V1 o0 t) z, Z7 B, ?1 g% u <---------- WALLHACKED |