原文
1 b' z% P# o2 S& R- j0 |. @ R- whttp://www.descipe.net/forum/sol ... -your-wallhack.html% `* w' j# e9 ?2 O
: r; e& Z* `" r视频教学
3 C& b! [) @) K1 h- L# O# y& |* }http://www.youtube.com/watch?v=6b5XMzT-b_U
* T1 @' S. Z+ H( k3 w/ w# h- U1 S- W5 d1 l+ ~. }% L$ W
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
3 {' p% [3 a# \( T" H& B
6 X% |( f" X4 }* Q8 R" p% m8 G Hello shane007,
) F4 ~( }: |! Y- I6 k7 B% ~8 KOur 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 O: |/ ]% T6 A9 o
" O9 b5 B- l( o" t' T; \! F* O( _+ {Why not start with your first post today and become an active part of DEScipe.net now! C) K% J( @9 L% r# b$ r
" h8 a W% D4 {2 A- S" Q/ c2 u3 T
; [0 b# w- O {9 t! T* c* t DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats
3 E1 i! g2 p- T How to make a wallhack and how to hook your wallhack!
, u: p6 Z, n6 @4 G; t* G+ ~6 V Welcome, shane007.5 S8 k, k) q* G
You last visited: Today at 03:55 7 O+ K; T6 M. C: D
Private Messages: Unread 0, Total 0. 3 \4 t3 `- o# K+ C H7 ?1 E
Credits: 200 [Check] ; D: Y0 x1 Q0 i3 ^5 N/ K
" ~9 C9 W' ~. z* s. i
Home User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
- G. |- m. e' |% h+ a8 v: ^* `9 q. E8 M6 E/ W# |
9 U8 D/ v6 d4 h2 J/ q
. u9 R7 Z6 g1 K @: U. gSearch Forums
, M: H1 Z" M- @* U 3 `; }2 @% L* c5 T; f6 @0 g+ @
) s2 s x d E" |: r- ?9 P, I( aShow Threads Show Posts {- }; T/ s3 |; K. u
Advanced Search
& v: L4 @8 J* x/ F. oFind All Thanked Posts
/ @- l! G9 v0 _" ^; g0 H+ H3 E2 d- K8 s9 d9 h
Quick Links 4 y2 k( d X: i4 Q& T) H
Today's Posts - ~3 g& ^, ]& V8 d
Mark Forums Read $ N# J: f; z# H. M
& ~; c, I5 u) xUser Control Panel
0 t# D/ b `* D; j- P1 e, s4 PEdit Signature
$ @ T6 A) t+ W4 D* n: c9 m 3 z! x. ~0 E7 @0 {5 Z% W
Edit Options
* p4 c {( i) _$ Z8 YMiscellaneous 0 `+ @, {, _6 [- |6 A; [3 g" y
Private Messages 4 F3 P T0 \. d( O
Subscribed Threads
' u8 i# X( z. Q7 y% C
& A# u; C1 {( N: o3 r- YWho's Online
. W, |8 ^3 C$ t
, H5 Y: [# k! `1 UGo to Page...
8 e; n+ s# m7 \) ? s) H" l5 T * R4 V6 T4 V" p, ?7 T, w- T( E) Y
How to make a wallhack and how to hook your wallhack!5 z% K8 A8 a6 E. n0 h5 \3 R4 l
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. ... ; {" o: C- g( g, k' q( U
% t. h: A2 m+ p3 w1 w8 W7 g8 ?8 C+ m Poll: Was this helpful? * a( h5 t4 e0 B. c) ~5 A- v
Poll Options
% ?! l; Z' t h( M' [" I: X2 i3 DWas this helpful?
5 t3 _) {- Y$ D: E& W8 iYes, I WILL press the thanks button
. j" ?! B& _# I3 v# z% p8 dNo, I am a failure E6 G' g5 _/ s0 i
View Poll Results
+ V- C" y) h- W7 I# R9 d8 [' b$ Z g# Y: l K' G: D" G
Page 1 of 3 1 2 3 >
1 r" n. |) J6 L3 W$ R: y2 N
( t' G0 y; |; G1 x. r5 ? View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
1 G3 |' D: E" a5 Z; W t X0 W2 r! V1 q8 ^$ H2 I1 a0 G- r7 l
; } R9 p( i1 @8 [
* R2 q y# g2 ~2 z 05-02-2009, 20:49 #1 . B7 J/ I# S! L. i4 I" P
killax9
- N% g+ }) r% O7 J/ [Punk
/ x; T6 l% }/ o7 C* M+ Z7 K D
8 E) \# O w: M q. \
& k0 j2 f1 j+ r: ?+ H
# |$ h$ c& V" m) q7 g- Q1 {1 w2 Z2 m4 T1 p. }
Join Date: Jan 2008
( R* R7 a: ?6 H& D+ A# I4 WCredits: 2,701 [Donate] 0 x& x; G( M0 T) x
Posts: 103
2 P* {5 r0 Q( b, I; eThanks: 10* a- l( w0 L- p% G/ Q, O# B
Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack!
$ b- A ^! t0 Q- ~- y& m* I
3 b4 E" G" l! J% m& }! p+ `--------------------------------------------------------------------------------
- [, R( Q. }5 d, ^
$ h$ `" l7 }' _6 j% Z* F9 I' _I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
7 j# s* v4 \9 r( F) d) rPossible Undetected Methods:6 a9 j2 q2 g: U/ u
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.
* `7 t R4 F7 F0 g3 `2 ]2)another way **** it hack GG.# e( I J' O% u' U, D3 K$ a; Z9 y
3)breakpoint hooking;doesnt change memory... well changes debug registers.
1 n( m6 y- X: b. I4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin& ~7 t1 R: Y# K, ^, E
" q# P0 A) V5 v. Q- aVtable:
$ ]. \5 k# N }* N$ }) K. }# zit wont work for vista its not a vtable hook =)) M$ j% g" G( p2 ^
5 d5 @. S7 I2 x6 r, t5 i8 u$ d
the reason why my older version worked was cuz it hooked & z C2 E$ v: N4 ]0 a
Createdevice->pointers to the functions( K1 A [/ L) e( _/ s6 a. e- T8 D4 O
9 P2 k; C+ f" ~+ Q6 H1 N$ ~
kinda like a class or a struct.3 ~* l; H4 v6 w% x/ Z' }' C
2 l1 H5 B- j, a
+ M% J! X( t _7 f9 Sand 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.
+ C5 A( M2 C P3 F: L1 X) Y7 m% B Z- v" I
3rd maybe- some games recreate the device when a map loads...like BF1942./ E, g- V4 \! T7 F3 }
( Z: x8 }- Y; z+ d0 `9 ?+ e" N; o/ PThings needed to do this:# d, u+ X9 r# T7 g7 D
1. Microsoft Visual C++ 20085 ?- } R6 s6 c& f7 y; n' U
2. DirectX_SDK_(Summer 2004)
1 O4 a$ F& I7 B; }3. D3d_hooks* X0 N; d Q6 V
4. IndirectX
6 I$ }' @5 R* M6 n8 m- }I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM O8 v' r& C( [
; G/ S) q- P) o/ _. b& g" FNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
* `2 D+ z& b9 M" Y! ?4 i0 \, x* z) a* G
YouTube - How to Compile WallHack [Tutorial]
# [* r- {3 U& g# H4 L# q( q% K' [9 J / X3 n" w3 z7 s/ \
* q" z2 E$ u P) q. \ S
& l' d) {$ d3 X$ jDetected Source Code:
& t: c+ R8 o. F+ T% `& A& F
/ C4 k: e: w* L! g+ a0 m4 a' _# n' Z#include <windows.h>
* p1 c. \% p+ l3 L( h#include <detours.h>! s9 Q, Z) K" G! L
#include <d3d8.h>: ?9 k" p! M6 Y( b( B# D
#include <d3dx8.h>
& b: y1 @- X" z8 u6 q#include "log.h"' J+ K+ j. U# A) o
#include <fstream>0 Q! S% q5 e& B# U4 y. y3 ?
#include <iostream>$ Y3 R% f- h2 J0 }
#pragma comment(lib, "d3dx8.lib")
6 M3 \+ E; R! Z* m @#pragma comment(lib, "d3d8.lib")) {2 Y }7 U$ f; m) @
using namespace std;
- L; K4 B2 V |8 E$ i/ g h# ustatic DWORD dwBeginScene = 0x6D9D9250;
) c$ S* }, G/ ?/ e1 r6 estatic DWORD dwEndScene = 0x6d9d93a0;4 x$ K5 e: C" e# k0 h% p
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
; |3 w7 w, M" `3 mstatic DWORD dwSetStreamSource = 0x6d9d6760;
6 `3 h5 q" X" J; I8 R( Pstatic DWORD dwSetViewport = 0x6d9d5b90 ;
5 ^2 L% F( F3 @1 R5 f! R
) ^/ f O7 k& w. x+ ]$ W0 Z3 j4 Z. P5 ?5 k" n! n! l
int m_Stride;$ }7 h' n/ K9 E0 c0 B, i' ~
int texnum;
+ x6 E" [% h$ C0 N% p7 Sint nNumVertices; Y* n0 A: T6 a! s( z# _: o3 w
int nPrimitiveCount;% M8 c0 X5 d7 F! S3 t
7 ` v" [- G6 D% m3 x. `
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;! G5 p8 _; a. G1 M ]
bool Color = true;) H/ [* x; W9 j7 s& k; C
bool Logger = false;" Y8 v; V% N+ t8 s# G8 i
ofstream ofile;
: y6 o7 Y" V6 _char dlldir[320]; F! y P7 c! c/ F0 L
float ScreenCenterX = 0.0f;2 G2 t6 V; L3 J1 a( q$ s" B$ v3 u
float ScreenCenterY = 0.0f;
& ^' ?$ P$ _* S' s nbool xhair = false;
) G) Z2 \0 }2 wbool WallHack = false;
) ]# [) i* l/ k+ ]/ {bool WallHack2 = false;! f# u, J0 e3 h3 s
HANDLE hand1 =NULL;- k" L5 c2 c( E# b
HANDLE hand2 =NULL;
0 p, G6 t9 c0 S2 Q6 p3 X# O5 w, G/ M2 E; L( _" L, U
DWORD bytes;6 k. o- M6 c# O6 K
6 s0 n' m6 w: ^* M E) v: f/ k
//Logger0 t7 F9 t: ]! C# t' {; F
int texarray[1000];
) F/ J( d5 u( W, eint arraycounter; ; ?; q6 B2 Q$ z
int delarray[500];
' ~; e7 W4 {% B- Gint dcount; 7 d' f% z |9 c. l+ J4 p
unsigned int arrc;
6 G, f3 k8 j) `* {int i=0;
# `4 ]& p' J* @" V4 C$ o
: {; p$ L# [) F: _& Z- x
# q( k% Q# F3 b- G# @& {D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );1 W. [! ~( u0 F* M
3 t: E: I3 v$ C' |2 L3 r
1 l, a7 y/ H4 Z9 x# S! O7 zchar *GetDirectoryFile(char *filename)
, l8 ~9 j: S% ?8 j1 n" C9 {4 ^) F{- t6 A* Y+ H: `. I: U
static char path[320];
; w; D+ I/ C4 {; u5 Hstrcpy(path, dlldir);
% E) w# q% M; Q/ I7 Z4 a, bstrcat(path, filename);# O/ r% M+ u$ n, h4 u
return path;
1 e4 G' @% M1 P! E} Y# V% i, [8 z0 z; {6 p% x1 I
' v' Z/ B: E3 A# \- M& |
void __cdecl add_log (const char *fmt, ...)
5 x$ ~' O) w- |* P! X7 x" {4 p{" Y C; h* k+ ^( m
if(ofile != NULL)( i( V1 a2 v0 g; p" g" }
{0 e" U5 u- ~1 q3 ^( J7 E7 j
if(!fmt) { return; }. E! T- n' I' J e) ]( }
% P3 x* C. L% v5 D& z+ C. D# }va_list va_alist;" C4 V1 q; W' b* n$ @" I' p% K
char logbuf[256] = {0};
R2 [) E4 h$ x; h+ x5 j+ Q! L" M/ |/ t0 |# ?
va_start (va_alist, fmt);$ _! q- d* f3 ~5 a9 O4 w
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
/ `- C1 T5 D$ J$ r. Ova_end (va_alist);) F p$ _+ m9 P' F
9 H3 ~% \5 D8 lofile << logbuf << endl; R' u1 M' U h8 J7 a
}
9 T0 u- m, m, f& a5 |}
* P- k1 }% N$ [& |' r% A# B1 |$ Y2 {9 ]
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
. z! m6 P; p# `$ z{$ Q4 Y8 T; o* o& D9 Q# G
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
" Z- k R6 A; L, rreturn E_FAIL;
' j8 x/ u- b' X# Y
! i% z+ C" j" `: B- aWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)0 I g" a: e1 m( n, e8 Z
|(WORD)(((colour32>>20)&0xF)<<8)* o$ a7 p. m. D6 K3 P& _" x" K' r; \( p
|(WORD)(((colour32>>12)&0xF)<<4)& Z' `: G2 z; l; ~* R. o
|(WORD)(((colour32>>4)&0xF)<<0);3 V$ E! O j' ]# u3 z* H
2 V2 Y; B* E0 [
D3DLOCKED_RECT d3dlr;
0 `& ~4 t# l: v E# {(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);6 Y! G8 D9 ]' p6 ^2 J8 J
WORD *pDst16 = (WORD*)d3dlr.pBits;
+ i, a& @ B' q/ [2 w8 t# s# t) E4 F; Y) ?7 H9 _. u4 i
for(int xy=0; xy < 8*8; xy++)
+ j! ~! V9 P* c7 _% ~*pDst16++ = colour16;/ t- D2 L4 j, a3 V, S# E
. @: t( H1 \. r! t: Z# i
(*ppD3Dtex)->UnlockRect(0);0 a' U _; {# i1 V0 a
- v/ Z6 @& Z1 y+ V* f
return S_OK;
% V) @( L3 d( _" | d1 ]% ^}) j$ L( F$ _) d1 t4 z" Z8 c/ R# C
9 a7 t% z$ S- F0 }* T* h ~% M6 ]- {4 V, G5 C
//=================================EndScene_Start=== ================================================== ============================//
1 F/ T) d6 M3 I! f3 M$ K" Otypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );5 A k- ?/ D$ y0 X5 c' |
oEndScene pEndScene;% H& S p! v, C3 ?
2 t, ]+ Z r9 J6 IHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)& }( Z5 |3 t1 b E2 ~- M, `
{+ \" w: |2 y2 L7 E
if(Color)( C' U1 H* ^3 d! S6 e4 |: s) k
{ # j, ~$ N) X: G3 F6 c% Z$ r- a: }3 u
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));: F. _: N7 H2 B; i
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
- K; l. v F! J# H1 xGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));) I1 }* o; `7 o, c0 s, P$ C! S
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));% D/ T" `/ _. J( J' L2 z
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
- x6 o# d8 j8 {$ N8 z2 HGenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));) d$ E9 w2 T! n7 A: |
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
1 Y1 r3 ]1 _1 @ FColor=false; : h; |8 ~/ s: Z
}
8 \3 a0 c9 U: i$ G; S7 D+ t$ Z' S2 L* |. W# Z
if(xhair), m8 x8 O5 B& `$ B% M2 U
{5 K- ?4 x3 Y$ Q# e
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};" R# B+ V% Z$ H7 t1 R. y% ]
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};1 J* ~6 `- [/ Y; f) n% |& Z
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);7 m$ U' w6 s$ u8 B. f2 |2 J
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
6 |( ?. ]4 Q) j; }$ s} 0 f# y# R9 G8 [4 P& _. S
# J; e) \- e- d$ M//=============================================UnHoo K_Start=========================================== ========//% Y( i3 D; _% q
7 V+ O1 r8 H+ B7 H' jif((GetAsyncKeyState(VK_F5)&1)) " k1 Y3 q4 \4 b
{ 4 l5 G- Q) X+ d4 k; \
int end =NULL;3 N3 \: i( Z+ k6 z1 L, K& ~
int dip =NULL;/ Q$ z2 H, t5 N, d' D
int svp =NULL;. c' z1 ?4 r; Q
int sss =NULL;% c3 H0 K9 V& E( Y4 R+ ]
4 e, n% I# N0 l, C/ L
6 g% N# c% B- y- k3 N
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.( a, [8 A1 U- W/ g! W0 m
hand1 = GetCurrentProcess();& u" @7 b% Z3 a6 v& _" B
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");* D, j! a0 `5 ` a0 ]
end = 0x6d9d93a0;/ o" L5 V! _: H
dip = 0x6d9d73a0;; z. A1 d b* I6 ^4 J
svp = 0x6d9d5b90;
! X& N+ S* {& T' n! u( ksss = 0x6d9d6760;
' H0 H H8 \/ @+ U- T" p
) {4 e& \) p+ U4 tWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);3 ]3 V% o& G8 i( J) ~
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
+ A. f6 s/ x' K$ C5 jWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);* J$ I5 Z1 Y! d4 `4 D+ M
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
. e/ u2 Q/ h& |6 M3 D. k} ( W2 k! U5 g/ { {
//=========================================UnHook_En d================================================= ========//
0 Y& p) G0 N1 Y! o1 s/ z
1 F! r6 i' O5 w5 b, Qif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} / z4 e$ o$ F, j( i" P. z
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
* R# o, l- @8 j: x. t
8 w7 K1 m, F& Y/ t2 D' Freturn pEndScene(pDevice);
8 ]& M2 j) l+ ~- D8 n}
0 P: D8 X2 ^/ u1 b, A//====================================EndScene_End== ================================================== ========================//
" [$ g+ z$ k- P. u0 }; S$ b2 g7 j3 c# b5 v& f: K
7 H- G; f4 k9 O
- o1 x1 E* j5 |: O% D, D- c& P$ [
\3 ?/ {+ Y. b3 l//=================================Dip_Start======== ================================================== ==================================//
' ?/ E+ P$ }6 k8 o; r: z! ktypedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
P8 V# I' i, b& I# r; p( I1 I9 foDrawIndexedPrimitive pDrawIndexedPrimitive;
: X. {' O4 Z. K1 [3 V( A
" e. }' X7 E% Z0 ~3 y- b0 i$ i! lHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)/ U1 [" U1 H+ [5 e& }( q% R8 J% b6 l6 M/ r
{
1 E. A: P g, `/ R* m4 g3 A) i) J# w# Z% `. D
8 S8 M5 h. e4 g9 D: Y! U% i/ ~( h1 W4 G6 W/ k6 j4 o
! A7 d- P0 l1 Q% P3 S) n2 Lif(WallHack)
7 z% d" l* j/ [: J% q6 @6 O2 e{1 M! m2 | g+ R! k
texnum = (nNumVertices*100000)+nPrimitiveCount; ! z/ V' g8 z7 b$ f( n$ T( S5 Z
if(m_Stride==40 &&
0 ?2 Z U2 D& A3 D! ]
4 b+ [ B6 K2 ~ J( |(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||) T B/ W& E7 ?3 u
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
/ e4 I' j$ v7 l9 d(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||- U) A, i4 ^ W5 [/ s" M
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||) {4 Z4 {0 [, n
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
0 p$ L6 d! z6 X(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
9 `) F+ a" {% q8 K8 O3 U" J% s(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
2 Q3 K9 B. T$ @9 M/ A) S6 |9 L3 ^ I(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
# w6 n7 K, Y2 a e3 E( N(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
5 Z5 Q, l0 ^) C" ~ G: Z(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| . R6 n: x+ C0 p/ U3 q( I/ n" ^
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
, r$ l& q' l/ W/ o' n. h$ I5 u
0 f4 M1 }' {/ R) e3 I! J' T# o' T b! x/ ?1 d3 U
6 h6 s/ h4 Q( C$ t' Z: [(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
/ c" D; a- A4 d; \(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm " ^; _0 ?* c. X5 d+ f
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand / ~0 P# d$ _% p6 p" Q6 q
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm & O! g3 ]& e! a! |. v
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)+ Q4 D3 p" \$ O5 K0 Z
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
* W/ P+ a) Z' i6 F0 P; ?) q& k1 K(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
7 B( N' o/ u, m k I8 k9 i( v2 i/ j(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest # ?4 Y0 U- z7 Z% O9 O8 f5 \
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
; [) D2 C6 w4 V" a% D5 ~/ v
+ ~. w" A+ D, V& n1 e! L* u{
3 f1 |0 D8 D& B+ m" n6 ipDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
- f, J5 S# G2 ?. a' g- K- r' hpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);: M3 ` r5 n1 E) d1 f$ }3 s
pDevice->SetTexture(0,Orange);
3 u+ ]& |% p' c$ ^5 z//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
, d% |) x) I, s5 a- ]& P& Y& N; P& }0 }, Q
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
( F6 t% B1 D9 }. k* v. N! t0 g, j' @ G5 K2 C
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );' X+ s! m) Y" m4 E. A0 f$ q* K0 b
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
8 } s9 V% m$ _pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);1 g ^1 `) A; ?( ^) ]3 S
pDevice->SetTexture(0,Pink);4 v/ }9 Y# _. c& f3 N
} ( _6 w& ^# @; W" I+ w
# O+ `# r6 ^9 q R/ y, T; q) c& D
if(m_Stride==40 && texnum== 21300174) 8 C) D4 [0 i, Y9 p L
{7 }, `. |' x7 o6 {
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
; Z: Q- h( T) k9 ?' ypDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);" H0 \1 y" B! r" U5 J q5 H
pDevice->SetTexture(0,Green);//GreenNade
( O3 U# n C9 Z# ^pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);# F) |7 J' z& \/ o/ X2 {
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);% @, v& u! O7 m* `
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
4 K9 r- ^7 c9 O0 Y9 S C) O; _9 IpDevice->SetTexture(0,Purple);
. N" f9 N0 M5 C) j; l5 D$ ~} 7 B9 l/ s8 b# V$ G( i5 f ]6 w: c, s
% g' _5 `8 f7 X. w7 W# v/ ~
8 F4 q& f: e @" Zif(nNumVertices == 158 && nPrimitiveCount == 131)# v1 A( W' I3 w) g7 r
{
0 O9 y2 G5 i7 p7 S* zpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
+ k( A4 s: { }7 f- g. [) _pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
& Q+ |) x0 j( \' zpDevice->SetTexture(0,Red);//GreenNade1 c2 G- x; \* b' r) V
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
' F; T3 I! W, k) Z SpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);/ Y* ?$ [1 N, @
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);5 |5 P% e& |$ C/ I6 o0 M# o. W5 e$ ~
pDevice->SetTexture(0,Yellow);6 x9 l. n! @8 v+ a& ~
}
- i6 ~0 f6 \9 r) X; O+ T; c3 K4 f
, ]& {, f; e. Uif (nNumVertices == 171 && nPrimitiveCount == 143)
4 D& L. S8 v+ o! ]{, u' Q' M: ]: w: N% I) R
$ x9 ]3 |. F+ l$ b+ v+ D& W
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
" L$ u+ e8 S' O, ]# {8 WpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);/ Y* }( c; M4 r% H3 k
pDevice->SetTexture(0,Red);//GreenNade9 p/ W# o# N0 G# N$ x- C' H0 S
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
N0 a! @5 M# x) r" L( JpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);0 f% I- d/ b6 X o' l( j* ^
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
3 W8 n- p9 F) ~- JpDevice->SetTexture(0,Yellow); z4 ]) ~1 x/ }- u6 i( O
}
% Q! S$ }$ X5 d- c6 @
' |4 g C. [9 N6 l3 i2 A8 Y# Z8 V! H5 ~7 Y- O+ ^
. J: f# D: X- k# W2 f
if(m_Stride==40 &&//face,mask etc...
( R; ^3 X/ F w. a1 ]# y) x(texnum==36700612) ||0 ^$ t3 ?! }$ x2 G2 w% }$ x3 Q( ?
(texnum==9600172 ) ||
+ L6 d1 F4 N9 G( r2 L7 \(texnum==14200236) ||5 r7 {( v8 X8 }1 ?% V w
(texnum==37800552) ||
6 E- p0 d5 D) `; W(texnum==28100486) ||# ~$ R2 F- g6 `/ v0 m6 x( B- Y" l; P; [
(texnum==35500568) ||
5 l* ?0 c. t l1 s/ E7 \(texnum==2200024 ) ||
; e" K- q* d5 c: w(texnum==16200243) ||
- R6 J! ]* o+ {(texnum==31900466) ||
3 A1 t( j" h8 i" k% t+ }(texnum==19300342) ||
% `8 @. D" w' B) ^- ?(texnum==36200604) ||2 y! _7 U4 Y- q/ e+ H! x' c
(texnum==21300290) ||
! i/ y2 M0 T; x1 ]- Q I) I& L(texnum==35700558) ||
9 L2 _* t( S: S1 |(texnum==22100396) ||
1 _" j! I y& ?2 C- c5 x d7 _(texnum==36100604) ||
) C4 U; I1 \1 K5 {" G5 @(texnum==27100464) ||1 J, H7 O# j7 V
(texnum==11400180) ||
7 F2 @1 `7 ?0 _% B) L(texnum==34900580) ||0 @0 n; E& R' @7 j4 n! E s( h
(texnum==13200212) ||& X1 \) O; ]8 [2 U9 ?( ~
(texnum==34700538) ||
- C9 ^# ` {3 y/ ]! f- s1 g& s(texnum==19500352)&&
+ j8 X# j: X! o$ W! j(nNumVertices == 448 && nPrimitiveCount == 776))% b0 h0 c7 j! u4 K5 X- ^
/ E5 H1 P9 F5 H. D! i
{
) r( j! U3 E, F0 k! r! ipDevice->SetTexture(0,Blue);
: W' y0 R- C" C( N}
3 \1 u3 n7 f; `* w
+ d& z: F- T( |! j+ A. P/ W1 b. F0 O$ G( P7 E
{
: n5 X4 Q0 [7 [4 ?" G' l$ {( ]- WpDevice->SetRenderState(D3DRS_FOGENABLE,false);
" o* K. v+ [* A5 f! ~. }}
: \3 n# R; o7 H5 Z# x# v1 o8 y: ~4 D7 T+ Z
/*Logger0 W, M5 g i/ H1 Z( ~' j" C/ i
if(m_Stride==40){3 ~. h$ J* d& r
( ~" w( f5 e2 x& [3 C( @2 V1 {& F; E
4 L$ h! Q+ [% V/ S0 Y; j- o/ ?while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray) u5 ?! b0 H9 S5 x
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;$ _0 `5 B n: G& n6 [! ?# k4 M
bool alrdy=false;$ x; \3 x3 n: E) A, ~: T" m
bool inarr=false;$ b) I, m: Y9 W2 i5 z
+ F. h0 Y( w e+ q j0 B* |, q
if(texarray[arrc]==texnum)
$ r# S& ?9 Q# [8 Iif(delarray==texarray[arrc])$ c9 @' N2 z: [& E
alrdy=true;2 K/ b; ^/ o$ k& o' ?+ ?
for(int i=0;i<dcount;i++) //sees if said texture is in delarray
0 e) ]4 G# N7 {( _) P6 O' Qif(delarray==texnum)5 B; y* i5 J4 }+ W
inarr=true;
6 X9 n4 J. N0 eif(texarray[arrc]==texnum || inarr){ //If true, color model differently9 ?2 @- R% O: S1 e9 S
LPDIRECT3DTEXTURE8 texCol;
+ C! F, d8 C3 \: ?! bDWORD dwOldZEnable = D3DZB_TRUE;
' a& A5 c9 F# d9 l( wpDevice->SetTexture(0, NULL);
6 q% t, T' \7 R" ]0 _% cpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
' |; E0 u: M% ApDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
, m& k( w) W. Z- y$ y% Fif(alrdy) //Different colors for selected models that are already being logged (For removal from array)
3 L. B0 |1 }, r* G. EtexCol=Blue;: G9 B) } ~ F7 u
else) |' e# s$ G6 @. ]) G+ a" L3 S% n
texCol=Red;5 ~4 @* G/ r, N" l$ ]+ @, H; c
pDevice->SetTexture(0, texCol);2 R% q' I) ^1 v7 r4 ^
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
- V J2 M( l6 k2 U% N' RpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
& E; c5 ?' U, G' \7 [* A4 O, z$ H. i* a
}1 L- S! \6 {( M; D/ E: f& H; P
}
' f& A1 B, Y R4 ^) ]if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
* C7 [$ X3 B# l9 @) a5 H0 [. v' k) Aif(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
& E% P3 N8 q2 d1 ybool inarr=true;
$ d+ P" W4 U' Y: D9 N) V$ |for(int k=0;k<dcount;k++){
' ]6 v0 A& S% C& }: m8 T: S! n$ oif(delarray[k]==texarray[arrc])
6 U% ]% j* H& z9 _9 w5 g{
' F( m q4 x* a7 b2 L, c- m$ \& Pinarr=false;//Found selected texture to already exist! V3 R+ l% [7 j# {1 D0 Q
delarray[k]=0;//Delete texture
6 q' e1 f: u# g8 ~1 O6 Obreak;//Cancel loop
?) u y, n* T; u2 J+ D( b+ e) e2 X}
/ J! D: j( _/ h( P ^- Z4 L* L}3 @; z! d% s" I+ L
if(inarr==true)
$ ?1 i( q% Q+ |( C7 P6 H{
3 h) \9 r) A: r+ qdelarray[dcount]=texarray[arrc];//Add texture& J- R5 v3 E$ Y( ?) |
dcount++;/ E a u! d2 ^4 }4 X0 u
}
, T8 n' F3 ?: |& |/ L3 l z8 _! E( y}* I- [# e5 l9 l: g
if(GetAsyncKeyState(VK_F7)&1){
3 X2 A0 H: j, D, Eint total=1;1 i" f3 c% R- {" P7 e4 k5 G- e
add_log("omfg values?!? {");( F% g% [* D) W, C8 j/ \! k: l: M
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format3 D) C& A* P }% i+ l4 W) c
if(delarray[x]){5 b0 F. Z% G, ~! P4 |. O
add_log("%i,",delarray[x]); //add_log2==add_log but without endl) P* H" ?1 @/ a% ~, V( }/ \" f
total++;" M7 g8 D) C1 P# |* \" X/ |
}4 P3 }3 w2 N0 ?8 [( d. G
add_log("}; %i variables in array",total);) K+ s, g8 U3 A* a
}" V) S- G8 a5 e) ^
bool found = false; //THIS PART CREDITS TO KRYPTEC
) V2 t5 |0 u d- ?1 v) s9 y' T" c& ffor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
4 k* S& N9 ~ |8 u' H+ M{
- {5 _& [" K+ y! y; ^% i3 A- Yif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT- q6 j0 A5 o0 b* i. U! ]
}) [) V% n: \0 F+ a2 k s/ N
if(!found && arraycounter < 1000)
, T& F' k8 }2 i$ _8 R9 W9 l{8 Z( R: p% Y) t# A& B! {
texarray[arraycounter]=texnum;
! H, k6 v0 H: {( {2 P( carraycounter++;
' D& U l7 X0 u" h" S}*/6 V& ^; ]9 }; c* h1 d* L/ Q& i1 N J' E
/ A* Z5 ^3 O0 |2 q+ X' G! H7 i" k+ F7 C9 ]1 C5 T
}# O: p0 T z" z. I1 p/ }
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
( O; c. u: d$ r& z( K* H6 S}
8 x# A8 e0 D$ E, h3 D: J& c1 n//=====================================Dip_End====== ================================================== ===================//
& V3 r0 F9 f; H: Y+ T; w) j$ w- D
! [* g6 l4 u* X. b5 w' U- u//=====================================Sss_Start==== ================================================== ====================//
6 B+ v5 t. G4 z3 w; n0 ]9 Xtypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
! }" G$ Y! k+ K& ooSetStreamSource pSetStreamSource;5 L+ q9 n9 \9 K
+ {1 D6 ~" Q9 g; k g& M
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
" I+ S1 S% V' Y0 h4 Z{) b0 i) g6 I, r, K6 \" ?
if(nStreamNumber==0): R$ l6 E" u3 b
m_Stride = nStride;' F& [# d% h4 K% w" f% i# A5 P/ [
8 R0 c6 F8 a; `. U9 S" e: g' Ureturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
3 C& `& {# G9 C4 J& R9 o}
, S' `3 a9 A2 k" I+ }//====================================Sss_End======= ================================================== ===================//
7 r& h: ~( ~5 g; E5 ~; U, V% B/ I( D! N
//====================================Svp_Start===== ================================================== ===================//
, K ^ j- M0 a- ^typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
8 l3 d" H: r0 O5 q+ \+ ]$ \oSetViewport pSetViewport;
, N, m& r% k. f6 p3 \, W/ n) t, j v% f. ?1 f" n; Q
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)" a g% ?- X! D. f- d7 X( u$ j3 I
{8 ~1 V# a. S/ ~
ScreenCenterX = ( float )pViewport->Width / 2;
" r4 A$ [- M6 W, J" x2 C8 b- ~ScreenCenterY = ( float )pViewport->Height / 2; . @1 l, k1 K0 {' [. m" E6 _
, y/ O" F3 w Q: j* F" a9 o
return pSetViewport(pDevice,pViewport);
. e1 A/ k s3 x) z/ T% K}
% r& y$ `' n, j. X//===================================Svp_End======== ================================================== ===================//6 m5 L' \ T# N
" \' |" v) `* Ytypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
4 |( I" |$ K* h v7 M3 W3 J$ woBeginScene pBeginScene;
( T$ M9 Q& w& c& @8 Y( f5 ]; N. Z; |2 g8 T! m1 x
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice): l& i5 c- S9 s% [. C6 @0 j9 C
{0 X6 X* r0 Y) Y* k6 f: U4 P
if((GetAsyncKeyState(VK_F6)&1)) 0 T) i+ l [1 L+ b% q' ^9 j& C0 ^0 ?
{
! m* g1 ?; n: l" spEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
1 \/ K1 K* H/ K2 j9 @5 e4 e5 _4 {+ epDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
( A0 q) c9 t2 d; O3 m4 l FpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
7 Y% M& `3 m5 epSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);! m A) l, b, S0 M
}
+ k9 U- ]3 U0 x+ l5 ]
( @% i, X. O) }3 @5 B$ p" T freturn pBeginScene(pDevice);2 J: y5 }0 F, `; T4 ?+ u0 `
}) Z- q* O1 c7 |. P; _
) R" t7 F7 F$ t* ^/ ?, [
# f# c' [5 w' N" x2 G) ]( m6 YBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )6 T# {+ `* Z z* y M8 k2 n: u
{
* U7 [* B* p- b( w0 a+ l' J0 pDisableThreadLibraryCalls(hModule);
P& ~# ~5 F/ y9 j
3 |7 r* A; l* k. y. f1 y5 [if ( dwReason == DLL_PROCESS_ATTACH )
5 [' A4 I' e" \6 V9 T: L3 { D4 ?/ c/ t{( ~# ] p9 \( f, y; n
1 y1 @) y/ Y8 c* q. H( o% |; P, p
//=========Log==========================//9 {7 Q* c% ]1 b% R: i1 }5 I
GetModuleFileName(hModule, dlldir, 512);
- h6 Q% r7 H# G' w+ W* {for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
9 C7 J$ T8 b! j1 W; q' C; p: d1 ~- ~; Iofile.open(GetDirectoryFile("log.txt"), ios::app);
, O3 _" O" x. ]- h& n5 J5 A1 l5 t. F//=========Log=========================//! U5 T4 G& V5 b9 u# x A* X% S8 z
2 x- ^+ j) Y5 Q% P" O
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
; C$ `) |/ z& d1 u- OpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
% V9 {# `2 I S/ P7 LpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);# N( P `, R0 m9 G
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
9 g" q X/ q. _/ R- t' ^4 [pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);! Y7 X2 I Q- }3 T- V0 M# h! z
" ^! R( k6 N, z9 @& h! n! J, e}
$ Y) ~% i8 [ x9 q+ j1 areturn TRUE;
/ m' ^2 I; I" A7 ?8 x} ( i2 G. h$ b9 P5 I
% r% g5 I* m+ \( }, r! B, q8 a1 ^) c d5 i
Log.h (The header File):
' \$ o7 Q0 _* u! n, `
6 f. K& Q' T6 f- `2 a; R' H! a#define WIN32_LEAN_AND_MEAN# p0 a* D, ~( j; r; J6 g; a
2 w6 p/ Z* I2 X( U/ I W
#ifndef _MAIN_H
0 a5 n" _/ |6 n7 }: t#define _MAIN_H* a$ q" S W& J
( d: u/ C+ T) ?1 g5 H# J) P0 A
char *GetDirectoryFile(char *filename); O* W) e% S4 Q3 M, R6 X3 w0 p
void __cdecl add_log (const char * fmt, ...);
+ t/ I% ~6 ~6 s8 w( v#endif 5 i, {+ t. P7 ~7 M5 g0 j
7 M1 R$ e% }* QNow after you have built your wallhack you will be able 2 find it in :' ]0 l% x7 L) y
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)' o* ~5 b5 ^( Q" b
" r5 L. k8 Y ]& k1 E6 g& zNow I will show you how to make your wallhack undetected:
. y6 w# U2 o2 y0 O% y1. Download D3d hooks3 } c2 I* H, o
2. Open the file that says "create device code made by me.h"
0 B& i: B8 Q% `& O7 H3. You will need to make another header file in your project and then put name it create device and paste that code it.: L" c3 ?$ r5 J9 ?3 o: k
4. Your wallhack is now undetected.3 C2 g* ~; Q8 i9 u2 ]
5 U' c/ J9 F1 p, P6 j/ Y
Credits:" A! {2 ?# ^8 C2 i
1. ME FOR THE TUTURIAL& g. N2 e H; O& k0 k, y
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE7 {6 E* e" s5 d! _; K
3. FATBOY88 FOR THE SOURCE CODE
9 ]4 p6 b* L% k& T9 R0 |8 h" P4. THE INDIRECTX I JUST FOUND :P
, c; M9 p4 W8 v/ L; w8 ~" _- U$ D4 z3 v5 s+ l- Y8 j
Attachments:# ^+ X; ]5 w8 p/ a6 |
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5* Z. m% \, ?: N Z. G7 v4 k( b
IndirectX: http://www.mediafire.com/?gimzgmeny117 c# a# b3 S/ N
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
$ e3 H. d* g k" o. @ cSEARCH THE LAST ONE UP
. W; O% s3 {! Q% l( }" H__________________
# m/ [8 u2 o% D3 O! H( i9 h1 e, ~3 D; ?" d- f7 q2 C% z2 V
<---------- WALLHACKED |