原文
8 X5 p1 W+ ] Z4 fhttp://www.descipe.net/forum/sol ... -your-wallhack.html% c* ~6 Z7 h l& d9 g" ~
" E$ Z9 l9 c; P* r* q; W3 n
视频教学- f6 X& B, o7 l% Y0 h0 k
http://www.youtube.com/watch?v=6b5XMzT-b_U ! O+ t7 _& h) K5 L2 M
. d1 U/ w5 \9 k2 u5 d
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch " R6 `2 c w3 ]: X
1 O8 _# v1 N% _! Z' P D+ V( E Hello shane007,/ U# B9 C. V0 A
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 e$ c+ F2 j2 r6 g' a1 ^6 l8 [
! S' [( U2 ^# p& s, u7 ZWhy not start with your first post today and become an active part of DEScipe.net now!
- i. L* ]7 g2 i8 B( X : G! ~+ f6 \ k) @
, d/ g# o+ c/ E5 V
# J1 L+ @7 H; R9 q: p# K DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats / s& X8 \& [* R [# k
How to make a wallhack and how to hook your wallhack!
/ v/ z% l& w/ O6 a Welcome, shane007.' p/ ~+ }! O6 Y9 B0 s
You last visited: Today at 03:55
0 \7 b ]7 s0 ]4 M1 n" {: _Private Messages: Unread 0, Total 0. - |) h$ V/ A: I$ f6 K5 R0 s9 t
Credits: 200 [Check] 6 F- W2 T" u" N, y$ J6 g2 m
9 e( P+ s; r9 T/ I% BHome User CP FAQ Members List Calendar New Posts Search Quick Links Log Out 2 k& a \1 v6 _5 H: b7 g' c6 v5 @
* @" F9 p5 `# @7 I4 P9 P9 p
8 w& m# s) O/ D3 k! z1 q
' c$ P6 j' z/ QSearch Forums
3 t3 {2 u3 V& v% C
$ p3 S# f- ^2 `: ~% p0 ^; Q8 f$ s5 x5 G3 C9 n
Show Threads Show Posts
% O5 Q" U- R4 V, iAdvanced Search * H# ]1 J, ~3 l8 V: _8 o7 h
Find All Thanked Posts ' y" p% ^: }$ p
7 z+ [# L! a U! H$ ^ C: P5 ^ a, zQuick Links $ `3 W4 O- T4 E+ @" J
Today's Posts 5 k* C, g: ^- I" m; q& d* t2 w
Mark Forums Read * w( K5 U' G# u4 U: s5 D
( Y/ X0 x3 I* k7 e7 q
User Control Panel
& I% w) e- T, gEdit Signature
, h+ z: f0 K/ h4 k4 }. G k9 g c9 {
& u' ]2 f* d* l; vEdit Options
( ^5 V% K2 E3 O8 |Miscellaneous
, t7 U2 B! D! f$ k( pPrivate Messages # A) T# K* a) i% Z( l5 g
Subscribed Threads
3 F) u) Q, }! |/ O+ V 2 {. v& y' I. |8 @7 n0 O9 K5 k
Who's Online 5 F9 o# _1 j7 |5 _. y) s
7 V' w3 E& }6 S8 YGo to Page... & n/ s9 \$ M. X p1 o X( ]
! |$ \2 ]5 ~, vHow to make a wallhack and how to hook your wallhack!, w( v5 k+ Q% w+ R2 ~+ T! k7 g3 M% d
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. ... / \9 J' _1 M) E' w; o3 z
$ F9 P1 @0 E. g Poll: Was this helpful?
- b+ o3 C$ R" d3 cPoll Options
6 w6 w: \6 N% T2 B1 X* NWas this helpful?) Y9 ?. @! W V& A. G1 F C p
Yes, I WILL press the thanks button# ?0 J7 r( x5 n/ d- S; c+ h' C
No, I am a failure
~7 l9 A, w) v% b' N h; `View Poll Results 4 A+ s' E' C' O7 _) K0 ^& N
W0 X! _; {- a( Y! P$ x Page 1 of 3 1 2 3 >
8 @) K. l! O" a( _5 o1 C
0 J0 s: t: g' k) J0 U View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
) }+ s- g- m( z1 [9 T2 y, n
, D& v: j0 m& K9 x A
: w4 W6 `0 R [ E4 w2 G 9 E4 H9 f% d& r9 @ G# b7 R! n
05-02-2009, 20:49 #1
6 B2 h+ E: T6 b5 }! W3 okillax9
+ ?+ N% |7 w! K) i0 B1 QPunk. q2 ]; w3 f+ Y2 u2 U/ v
* T/ q( w4 h7 y! }
& Z# k' M" b) d, V+ j* i
2 h! }( v3 `* p% ?0 a, S
4 f b5 L; Y4 \6 `Join Date: Jan 2008
" F( g& z K8 }$ t, ACredits: 2,701 [Donate] & U- E; p" N- a. \. p. O
Posts: 103
B$ @5 A' j. {& z6 P" K0 H+ z; vThanks: 102 z, ^% r' E, D4 N
Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack!
5 @* |7 F: ]' |, L0 G" H7 h
' {- w% D1 N# ?--------------------------------------------------------------------------------& d2 \+ P. i& ~& O
) ^# ^8 A7 c P: s1 J1 x3 J
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
# q9 \/ Z2 Y. Y5 {2 j) \Possible Undetected Methods:
& ^$ ?, A6 [+ a7 W, F1)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.
- o. v& w+ _9 d- R. x8 x2)another way **** it hack GG.' u, ~' i% z+ n( I
3)breakpoint hooking;doesnt change memory... well changes debug registers.1 R9 C0 b; w6 G% K6 v: |
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
! ^/ J7 P8 ] t: G
) Z- U m3 S1 r6 w& WVtable:* u) d6 b$ b& D: [" O6 M
it wont work for vista its not a vtable hook =)2 U8 ]1 j2 f% A9 b
3 a9 F- |( V3 a0 w! }% ethe reason why my older version worked was cuz it hooked $ _3 m% U) O& c. u3 L
Createdevice->pointers to the functions
$ S6 K7 G9 n! B2 u3 r' }1 C. Y& ~5 O" w# b6 x
kinda like a class or a struct.$ @2 f/ M: Y4 [$ z" T' q" w
$ ]) |) I' ?6 `9 i) i
& U. \7 v" y8 G# Q: tand 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.
" w& y M0 _% @7 i' g" G; K
& q k$ N2 D% Y5 B* u+ N8 G3rd maybe- some games recreate the device when a map loads...like BF1942.
! @& _1 q$ h3 j5 R8 d3 H- u$ d
( L8 z i+ I1 s) |* b! q4 tThings needed to do this:) B' o: G, q4 p# g
1. Microsoft Visual C++ 2008 b9 ~0 k5 c2 u( c, _
2. DirectX_SDK_(Summer 2004)
9 N+ N2 @/ Q0 T @7 l) \5 S3. D3d_hooks) f; ?. b0 l0 p; f0 N
4. IndirectX
" a# S& j0 d" L- v- U! MI HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
$ R4 j4 \5 ?) b+ c
& b" N6 i) g- qNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:8 e2 v, ]9 \: j: m$ C/ H
6 |# r5 L/ `% ~, o( q- F+ @
YouTube - How to Compile WallHack [Tutorial]
& f4 R" F( V9 p6 Q e
8 e# n! ~ Q$ V& L; X5 M+ Y; {) w Y0 v$ }/ W- r: @1 z
0 d3 G, Q( k6 v# {7 Q) n% cDetected Source Code:
, t- @4 K' X. L3 F( n6 o
& I$ [8 i# Y3 t: y/ F* K. T+ @9 H#include <windows.h># T0 X7 K% j' F& s- |
#include <detours.h>- _5 a* }7 N& v
#include <d3d8.h>
3 p M- ^% E; ? N* m3 _#include <d3dx8.h>
: `8 h. Y9 f1 z( o6 Y#include "log.h") Z5 a3 N e4 N! T5 Z( d' r" X D
#include <fstream>2 x2 S" i$ N7 L0 @0 j$ Z' U. t: T& J
#include <iostream>
4 m9 g& {0 M. e( Q#pragma comment(lib, "d3dx8.lib")
# q) K- N, n, ]% S1 M3 ?8 J#pragma comment(lib, "d3d8.lib")/ I8 {4 U0 `5 n# o
using namespace std; `+ _- s# {1 N3 m0 n. x" }5 X0 l
static DWORD dwBeginScene = 0x6D9D9250;
( Y/ d$ o% H* y6 p& |3 {& Vstatic DWORD dwEndScene = 0x6d9d93a0;. e+ {9 L$ L1 _; w
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
/ f/ I. N3 d" \: mstatic DWORD dwSetStreamSource = 0x6d9d6760;
& l7 q! d& i8 L0 d$ h/ Kstatic DWORD dwSetViewport = 0x6d9d5b90 ;
1 d y/ l; l& m5 i. p
6 K5 M# }' c7 q. J" u% p
+ L: }6 L1 p. Z+ H qint m_Stride;
$ H! ~5 n1 ^% bint texnum;* V) U0 I9 U5 [& E: }0 C* S
int nNumVertices;" D8 _+ v# {2 ]+ p
int nPrimitiveCount;8 m' N4 v" I$ W) u$ I1 `+ H
8 Y( i3 q1 g; H* BLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;- d/ X. y+ W* N8 f
bool Color = true;
6 m- `9 ]9 `& A* a7 `bool Logger = false;" h& C, ^% T( C" Q: Z
ofstream ofile;
9 i+ R3 a2 A$ t: a# I& @7 B. S) n/ fchar dlldir[320];
2 Y0 w' y& w* L. l% m# ~- }" _float ScreenCenterX = 0.0f;; }; z6 G5 A+ j C% G4 A
float ScreenCenterY = 0.0f;" [( w7 K. p8 |2 v) m( Z
bool xhair = false;
( i; H8 l7 E& i! K+ ]1 Mbool WallHack = false; 3 c& B9 n$ p0 N5 Z2 F- X4 g0 l& H
bool WallHack2 = false;
4 B+ x/ `* G" Y( O4 Z) [0 |HANDLE hand1 =NULL;
/ n+ {. z7 h! `8 _HANDLE hand2 =NULL; v/ z7 O6 G7 m5 j8 u' \- \
" D" j1 i [7 L6 f' E- @5 }. fDWORD bytes;* ?4 J8 V0 Q: r. E
. \! c4 j) i9 @- s" F
//Logger
5 X# D7 \8 s: R F# xint texarray[1000]; + ^9 O/ V" I8 B; L# u
int arraycounter; 9 E( G' T! E* f
int delarray[500]; ) w6 x. m% R3 c/ E) q, ]& l+ t
int dcount;
! V- F# p0 Y" }7 Uunsigned int arrc;
& _6 o4 b9 E S* dint i=0;2 i' c0 T$ K. e2 R( m
% X; r; _5 v% w% T7 e$ B
; j ]2 D, x8 w" O! R/ a! L6 P6 L
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
0 A) W5 a2 w- ^: q0 w8 K- H( ?: b5 c2 ?& M1 X
/ R6 S2 z0 r& rchar *GetDirectoryFile(char *filename)' m) F, v% X9 l( L5 S5 K( L. P
{
4 b+ h2 h$ R* z0 rstatic char path[320];+ |% Z4 N! y% s2 B r* ^+ P
strcpy(path, dlldir);# H, ^4 d! [' i
strcat(path, filename);
+ S b. y$ N& T+ K& t" ]- Qreturn path;
% s: e* V) g/ h4 h$ t9 n}5 @0 U# s" O1 u1 S; ~: P3 f* H
+ q' A$ z! L/ _: c6 Y: b* x
void __cdecl add_log (const char *fmt, ...)
, O' V- I6 d7 F8 b: ^3 g{
6 I) w) M* h! |0 w0 p0 |if(ofile != NULL)3 v" @$ B2 m% e/ x6 ^& F# T
{3 `8 i0 w0 p! J" s5 ]/ J
if(!fmt) { return; }" f4 b b( i' c6 Y# ]- n0 X
8 W2 J7 P0 q6 Fva_list va_alist;
3 f6 `. s6 X9 _char logbuf[256] = {0};
' {1 R2 d, V( T, B* _
: C/ u# ?. X2 }& G( H9 Nva_start (va_alist, fmt);" u0 Y1 _0 K7 C* x* I* @3 P( g
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
0 C+ S: q1 c7 ~& ?4 Yva_end (va_alist);
+ c: ~- f- t5 |, L) c
]" P9 O4 p8 Y4 Mofile << logbuf << endl;6 g! ~2 D+ J. J' m$ X* c6 b
}' s0 @+ {- h% t0 V: w7 ?
}
/ B% f' ], Y3 F) |" g0 w& }1 H# `
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
( }5 h+ g7 G) |& L{
) ~2 b5 X- `# Xif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )( ~6 q' w" }; O
return E_FAIL;
I. J; _9 {2 d7 g8 {5 F0 W' m7 d. G" y
6 b# F4 o9 A% u+ o' eWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)9 Q3 q) q9 \& N' Z: o
|(WORD)(((colour32>>20)&0xF)<<8)2 Z- W( w v9 I4 b5 l
|(WORD)(((colour32>>12)&0xF)<<4)
9 W" u9 g+ C# @ l|(WORD)(((colour32>>4)&0xF)<<0);- y6 L2 y( q) s2 t# y
3 ^3 a% K! i mD3DLOCKED_RECT d3dlr; % j% S# J: d4 y
(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
% |) F" \) I W0 l7 C4 V/ K3 }: \WORD *pDst16 = (WORD*)d3dlr.pBits;3 Z! N: [- a) i9 N- b
) m5 A6 s% I- h/ `
for(int xy=0; xy < 8*8; xy++)
7 b, K( `3 {& ]7 l) b*pDst16++ = colour16;! Q) K2 C9 E# t5 w3 b
9 c- S- K9 A" {+ I' A(*ppD3Dtex)->UnlockRect(0);
, C: P" m) c2 o0 p" h( ]; |8 f7 `( r+ N2 J$ M' U1 @
return S_OK;9 ?$ c9 | q2 w. L; \+ d
}
' T- m# @9 W" X k1 a+ w0 n- ~3 ^; \1 r: }; _, t& T
2 r% D1 W: N# Z* p& ~' Q//=================================EndScene_Start=== ================================================== ============================//4 O- J o/ o! o2 J0 K7 K
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );2 O% g5 S. v b0 y$ f* @1 @2 ^- k
oEndScene pEndScene;
5 J, T) a' w" a6 ^. H/ D, O) d+ S( W5 W. _6 Y
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
( A/ _, e* r' G, Z: u{
( m8 m' E' v9 G+ cif(Color)/ z, p, x9 e4 }9 J8 T
{ ) i2 ]6 S$ m2 D3 A9 q. g: |
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));" ?$ Z* G; k# h6 X$ \+ p" N
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));, ]4 q4 ?/ W! H/ s
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));7 N9 a0 |: R0 F- D, k$ F# z
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));5 H8 S# K1 [3 L H# T
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
! g$ K" h; f% p* N5 j6 [GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));' { W; Z; C5 m2 a: T4 ?, [
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));7 [1 M2 }1 V) X3 X! V# q( o1 x
Color=false; . g/ w& F% |2 Q- w9 P) p; M
}/ e! D* Z& m; v6 z7 ]: m% D+ F
+ h6 c* p" O0 {- }) g' H7 @. Rif(xhair)
% u7 k9 s; U9 e2 a) {) m{ E- x5 f$ Q- C8 j6 v
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};* k* {" r5 Q1 ~" `5 l3 O/ X
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};6 ~$ c; o& V6 m
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);4 Z; ~" W5 O' G. ]' W h
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
& @# K( @6 t" ^4 s} , q/ Z7 K! s$ q$ w+ p7 s
( B4 b1 I- P6 r$ |- G//=============================================UnHoo K_Start=========================================== ========//; n3 U! v) G V5 Y5 d" P
9 I. v. s7 u# f" j% ]$ f
if((GetAsyncKeyState(VK_F5)&1)) $ j4 o5 N5 J: R: V0 J0 x
{ # G/ b1 ?" W. {% P8 ]1 m4 M
int end =NULL;
5 D, ]) U! ^7 E) Dint dip =NULL;& A) P8 y' O4 W% f9 g4 f y
int svp =NULL;
6 m# s* m, _9 H, ?! @* \* o& Gint sss =NULL;9 _) i" `, B _7 d4 P ^
. d5 P1 c* S5 a) [' A2 F: w Z! q6 `' A# z
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
" ?7 x3 E: M+ L) } Ihand1 = GetCurrentProcess();
2 ?# B( }# y, z5 {% T& j6 Z) `! wDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
/ r. \, D% M/ M7 c1 _/ X9 Aend = 0x6d9d93a0;, v3 l' R, j- N+ |: ] L
dip = 0x6d9d73a0;' W$ s" s( }1 _/ z2 _
svp = 0x6d9d5b90;( Z* a: l. f& ?$ n' O4 M
sss = 0x6d9d6760;, A1 j3 B5 H _
& _2 _9 I+ `2 }) K" u3 r2 r) ~0 b# l* J
WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
: X$ q2 ]8 g0 N( ?! X; VWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);) J3 S( P0 V. ~2 P6 N; l1 A1 ]
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);" @* N ]# Y- D$ D, ?! A4 |
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
4 q& t9 W5 ?# F" A+ E} , F& c- U. x& u2 r3 W! Y+ J1 I' ~
//=========================================UnHook_En d================================================= ========//+ l* U9 k) s( c7 a
! u+ W4 Q$ o, p2 X* T) eif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
- { t$ n8 T" X7 C4 Rif((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 1 d ~/ z8 P/ |. y
+ {* Y; ~9 h5 A$ M1 O$ Breturn pEndScene(pDevice);
& P) ?9 s, x& l+ o! x}
& F' Y3 F' |4 b- w# p" ?//====================================EndScene_End== ================================================== ========================//
- \8 z* M* Y9 [$ A: W
4 p K# d4 j6 |% ^0 X
# P1 Q( p; ^. |/ O# E( x
2 B6 q1 i& f0 x; T- K3 y/ c
# y/ ?0 c; |/ Z//=================================Dip_Start======== ================================================== ==================================//
, [1 O9 x: M6 c) T# g) Stypedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
9 e* p8 g6 C u5 N1 l, P1 F% LoDrawIndexedPrimitive pDrawIndexedPrimitive;) d3 E2 C# H, z/ k2 j0 R$ o" Y; S9 V. i
* U/ e$ C$ n- }8 ~HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)/ h2 `) P" X" `% R$ U& E! a) \' H
{: W$ H8 O" `2 T- [
- B4 r# d' i' j7 E4 M: A
" `2 X( s4 b; A& D
; L* i# \& N, @
' J+ u9 Q: e/ u; ?3 Mif(WallHack)2 U* r' ~7 B+ T
{
- k: G) ~1 r {- z6 otexnum = (nNumVertices*100000)+nPrimitiveCount;
. D1 L8 r3 g2 g8 a: p" T5 Aif(m_Stride==40 &&
7 v9 k' I# @" Y& V1 u+ L$ q7 L( P/ B6 ^7 e
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||' P+ K0 J" C& z. P
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
( \' w" N5 t. l2 B(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)|| ?4 i7 t+ K+ L) C% n# g2 V
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
3 ?4 V- L2 I k4 I" s4 r/ @: [! r(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
" a% r0 W. O% [* L& h( }' \0 N(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
/ z$ ^8 Y% Z3 Q9 J8 n(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
5 ]6 {5 R2 I6 q) l* a% r(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| 7 v* v& X1 t' U4 y7 P
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| ) M. U$ Z8 S$ [- Q: l4 r6 y
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
4 P# ?# m* g [! u. i: U2 B(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&; f/ C% ?- I. l1 f
4 q* K, l3 a; |' a/ y3 B4 M
2 c: n' t4 ?" y: R& T
" ~1 B8 y9 y d" e; p, e
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
. y1 _8 G5 N$ C* M8 D(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
/ u4 ~( P, L& x" _(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
0 v. y/ Q" B8 Z3 N+ |2 | A/ b6 f(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
7 T" U- \# c* Y, ~5 K/ F(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)$ t: H' O) e- ^+ h/ E# y- e( W
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
% g% S. j- G: [2 q0 r(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
6 |% z$ |8 p' O. M; ]6 W(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
& y9 E* A5 @! x% ~* V) i# |- D(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
$ S) h0 M8 P% B0 o6 u( G: q$ Z( ^5 G% j/ {7 c) @5 s
{
0 @* ]* r7 F2 ]1 @* {6 M0 HpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);$ B9 [: R6 Q0 \8 g# [
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);) B7 U3 }" h& V) f* E
pDevice->SetTexture(0,Orange);4 y' a& O3 z& ]% ^
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );0 c$ Y6 E# V7 \4 A6 x- p$ @
q) X( d/ n/ ?; A' v# I" DpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);- a$ c8 C! h# t) W5 I, L/ S
9 Y# B( n3 I0 t/ Z: \. ?* |//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
' U. V' Z+ \1 k/ u; `pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
, y* g0 Z3 G( w0 BpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
. n# V/ r F+ h6 P/ s. ^1 W" G7 WpDevice->SetTexture(0,Pink);
2 y* a: ?! t8 O/ Q, x}
: l+ o% p1 w Z1 f" ^) O# u3 i# f8 @5 I4 S2 R
if(m_Stride==40 && texnum== 21300174) * C% J4 U- J+ V
{% W$ L* Q- q! n
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
2 i' j2 z) \5 ?- o2 epDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);: `4 `- {( }, H% ?0 u
pDevice->SetTexture(0,Green);//GreenNade
3 n8 q3 A1 F) r# ^; b9 `. x9 tpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);3 `0 N; Z6 [* j9 m3 O9 a0 h
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
. |* q1 F& Z; C% C: N5 RpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);, l' \# C: ]: a* ~+ l
pDevice->SetTexture(0,Purple);
0 C# n. M. R" o8 M6 C6 w& f6 R' p4 [* v} 6 @# U- o/ _, Q9 x$ ^) b1 l" i
" q+ u5 g5 u# V, l: d5 n% x3 d! @4 M1 ?) J
if(nNumVertices == 158 && nPrimitiveCount == 131)% }1 h8 }9 |6 @3 z
{
4 G* c2 }4 \- U- VpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);5 S" c$ R$ Z3 |; G; @8 w9 A
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);! m. S% a/ k8 U# v4 F- u; I
pDevice->SetTexture(0,Red);//GreenNade; H1 q% A) H* o* v
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);- K1 L0 i9 Y5 U* n3 I+ v
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);& i# Z x# M5 s* i; z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);" o* x, |( s- v( R# T; G- y
pDevice->SetTexture(0,Yellow);
* m" g. i! `$ j0 J7 b: W/ }9 T}
9 P, `% Z) t( t1 C* F1 f' x7 n5 W' Z) e
if (nNumVertices == 171 && nPrimitiveCount == 143)
& o2 W/ J1 o/ d- O{
) w/ {9 y2 q) E Q( w' A: W6 r! a, @0 r7 B( d
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);5 v, X3 Y4 t. d [/ m; A
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);2 H) X' h5 L1 w2 U& Y
pDevice->SetTexture(0,Red);//GreenNade+ z) h7 R$ T; y6 w x* W0 U t2 O7 z
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
7 t; P* q, c2 k6 ^pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);+ @# L# x' j2 p; _
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);# _9 g+ e& n. j; q0 a
pDevice->SetTexture(0,Yellow);
. V- [4 n8 b( d' y+ D7 _}6 M% l% u+ U+ w: k; u
9 c, [8 b5 l+ M% x$ T5 f& @. H) y( E' B% \( y* f1 b4 {1 G1 z
' s, G! X$ D, t4 n n7 D6 {- xif(m_Stride==40 &&//face,mask etc...3 ^ X$ V- a# D ]
(texnum==36700612) ||1 P ^, D' g* @ a- g
(texnum==9600172 ) ||
3 l. h' [! N5 F5 ^(texnum==14200236) ||
0 x. x9 D* n9 J+ }7 U(texnum==37800552) ||
% h& \% E9 ^6 a% W(texnum==28100486) ||
3 d8 h) d" v5 @: P(texnum==35500568) ||! s: S& Y& Z" {$ p
(texnum==2200024 ) ||! L3 \( A# A* h* n
(texnum==16200243) ||6 h z _; [7 w0 G% }& X/ a
(texnum==31900466) ||
/ U9 A6 i5 L+ n7 t' T(texnum==19300342) ||
7 W$ @5 C% h7 [' w/ {5 m+ D(texnum==36200604) ||) b: l9 @3 r. [4 n4 b
(texnum==21300290) ||6 l7 [4 m' { _- q% {
(texnum==35700558) ||3 U9 ?0 H, t4 h1 k; l8 {5 h. P
(texnum==22100396) ||" G: H* I6 f9 e/ t8 T
(texnum==36100604) ||
8 C* d Z# e" }# i- n(texnum==27100464) ||
0 V# ]: x2 E1 E: e6 u0 {/ x(texnum==11400180) ||
3 `- g! W) b' Z(texnum==34900580) ||& U$ C; b; ?, I4 J+ E; d3 u
(texnum==13200212) ||
+ i/ I, ]1 ?% f4 `" U4 } \(texnum==34700538) ||: p& }$ g; f, k8 _- V! U
(texnum==19500352)&&
' t/ K! B) S/ ~+ ` y(nNumVertices == 448 && nPrimitiveCount == 776))
+ r* |$ ?; Y2 V) @
0 {- O- i- X' F{
) c4 P; @ s' ~8 f# G3 {0 C( QpDevice->SetTexture(0,Blue);% R1 b: {" S0 f2 z8 } v% g% F; r( y
}
* K) F# @4 ]5 z+ u! U) G
4 A) b' C+ b8 k6 A$ }5 q9 b x- N9 P- a( w. i8 w# v3 F
{- W U; I' A, \0 A5 T' ]
pDevice->SetRenderState(D3DRS_FOGENABLE,false);
/ q9 a2 T/ [9 W; q5 P4 A! C}
4 U1 `0 O" P9 j$ ^% P
I: O$ Z" O5 [' C; [- j/*Logger3 X+ X9 l+ u, K5 o9 D1 P
if(m_Stride==40){
! L* o+ y! L+ \7 F3 v1 l+ `8 g2 Y
8 @: }3 v+ v* m* x5 M1 h6 H& n
) t, e7 F; h0 J+ ]& zwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray" C9 z+ e6 l. n1 W( H* _
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
6 p; w+ `$ u1 |2 l5 v% E: ^bool alrdy=false;* ^* L' _5 l, g
bool inarr=false;/ ~( S7 i/ n, Z- V6 t
. U( W( p8 ^$ F3 t4 ~2 x
if(texarray[arrc]==texnum)0 K. E- _& r6 y8 l) A7 ^, N2 v) C
if(delarray==texarray[arrc])
) b+ w* @ I7 w3 q9 {/ Ialrdy=true;
3 _3 c; s6 K/ z( y1 E* ` j; _for(int i=0;i<dcount;i++) //sees if said texture is in delarray8 `: Y$ L6 F7 ]; `
if(delarray==texnum)& |! z8 Z" T, _4 H9 {8 j
inarr=true;% b& L4 w1 @( _; S
if(texarray[arrc]==texnum || inarr){ //If true, color model differently5 U2 t- p1 A/ I$ o8 o: U
LPDIRECT3DTEXTURE8 texCol;
2 x, G0 f5 d+ C$ S- c# g2 Q- gDWORD dwOldZEnable = D3DZB_TRUE; + j3 G& o$ X; }
pDevice->SetTexture(0, NULL);' ?+ Z. a3 p7 r# _4 c$ S9 O
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
2 L% k1 I, Q/ D2 g- fpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);2 v, M6 W8 O8 t( K* v9 z9 d5 E z
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
0 g8 E2 V1 E" o3 a( w' f& |" J8 XtexCol=Blue;
9 z' r! n2 `7 ~) [8 `else
3 q# B* g. V( j! M) E, LtexCol=Red;
1 V6 G; v: C) B4 O' r4 {; R/ cpDevice->SetTexture(0, texCol);
9 j- v' e4 H2 z# spDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
% ]2 o( U2 Q4 gpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);+ C% ~+ Q9 f$ Q% |. ?) W4 a
9 a- d% D6 n% S2 {}
) A* z. B9 W/ O& C% p- F1 e/ H6 y}6 `0 B( J( Z9 x s
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
8 m% ~8 z4 q) J" ^( `if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array9 q( k0 i+ q6 f) u! W
bool inarr=true;
' h* |% U# P7 N* j# s! Zfor(int k=0;k<dcount;k++){
7 z. z! \+ [ q# t5 Q, \! }if(delarray[k]==texarray[arrc])# ~$ A5 N% W5 @, l( o
{
, h2 w1 ]0 D/ h* m; y+ p+ Dinarr=false;//Found selected texture to already exist
+ A& k: }* g& G8 [5 @ I$ q# G4 @" U* ^! ?9 ^delarray[k]=0;//Delete texture8 T& D! A: j3 K5 }( }8 g- F6 l
break;//Cancel loop
; T1 L, N q+ u& O/ G}
2 J% t" P& Q: K n" q0 I}
% R; w7 u! H2 b) b& ?4 g& W# Mif(inarr==true)! u" p9 Q+ N |, V
{" X4 N7 b1 G) K% L+ S$ w
delarray[dcount]=texarray[arrc];//Add texture
$ Z; n1 _+ g1 Ddcount++;
8 J2 E, [' E8 ]}6 k& k0 R( E; ?
}3 t8 ?$ T) x2 R/ ~
if(GetAsyncKeyState(VK_F7)&1){
( W& Z( w( ~3 E9 C' Pint total=1;
( R" | f! P+ |& a3 A8 l" i: jadd_log("omfg values?!? {");6 @1 l& b/ A/ A1 h8 a9 J
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format9 s! X' J7 M5 k5 H7 F3 e: u r
if(delarray[x]){
) q! K) f8 Y& qadd_log("%i,",delarray[x]); //add_log2==add_log but without endl
4 e+ t1 b! i2 G+ j' O! `total++;/ t8 Z, b% K o: F/ k" w; ~
}5 x1 n* ^( Q* H* s! ~/ n+ G& p
add_log("}; %i variables in array",total);, N! t2 t5 {; v$ g. ^! k, `8 Q
}4 _9 l: W( v. l1 ]. E2 }- M
bool found = false; //THIS PART CREDITS TO KRYPTEC% B3 j. L8 N% c
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
6 ]! A- v+ L2 T$ R{: g% z4 @& i O
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
1 D- x- [! W& Z7 k}- ]$ d8 h* o9 g( j# e1 A* T
if(!found && arraycounter < 1000)+ \. f# C" m" r I" r& q/ ?
{
3 t$ [- K* k1 f9 Z3 @" k2 m5 N ?& btexarray[arraycounter]=texnum;* Y4 e0 N( w# K* K3 l
arraycounter++;
. Q0 M v2 ^7 a. L}*/( D/ ]9 d8 T' \( C- s
/ P, N6 G- h6 _5 c- Q
" N$ U* \7 F" a" f( U: s- g; S: P
}
; u4 ` i+ g1 l9 v- hreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);( j5 z% [6 L4 d9 S0 P( _
}7 h6 g0 q1 h( n. r3 m- O
//=====================================Dip_End====== ================================================== ===================//
+ N' Q r3 t. p% r( b, q" S% F: c2 z* `& J
6 g1 d7 ~7 B5 R2 n8 v, h! i7 h3 `
//=====================================Sss_Start==== ================================================== ====================//
0 U( s7 I- a) | j3 ^/ b1 m- u. Ktypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
, H1 H& [/ E7 ^$ H( Y4 X( X/ DoSetStreamSource pSetStreamSource;
! ]7 I% K; v! t# L6 Z E
5 e. g8 Z ~0 ^1 bHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)# R R8 M- i$ S) K1 U' u0 S
{- s4 y4 ?5 ^8 Z% T0 |/ w
if(nStreamNumber==0)" d' ]& u. Q/ Q9 v" L
m_Stride = nStride;
2 c7 U) |; @( E# ?
$ j. E/ [0 E- e; `2 Zreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
$ C9 ~8 z) H' Q7 o* U! V! n( D}5 r, g2 y6 s: g1 C
//====================================Sss_End======= ================================================== ===================//( A2 k) I2 B9 |) a0 p$ {
" a. @* L, \- S//====================================Svp_Start===== ================================================== ===================//$ K3 V! T! c" _% B2 j3 n4 W
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
0 I, q8 K% g0 r% Q* PoSetViewport pSetViewport;
& e( K" y- V G/ T p. d! V2 i% J" A+ e$ ^# P% j
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
5 L& l3 w D) k3 A( s{
/ M, U. [ S8 D! [: Q' RScreenCenterX = ( float )pViewport->Width / 2;6 }3 Z# y6 v* z% \9 M0 u9 u, V: k% S
ScreenCenterY = ( float )pViewport->Height / 2; ; Q6 q+ t/ d8 v0 q; C+ t0 @9 _
! t3 W# _7 Y0 t* O# k' _
return pSetViewport(pDevice,pViewport);
3 z% L- M$ C: i3 a8 M) G}
& E, s3 l) g$ y7 R//===================================Svp_End======== ================================================== ===================//
; V9 B$ q& E* [$ [/ A
8 O9 j" G* B; F/ N6 xtypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
+ f9 ?2 Q# W$ R$ P- boBeginScene pBeginScene;
" ]) F6 v% \9 g9 t W
$ b, h. m1 d/ h$ kHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)# r: q$ Y {! ~5 m
{
$ P" U# r; Q: M# Y( [/ Dif((GetAsyncKeyState(VK_F6)&1)) + r) N1 `1 G4 I
{
$ y0 _ j; z. r/ upEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);# ^8 E7 |9 G s1 s* L3 U
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
$ }, E) F# B' j% apSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
9 L! E5 C" }; c9 C2 D$ l3 {pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);$ j# d' x6 l+ ~. v/ j) Z
}3 m* R% V! v- D2 I
2 ^* I1 k8 a# c) E* qreturn pBeginScene(pDevice);
1 o: v* }8 F& G d8 [' y}
7 m; b" V( D d# p8 p; t0 p$ F6 K% L* i4 G
) H# Z" R. l3 S2 z/ o
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )6 ]8 I- O) n: ^2 d2 [9 L1 @3 p
{$ J: E/ M0 v3 p m
DisableThreadLibraryCalls(hModule);
# j5 [! f9 Z6 V0 d/ K7 { O# ]- s z% T) K; D
if ( dwReason == DLL_PROCESS_ATTACH )
# @' M) y3 K |5 c% W& C# p7 U{4 ]% ^; [+ e+ F0 j) g( s' u
4 @! E: y+ L- P; I% v+ `//=========Log==========================//8 }6 I5 \( H) Q) H' X% N
GetModuleFileName(hModule, dlldir, 512);
# y# F5 r2 e j3 t pfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }! x! H# B; ~% Y6 d0 A# k
ofile.open(GetDirectoryFile("log.txt"), ios::app);
5 h% n: M1 V& r: w. i: N//=========Log=========================//
9 W/ Q) L5 b7 V1 v# g- i; w! M: h& d$ \, l
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);7 J; E0 i: h2 N6 @' }8 v: U
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
3 k1 l% U2 [* tpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);9 u" l- u/ j0 k
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);* p9 r. k9 h( g& i) W2 j' p2 i' N
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);0 |. _- B5 S+ Z- O# Z9 p# U2 Q
6 p' N8 @" `/ ^
}+ O1 s; T+ _! U4 i
return TRUE;& M5 q" Z* v a. P2 U
} ! F/ W& J$ o! A! E6 _: q
& ^. R2 |) w' C n6 N- g7 o! x8 G( f' H- q% s
Log.h (The header File):% @1 C4 i) G H6 U2 W; j" Z
2 L+ H4 A7 Q& a6 m* X#define WIN32_LEAN_AND_MEAN. v* g% e$ |. s% J* r4 n
' N+ y. f7 {, l3 n
#ifndef _MAIN_H
7 S* \, q& i* c$ Y% e7 Q( N#define _MAIN_H$ G4 G' R! A+ s9 W( ? `" k
3 G3 m- k% _* p* r( s. vchar *GetDirectoryFile(char *filename);9 e7 V! X9 q$ b$ F2 J
void __cdecl add_log (const char * fmt, ...);. V' k! y: C! f1 @- X7 f4 D! E
#endif " I S# m5 d) Y" u
+ u. I; {3 a9 o4 h( R# n; ?1 E
Now after you have built your wallhack you will be able 2 find it in :
5 h# E8 E5 [' X1 d1 kC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
( X' ]1 j( y) W3 r' J; j! O) {7 r8 \
- K8 j, ~& [% A9 `7 }" _% ~Now I will show you how to make your wallhack undetected:
1 x+ D, ^' h2 J1. Download D3d hooks
( _) U. y) m) I. q2. Open the file that says "create device code made by me.h"7 }- M. A b: 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.8 e+ j4 q7 Q9 p3 S2 G6 b
4. Your wallhack is now undetected.
0 V7 P5 x! i, [/ U# \* B; f. _# H6 h/ b; B9 _ q: M
Credits:
. C n% h& ?& b) x i- ?8 L1. ME FOR THE TUTURIAL
5 q, j6 a w p, r( t2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE i# i: G& Q( t+ y9 j$ f/ R9 I7 m: d
3. FATBOY88 FOR THE SOURCE CODE
3 c0 k# K( p1 l4. THE INDIRECTX I JUST FOUND :P1 z; ]" b- l: \. h2 K+ N1 ]6 l
/ f0 X3 E$ Q6 \7 H8 I; ^3 f
Attachments:
! x& O* S4 t @. U3 f8 aD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
/ C7 U, ?; v9 qIndirectX: http://www.mediafire.com/?gimzgmeny11: H V/ Q/ E5 ~3 Y" U6 c9 m
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5: }6 _: k3 E8 p! N. h
SEARCH THE LAST ONE UP" j+ f! H5 r: _6 z) `+ `
__________________3 t0 J8 z+ a1 }
9 ?, I r( M9 B3 S! z2 X- G <---------- WALLHACKED |