原文" w3 z( {. T0 Q5 L2 H9 S+ N
http://www.descipe.net/forum/sol ... -your-wallhack.html
, C6 N+ L$ h' n9 @- L$ I/ v9 ?# a, B
视频教学
/ M! x" B4 q& o- t* \7 h. lhttp://www.youtube.com/watch?v=6b5XMzT-b_U
; y+ D4 b/ W5 q, L4 m q# {: ^" L6 ?3 N8 G! J# b
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch 7 k+ J! c0 W3 }/ r8 l9 Z9 f K$ G
' L0 D$ h4 D; g
Hello shane007,
+ c/ f4 J. y) f* 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 S5 D/ I4 r3 L# I' t
6 {2 {+ N, R7 G ?- b* [# ]
Why not start with your first post today and become an active part of DEScipe.net now! ' l2 H/ T1 z+ _5 O6 B: X
5 c: A1 w- y0 b5 d( f$ ?
0 V/ s2 V u! X: A( @
& Z2 x9 Z# _+ d6 I2 V! }/ s
DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats
& ?) m' A& G/ R+ N How to make a wallhack and how to hook your wallhack! : ]) V$ U# I- b8 ~3 }7 D% F1 {
Welcome, shane007.% o3 H, `8 p8 W, _" r6 F) C
You last visited: Today at 03:55
4 N* `. E- f6 o6 L6 w/ P0 w. nPrivate Messages: Unread 0, Total 0. 3 V: q7 Z7 }. l
Credits: 200 [Check] ( c0 s/ T) [0 D. A2 l+ D
% b8 x- c: z- B/ L
Home User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
- }* @# R* Y9 o: @: s( |3 Y" p6 {1 f* N% E# s& `8 l V
* J8 i! e2 ]+ d
# D9 I0 h) b% i" ^- H Z0 hSearch Forums
; X, V/ Z4 f) i9 Q: z! K, V) f 1 y$ H' w8 t0 R3 D |, I
" r* | f/ R. c2 K6 u, WShow Threads Show Posts
3 T9 A( Y3 F' H- R$ K" yAdvanced Search
" F6 \3 C/ s7 @% BFind All Thanked Posts $ y0 B' j5 ^1 [( T) A
: G. j: f5 p! @* q- LQuick Links " i) r8 S8 W& `- y5 k( s
Today's Posts % z9 j% d+ q, D! A
Mark Forums Read
& f/ G7 ^1 o* S } 2 }( f6 \5 i' v4 W1 ^
User Control Panel . \$ U% K6 g2 |" X" h9 @. y* W
Edit Signature
- [/ |% h ?# j9 y) A
7 d: S9 w' R* |1 m8 a) pEdit Options " [3 Y0 }! W0 m: s
Miscellaneous
) u* ?2 v/ i2 W2 L1 o$ K( F" w0 gPrivate Messages
2 H/ ?" D: W) M( C) sSubscribed Threads
9 l) P1 `2 p: B+ S) Y& ]9 H; b9 \
& b# c' `+ y% }6 ~Who's Online ! e" I# C. b; R7 I1 ~+ l6 ]
3 p9 y, ^1 F" ^1 z$ {1 v, L
Go to Page... 0 E1 ?0 D- h. h2 Y' g1 B
0 q g8 Y& L2 y* ^5 |How to make a wallhack and how to hook your wallhack!$ {! X% c3 P9 c6 H
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. ... 5 |( ~% ~7 F, U' [; X
2 E7 k7 B! _ G
Poll: Was this helpful?
" E4 D4 ?* _$ cPoll Options7 y c1 Y, V% N! }. N9 G# w
Was this helpful?2 M7 ~* c; `. ~0 Y( [ {/ f* x
Yes, I WILL press the thanks button
: `& _5 n- K5 g+ }% N6 I( gNo, I am a failure ( l W: g6 x/ o, o6 r
View Poll Results
9 p" O* \# M8 k4 N: y" J4 F9 m3 E+ m! d4 u, n) F8 a2 I
Page 1 of 3 1 2 3 >
/ R& u9 r* U N& R
# V7 N8 w4 y3 P; T View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
, E: y! l) r9 G& B% A+ }/ I- y* K* h8 A/ N$ k" `% r
( E; r+ V/ p4 d0 H. X6 Q3 G
, H7 F# J7 e9 U4 V4 E
05-02-2009, 20:49 #1
$ v& r7 w- n& O) H- V; l7 x& Vkillax9 1 ~4 V) m1 v2 V
Punk
+ `3 u9 H& P/ R# \. Y 5 I" K1 C$ O7 E+ C0 k4 Z3 Z
8 n; m6 U1 J5 }- ~* A; e
5 J( i* o; _' Y v& ?* d/ L5 k" P- Z7 f) E
Join Date: Jan 2008/ k$ e0 l* i+ A4 U( ]" {, \8 {
Credits: 2,701 [Donate]
5 x9 E- a% U* ?2 J" t F- t% k( BPosts: 103
: J! x* K- z9 O% T' [- W7 j cThanks: 10
* m' h$ z0 J$ t- W% CThanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack!
# U: z) @! w: F" U; B1 e
6 H, k! N2 c/ ~8 ]; Y--------------------------------------------------------------------------------
7 g, i1 [6 ~5 }) |( U# _+ u Z8 l3 J4 N, W$ K9 ?0 K
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
3 U) T8 b2 H# u; X# Z) [Possible Undetected Methods:
) a4 U+ ~$ m' s1 i1)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. \; z- U* }8 }1 R2 h5 P0 }' M
2)another way **** it hack GG.8 H3 Y2 H4 ^; b* U( d
3)breakpoint hooking;doesnt change memory... well changes debug registers.
) m' v1 J4 p8 Q& ^4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin. k" B4 W; E4 D( V+ }( T" z9 b2 D
" f; g2 o- Q4 P& N( K9 x& P0 IVtable:% s% ^5 I+ k9 C- M: }
it wont work for vista its not a vtable hook =)
7 _( Y# C& E( [6 B7 x! l4 D+ h
the reason why my older version worked was cuz it hooked . t. `; i' N) J+ S( T- ~2 n" k
Createdevice->pointers to the functions" n" b4 n/ r* w5 A) m5 e; C
* O* t8 f9 u/ S( B2 r# j
kinda like a class or a struct.
$ I& R$ C. ~4 q" m/ o m5 [; Z
+ T8 H2 }+ Q5 d# P( q3 f- v( Q& G8 ~/ r2 b j( z- n) c$ {3 {
and GG scans createdevice right off the back and the only way u can hook it is a few ways {DETECTED}either when d3d8.dll loaded in....{Undetected}or reversing to internal call inside the game[0x00000] pointer.
/ D6 s% E( h- a: T$ ?% o1 L/ D3 X' n% A
3rd maybe- some games recreate the device when a map loads...like BF1942.
! U( Q4 o. t, f4 s9 p/ Y1 u- M$ P0 |, p- z! g' i$ G* B# a
Things needed to do this:4 j8 t$ j& L% c" y. r5 v
1. Microsoft Visual C++ 2008
6 i7 {) D/ T2 K* _, I2 Z) D2. DirectX_SDK_(Summer 2004)
2 E" w7 g% D5 N/ z* _( z3. D3d_hooks) t3 F; \: N0 [7 T
4. IndirectX
* ^+ o* R$ P! i$ y3 h4 zI HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM, M: n9 E1 X4 ?8 I7 V0 [; Q. V2 X
7 Y" Q8 t/ X' O7 e; T; ]Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
/ T0 b, T. W" F+ w9 G1 h# X* Q7 ^, P) M" `- B1 z/ [" s& ?
YouTube - How to Compile WallHack [Tutorial] 0 e* y7 K+ z% e
9 ?# [; n9 x# ^( ]% V" O( J
2 d! P9 r6 U+ }' e! T2 Z" E3 O4 e7 ^% f7 x" u
Detected Source Code:
8 K$ S: F7 i9 v" C0 i2 {+ k* r* ~8 f8 m! b
#include <windows.h>! \4 f* C* B$ e1 ~* A5 L1 L
#include <detours.h>
E9 D/ W$ [- [, j& _#include <d3d8.h>
; F& Z' t5 a! ?' r% P+ T#include <d3dx8.h>: j' \) f# l, V& ?' P X5 L
#include "log.h"0 p$ [1 n' W) `+ A, Q% z
#include <fstream>
; O5 U- a8 {# [) \#include <iostream>* J3 b% i; m2 u% y
#pragma comment(lib, "d3dx8.lib")9 x5 m) m' m2 ?9 q4 w5 I3 J
#pragma comment(lib, "d3d8.lib")8 ^6 W o/ {& T) `9 @ I: F
using namespace std;
/ ^& P4 G; T# `: astatic DWORD dwBeginScene = 0x6D9D9250;+ g g+ ?. W; X5 t% c$ Z' q+ g
static DWORD dwEndScene = 0x6d9d93a0;6 C" x1 X& {1 g
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
. r, A1 f7 t9 O. _7 i8 [6 p0 X- S3 xstatic DWORD dwSetStreamSource = 0x6d9d6760;. R% ?1 J6 o& C& \8 K& v/ l' j$ v& b
static DWORD dwSetViewport = 0x6d9d5b90 ;3 v# r& f$ a/ j& k! [$ t9 h% Q
7 a, i% L% ~# i; }
# a* r: R8 W( J( C5 x6 {int m_Stride;
' L {$ p/ D+ K$ E: m5 T4 \int texnum;% M& m( }- v% m3 @: {2 x
int nNumVertices;
6 }/ k8 \' Y8 Wint nPrimitiveCount;) J! C8 N8 p2 _" k
" A7 D9 t& i4 R9 Z2 n! uLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;$ C- D# S6 R* v$ z X
bool Color = true;* T2 m5 Z* |$ m1 D8 ~ ]
bool Logger = false;& c J. S( m; l2 c% O. I5 S- `: [
ofstream ofile;
4 W: v9 a& O/ Uchar dlldir[320];
|4 K8 A4 a- e/ ]. I5 ofloat ScreenCenterX = 0.0f;
; m8 B- X' e. b2 Gfloat ScreenCenterY = 0.0f;
* `2 m: x5 V* N( Ubool xhair = false;) z1 V+ o! I7 K8 n+ Z
bool WallHack = false;
9 F! M6 X5 u+ A8 o& w; x* g4 A: Sbool WallHack2 = false;6 E% ]5 H0 e+ p5 _! h! k; h( W
HANDLE hand1 =NULL;6 _ ?0 K* w; R4 k8 S. Z( Q* |) @
HANDLE hand2 =NULL;2 w7 C$ I% M/ R8 F) u# H4 \9 p7 D
: d. [7 A7 m4 j8 F7 C' R* S0 F3 b
DWORD bytes;
. T2 O# \ [$ O& e' f3 ~) b0 E9 q8 G7 X* b; \9 d/ o7 D- A
//Logger
7 ^' I1 j$ [& T; nint texarray[1000]; ' a' E9 D) q# J0 n+ y+ e
int arraycounter;
4 `' n! C/ F: {3 q! iint delarray[500];
5 D4 N/ u* [6 U% @6 Oint dcount;
: ~+ G8 Y8 p, W Lunsigned int arrc;
; V2 V" K. A5 Y% eint i=0;
& E3 j( G& \2 z3 I5 @
# m5 w0 \3 N3 z
3 d0 h3 ^/ I ^" T, sD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
3 j8 E- G6 m: d, G, L: L6 ^" h/ }& c4 i
1 W; P$ g0 X7 Z- ]9 A- nchar *GetDirectoryFile(char *filename)- u) i6 A& @8 u
{
8 d/ U* I; m' M0 t8 ^2 ^static char path[320];
! e3 }6 K/ R% B; j4 ]4 K6 {' Gstrcpy(path, dlldir);0 _6 \/ g& U% B- p, A
strcat(path, filename);+ @* I1 R4 t/ b" x: b+ K* i( U/ w
return path;8 v+ D- A" v5 ?2 V' j6 v9 Y1 k9 R
}
4 `# `) M: j( _* C2 g) L6 Z9 N
5 y: q5 J* m- {0 N% dvoid __cdecl add_log (const char *fmt, ...)
# h/ {4 {) h6 h# Y9 p4 p# X{
1 A' N- p( z* O3 X& e7 zif(ofile != NULL)
6 L3 a! e3 i. s{
* X+ r! ^ a$ Lif(!fmt) { return; }
2 T; j8 d1 L5 Q0 o7 n* X, q! u1 N) S: I9 g' A/ |3 W* v# n
va_list va_alist;
# @! h/ ~' Z* Q1 e) {% I9 Vchar logbuf[256] = {0};
6 E! r* ]. N7 K) h5 m; t
4 g# ~% ~: h/ M! h8 h5 xva_start (va_alist, fmt);
7 c1 R3 d/ S- J7 t& z_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
& n( W4 z% O3 Q5 Z+ [/ m Sva_end (va_alist);" | `: M5 j1 r$ v3 b' S
$ V: Q. S* _. I5 G ?5 dofile << logbuf << endl;, N, b, K$ a$ g8 N1 K0 c
}7 P, t. X1 y j }
}
+ U: [9 p' B1 K5 b& z/ {6 F8 i
+ P, Y u8 E( B [0 B# h" \( ZHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
9 P# Z# T5 a( J& j{& b9 V6 _8 l9 o4 j/ {0 x( H
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
! X& x" s7 W O+ Z breturn E_FAIL;$ N1 i1 ^" W+ X# R T% Q
7 e' e" r! ~+ b8 w! {# C j
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
5 U9 D+ o9 O/ g1 J& q|(WORD)(((colour32>>20)&0xF)<<8)9 K1 X4 O5 h& m/ }
|(WORD)(((colour32>>12)&0xF)<<4)
?. R. G( b: u|(WORD)(((colour32>>4)&0xF)<<0);9 N; O: Q) s. K
0 k& d: d' l; c: fD3DLOCKED_RECT d3dlr; # _0 M8 U/ }$ _2 O D) Q
(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);/ k, V4 t! N# F9 s/ R
WORD *pDst16 = (WORD*)d3dlr.pBits;
; \1 X' H* N F/ ~/ _
/ Z p; U) l7 |1 s. afor(int xy=0; xy < 8*8; xy++)# G0 c/ ~5 W" I1 E
*pDst16++ = colour16;4 ]5 y4 A3 W( v7 j
+ F9 C/ b3 u" s, G$ H7 l(*ppD3Dtex)->UnlockRect(0);
6 D- ` I6 Z% T) X6 j/ {+ n8 D" i' _& V
return S_OK;2 [& @' O! A$ ]5 `
}6 h: x ^* L$ p+ l9 \
& N' }! p2 F" j j) s* ~ R) l1 f/ o+ [( u1 |, E! m8 ^
//=================================EndScene_Start=== ================================================== ============================//
0 ~6 A' Z" { u! Y" A& b" I( atypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );/ r. `" f/ Z: ~/ J+ _( Z
oEndScene pEndScene;, |) U( {6 }: f3 S& [
5 [ t8 X* O+ l( M/ ~; J% dHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)2 h* c" I" }' @9 F, F$ |9 I
{
2 X7 x1 u) X- b6 E oif(Color)
6 h0 {. s( h3 P, e$ U- v{ * u" L- M' ]' j0 N$ U+ a* _- S+ l) n/ [8 m
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
- a- i& P6 |) L r4 t3 r; k: fGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));+ z- V& d2 d. k5 ^6 _1 D" f/ p' V/ p
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));- _: x! ^3 m! G5 ~* q5 G
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
- U$ z, D; d6 U1 y8 N4 s oGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
" w" B+ A& X k8 \GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));# K. o3 z0 h( ?) x# `2 D- y
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
8 q: h) R( _7 M( g2 E* g2 s; n7 x8 oColor=false;
% |7 x3 M9 O1 g9 F}" _" E8 G1 D* t0 n( z) |1 S8 f% k
2 u) X: W/ m( ?6 q# v, S
if(xhair)
$ ~; |. ^6 u/ J3 }7 t{
4 I D) B! _% PD3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
0 D' d) n/ ~0 \; ZD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
7 ^# R% c9 }, u1 o {# L6 h$ VpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
" p/ z8 W# n/ m, SpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);# M- q. l; u0 V
}
: M7 a+ b& l/ l, i0 }7 W
! v X2 d: h7 h2 J; ?0 p//=============================================UnHoo K_Start=========================================== ========//
0 y4 L3 }3 W. _6 E4 f. I/ U) w# Z3 F" J' {. n. W, B
if((GetAsyncKeyState(VK_F5)&1))
7 J: j5 N2 S& p( {{ 5 l" Y& p' B5 A1 `) L/ V
int end =NULL;
4 B- [6 I" _ C; K$ p: ?int dip =NULL;
6 }) d/ S( B7 m; C* Iint svp =NULL;
- }2 W$ ^+ F5 h2 w. X# A( b @int sss =NULL;
) x( C( P$ `0 e( H8 E
0 I; p ^9 [# f, [5 S9 `( m
) v. s5 R$ W" U$ dBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
5 Z) L% L8 Z* d# W% S6 a! K" }hand1 = GetCurrentProcess();
2 s# S0 L0 w* B/ W. _8 D2 \DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
/ }& b7 h7 V! xend = 0x6d9d93a0;2 v# m7 u, M; K3 j% g
dip = 0x6d9d73a0;, w- K; y7 l2 P" j3 }
svp = 0x6d9d5b90;! h5 ^! a+ V8 ]" y; x
sss = 0x6d9d6760;6 o8 Z) s% c$ W5 r* ]* Z* b
" n! O9 h& z* [! _
WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);& F3 K) Z2 }6 R5 {
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);% M1 r2 _& W4 |* ] l
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
2 u( F& j: X3 t' Z3 [5 \$ a& Q+ U9 F2 {WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
1 j8 [" x( F- K9 p. a q @} $ I0 b1 ], y% e* u2 x$ Y' r2 C
//=========================================UnHook_En d================================================= ========//
) q) H0 b9 O4 X" C( H3 d, l2 d+ Y
9 R2 B7 p0 c) Y& k9 O* H4 b1 bif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
2 X8 S9 D( x/ J. k% f* m" |8 J2 Tif((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
5 f6 P) u K9 J8 g s# u$ b! e% Q i7 p! \
return pEndScene(pDevice);$ f) S2 a2 G* J5 n' p/ p
}& ~4 n" Y4 u+ @7 t/ K* \. b
//====================================EndScene_End== ================================================== ========================//
/ {8 z9 r; g, ?$ Y4 p( x9 ?. O& v4 [/ N- X3 q7 F) n( o) w
* F; ]2 f v* ?
6 {5 p) y$ k! w5 y5 P" o
1 Y% T- n4 V. n) F& `7 G9 O
//=================================Dip_Start======== ================================================== ==================================//% X7 ?1 ^- j- k% R7 Z
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
, W* Y- I" I4 j1 loDrawIndexedPrimitive pDrawIndexedPrimitive;. |; {# I1 ~5 D: |& o+ k
* ], _4 b6 Z9 ~/ b) `, j
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
/ _ s9 K% }; |& g3 b{& g; w8 A6 n! Z
+ R9 `( ?* V0 s/ c( e3 Z
; ]- n) U" R% p; o5 h: g& S/ {( b4 d" u0 X9 {
4 [$ M: Q2 e9 P' r2 w0 k
if(WallHack)
, V: q6 Q4 d) ^& L8 e5 ] E{3 W- m7 ^1 Z- n1 P
texnum = (nNumVertices*100000)+nPrimitiveCount; ( B: {/ x! H0 M) w
if(m_Stride==40 && 4 f8 O: k- F/ g
) D- t4 o2 e: X" N6 f* s( {
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||
% p0 C. N& v$ J/ v6 m(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
/ L" C3 q4 L0 ~+ `(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||
+ Y3 [' {6 W: p, g3 k% V H G1 W(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
1 [ f6 k# F/ e4 R* ^( P(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||5 r/ V8 \, d1 O3 W* M/ `5 ?
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| % c+ s5 ]3 }: v5 Z! c; q3 T j
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| - z0 \# ^5 @4 t' k" {
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| 1 H1 g0 m) c3 j& z6 y' \0 {
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
+ ~7 Z" h \2 J0 k# E4 ^(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
# g2 |' {; i J# ~: T1 O6 f(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
8 z% W# x. N4 y" j
0 R' m8 v- [4 @* I9 j. j
4 \+ C$ N7 L ?( {; U7 {/ u0 k. X l9 t, V
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
, d% H3 h+ v( I- i4 z) X(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
8 L9 @9 P+ ?# R% j' x6 u$ T% P/ q, [(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
8 u- `& d: U8 ^' U+ A3 ?(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm 2 t1 ~% P, U8 Z7 G# d N
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)4 o7 I* A, g* |) Q0 y
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
) O8 z! c5 \$ j o% M(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item : {/ s7 j% K2 s" V# E. I
(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest 3 ` B4 r+ K; \! s* ~ S% h
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
B& |0 k" p0 ~* h5 g1 b9 m) C. Q6 h2 E E8 A
{
+ {- \7 J3 Z7 _: M1 x! g. |: FpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
, \. C" n |; B( H3 opDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);- r6 b* e' A" D
pDevice->SetTexture(0,Orange);
. B, z3 c9 u6 P6 F- ^# ^+ {1 ]7 |//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
5 @' {) h# \3 H9 z; N& }
( K' M( T4 q! H0 v7 I6 k* y6 SpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);! |. s! G0 |$ X1 W: e
. r9 u0 R' _* E3 j& O' J6 P5 | O3 Y
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );' K) |& K# Q1 s/ {' W1 o
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);" Q( B) B2 a% ] i! E) u
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);3 F ?! k0 {% q) u
pDevice->SetTexture(0,Pink);5 r6 A& e( z+ M' U
} , g; Q9 Z9 d4 K* P
: L/ q1 F6 u n5 p3 O' l b$ Cif(m_Stride==40 && texnum== 21300174) 7 \& E6 l6 M# ^" ]" [5 ^4 d
{
* }# k3 N2 [; A$ Q; [( d. G( tpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);3 ?* z! r" h( n5 P; F' }
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);$ d2 E& H4 i' M% o/ T8 c: K% A
pDevice->SetTexture(0,Green);//GreenNade
: F* S- T. [) f* q) W- Z. ?6 ZpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
7 ~3 J# \+ k/ ^pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
% h6 P8 y3 H8 mpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
; x' w- G" a$ N, B, |. ^ A+ CpDevice->SetTexture(0,Purple);* z* s0 [' a3 g8 j; n) C
}
2 j P( k( F) q3 a; h& x
0 x. D2 o4 {! S7 Y9 l: n
. S" D' n+ \/ U* l, I7 Q( Pif(nNumVertices == 158 && nPrimitiveCount == 131)3 _4 j: w* \. a! a4 [- ~. c0 L! \( F: ?
{
* G" x' `( {" jpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);$ d4 O! Z; e% C
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
5 r' Q/ n- u# ^7 HpDevice->SetTexture(0,Red);//GreenNade& @+ v' L; X! @
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);1 b6 O ^. X4 ^' {/ N
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
( @4 h* `% ~8 {9 {6 UpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);0 s/ }- _* Y6 {5 v) d* E- u/ i- m
pDevice->SetTexture(0,Yellow);
) p2 C) x) H1 p: B/ K5 r}9 Q+ P1 }' j! W' x6 F9 }
6 }8 ?# H. V/ ^6 I0 N5 m
if (nNumVertices == 171 && nPrimitiveCount == 143)7 o* D' m, \4 e& {
{
/ A% j6 D8 r9 B' s% E9 W ?. t) o1 Q _1 k
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);% i& n' q5 p# _
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);! I$ s0 i# x) s/ Z! p
pDevice->SetTexture(0,Red);//GreenNade% d( k5 g* @, z. b
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
8 C/ E7 B8 ?5 |3 VpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);; M T2 v1 P M# E* \. }3 @+ K
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
/ Y" |' n* A3 PpDevice->SetTexture(0,Yellow);
- ~" j) U" f f3 Q9 Z}, w) a% @) v/ T9 a4 |
* i+ v# j4 J0 [. I* `7 z9 x
4 ]1 a6 J1 m, _4 h6 |% m3 b- c, e1 P$ f
if(m_Stride==40 &&//face,mask etc...2 _, n! m, V/ F; J+ q
(texnum==36700612) ||
: ]0 k. \3 l7 |& O; J2 t: Q6 |(texnum==9600172 ) ||, ?/ f. R, z* _& U
(texnum==14200236) ||
7 v: @* [- \4 }; G/ q0 u(texnum==37800552) ||
. N$ d5 J0 R" G+ H7 H" X7 |(texnum==28100486) ||
" T( {. Y4 _, Q( h; l(texnum==35500568) ||
7 a2 d! p2 _8 a( O5 ]- j(texnum==2200024 ) ||
q4 F: [9 [( ]* V$ ^% q+ c* L(texnum==16200243) ||/ H9 t7 a+ o5 ?) C( ]
(texnum==31900466) ||& s4 @( ~. R: Y, \. \. x) o
(texnum==19300342) ||" W% c6 _8 l1 Z3 S) J7 H2 L
(texnum==36200604) ||/ Q$ f9 h- w$ A6 a+ E) O% ~
(texnum==21300290) ||
" {4 y- d; g" G) Z(texnum==35700558) ||
4 \$ I+ H* D& r, ]4 k(texnum==22100396) ||
~* s+ \+ d% n8 p, A9 d' c$ `(texnum==36100604) ||# G% Q" p' Q3 ]. H1 p5 {9 |
(texnum==27100464) ||6 A& W8 q7 I$ s3 x9 T
(texnum==11400180) ||2 n, ~% n! N( ~. t3 |1 F, G
(texnum==34900580) ||5 [( e y4 T# }1 f
(texnum==13200212) ||* v$ @( `( s: T6 y f# I- v
(texnum==34700538) ||
, z8 h2 z" O$ y- B0 \* g* ^(texnum==19500352)&&% Q2 C4 R9 t' ~9 D: w
(nNumVertices == 448 && nPrimitiveCount == 776))5 B8 A, c2 I$ Y6 A7 u5 I b" N
7 ` L- e: t2 r/ V- I& ~
{
7 z2 [0 \4 i, q( j% JpDevice->SetTexture(0,Blue);6 h7 ^" P) }* Y2 M& B
}# @; b; ~, W& T1 I6 v. Y
( {* n& } `0 e9 I0 I" b
4 r& ]1 M+ ~3 |+ ?! {% H5 v+ j{
9 {8 |; c( X O7 b; P9 K5 A1 fpDevice->SetRenderState(D3DRS_FOGENABLE,false);8 P6 S! G3 W# x
}! L. s4 g& V( `, M! v$ |& q" H
- H; B4 N' [% p
/*Logger' F/ D; H8 [( v: d
if(m_Stride==40){
( V# e& F5 O% D4 G8 y; A2 p' \$ r% e6 N: Y) U
+ G4 A; Q5 W1 u, k! I
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray: S" ^- o# Z" r; s3 e: w
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;* a' {8 D$ r8 {0 T* i# L% n
bool alrdy=false;
8 o4 d. ?7 P$ F" Z( Ybool inarr=false;% b( d, Q3 q/ O& {9 B
j# Z5 Z6 ^! }% a6 M" Rif(texarray[arrc]==texnum)
, | s. `4 n& T4 Xif(delarray==texarray[arrc])
$ I% F: ]( {. Qalrdy=true;! X5 Y( Q+ F' N+ L( |9 H5 P
for(int i=0;i<dcount;i++) //sees if said texture is in delarray
' d/ M0 W0 x: _, xif(delarray==texnum)
* D8 R I3 w5 m; L8 \" C+ b, Tinarr=true;
a4 D8 r6 J8 z9 v( W/ Pif(texarray[arrc]==texnum || inarr){ //If true, color model differently; u: b% a3 [/ b; G; W4 u
LPDIRECT3DTEXTURE8 texCol;9 I) `$ p$ K. @7 Y1 g6 g( k
DWORD dwOldZEnable = D3DZB_TRUE;
" i9 `& V! p: u+ {" |0 | {pDevice->SetTexture(0, NULL);
' A; f( a& N# M6 {' _" d! cpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); . }4 z1 I) K5 t/ }+ T2 t3 `+ U
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
: p6 n, l/ R0 Y; ?" Pif(alrdy) //Different colors for selected models that are already being logged (For removal from array); R& Y6 m9 I& B# k
texCol=Blue;0 d5 _# P8 n* M
else D& i, G2 r$ Q3 L8 @8 R
texCol=Red;
- j2 |3 @0 g# @- O+ r; q, `' _pDevice->SetTexture(0, texCol);- y2 n9 F5 W; [! d* ^* X+ ]
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);/ Y- n# G+ J/ v0 o& q
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);% O# ^8 k3 f3 c+ S
! ^: g2 B+ v8 Q
}
/ W. b: z; y8 _: F. I$ b7 |! f* o}, S$ b( E! c# R: T, d3 H f q
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile6 O: F% e0 f1 B( z
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array! s* r- R7 a0 c
bool inarr=true;, q5 ~% K* {2 v, g9 {
for(int k=0;k<dcount;k++){; h% S$ w K1 j3 \2 C& P0 l
if(delarray[k]==texarray[arrc])" \: X% a$ z/ n; A7 u. c: i
{
" l2 S" r7 W+ ?# }7 ?inarr=false;//Found selected texture to already exist
0 V: ~% a- g5 o" R7 y, m1 Y; ^0 Xdelarray[k]=0;//Delete texture
! F$ g2 `& `8 e5 Q( `$ Wbreak;//Cancel loop
# }4 u2 P7 o4 Y% O}/ u9 E! p$ j4 K* X M
}1 R6 n; ]" v9 e7 @
if(inarr==true)
# \7 i6 u, J$ V8 A1 F' \- h{2 M* D/ Q# ^% x9 S5 v8 ?
delarray[dcount]=texarray[arrc];//Add texture6 ?9 ~& c4 C9 ]$ I0 d9 L6 J6 D: C
dcount++;. f& q& z+ N: P2 C" M- W
}
, ^7 Y& u$ d2 q}
8 g# C9 m! z% S: {if(GetAsyncKeyState(VK_F7)&1){
# h2 z d! Q6 x1 lint total=1;9 u4 y; M( {8 ]5 Q) n& P
add_log("omfg values?!? {");% S/ A3 L; q2 h g/ i
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format& v+ i: a- ^! P5 x) C
if(delarray[x]){
" ^8 C4 X, Y& U& Tadd_log("%i,",delarray[x]); //add_log2==add_log but without endl
7 {; O0 I( i" p A! e9 a3 htotal++;- V5 x! a/ F; ]1 m5 x' G( ]
}: P K7 I6 F. e" B+ a2 p1 r
add_log("}; %i variables in array",total);( [2 u& O: k6 B. d" I$ K. r+ Z
}
- D9 p; a& k0 I& r `( p4 a. X: ubool found = false; //THIS PART CREDITS TO KRYPTEC5 K2 H/ F% b' j: N$ K1 x6 V z, i
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION) ~- w }6 ^$ y$ s4 l, |! P
{
* w$ T3 }% H' i+ b/ `* Lif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
! _2 a6 p" ?9 G7 V9 C( c}
1 W' I* H$ L( r8 Xif(!found && arraycounter < 1000)2 {" C$ B8 n8 z: W% R
{. B1 Z) R/ {, D: O: }7 M
texarray[arraycounter]=texnum;3 p% q z% s9 E* C" P7 j
arraycounter++;
+ H) j0 y! ^( t1 B}*/
- k$ x- s7 X$ M: ~- O, r$ P$ y0 R' [* Q, j
. \; K( `7 B4 Y, [( o1 }4 _6 S
}9 _4 W3 f& Z& N8 N- q; [% K
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
( B: Y) Y B: f4 l}
- n8 H7 O. F, p5 F: I6 A//=====================================Dip_End====== ================================================== ===================//
3 e! Q, }$ r3 T0 S1 o2 X5 I0 _, J, O$ L
O" q! b4 I( k% \
//=====================================Sss_Start==== ================================================== ====================//2 V. f3 b' e9 F( x7 ~6 B6 Z( E! G
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );( S2 M, p9 f. V E9 o* Q; l
oSetStreamSource pSetStreamSource;& t% y: A3 j' }. _$ m2 U' ]
0 Y3 i; g2 F0 z/ pHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
1 }- G9 }7 \+ l{& z D) Z S" K5 G% K0 i6 [9 \
if(nStreamNumber==0)
# U2 o1 J% G. X: A1 H# qm_Stride = nStride;0 J1 o! C* Q: P
8 o/ R" k& h4 d! i Z) C. b6 ]. U
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);2 C1 |! U9 e& i: C; r
}
* P9 ?9 q8 t: z* N. Y d//====================================Sss_End======= ================================================== ===================//7 T" c6 [- A5 U- Z) ~
0 o$ y: e9 O- T" Z//====================================Svp_Start===== ================================================== ===================//! ]' h$ O: l7 d
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);5 z: @& M8 k, f3 Z5 a9 |8 L
oSetViewport pSetViewport;
) ?$ {" V+ H" _/ d2 ~1 c
}+ U# _0 t3 C& f/ J! ?HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)4 V, a1 h6 y! c6 {( s; ^! @
{2 c; j% i0 U B. `
ScreenCenterX = ( float )pViewport->Width / 2;7 w e) [& W9 E6 B' s" e
ScreenCenterY = ( float )pViewport->Height / 2;
! b1 M. r- W7 h" H( p
% D. W, S; |( o# y* ?% Wreturn pSetViewport(pDevice,pViewport);
# \3 w# _, S, L" f}1 ~8 v1 f8 n# X) t! i3 o$ H
//===================================Svp_End======== ================================================== ===================//5 c' o' j% a/ T# s' _- A* d2 ?" b
& E8 e% \! T5 U. N. ]typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );9 k% C: A3 j+ V, S8 X
oBeginScene pBeginScene;
( K4 I! Q, [7 l9 l1 {2 h: X* ^
, B9 @1 `3 O: e9 x/ _1 u8 vHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)' o& `1 L, p; s
{ L( q8 b8 Y9 z% a1 Y$ E( @% x' z
if((GetAsyncKeyState(VK_F6)&1))
5 p' T! ?! X& B; N2 O# @{2 h+ N9 |0 s$ m* T9 L% e5 p
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
5 Q0 ^; f% |1 ~; p" O1 \pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
* A7 _5 x+ j8 x- {. }3 y, h! LpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); f, `& ~2 e) C( T* r& K% Y9 J
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);7 z. n) @3 `5 f& D$ S6 t8 K
}2 c# m1 P! Y$ ~1 ^6 B. k8 v
9 l. I9 F7 O" K a( T1 N* v: d
return pBeginScene(pDevice);4 h4 h9 U# z" B! p6 F
}% I' K) x2 k# j% p8 M- t- Y2 {
+ M* [0 Y5 q5 H7 l$ T0 M, I7 z5 {+ [4 [6 X6 e) G0 f* {6 i0 P
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )( w! P C$ I: {: K
{0 y/ t9 b9 u- A2 m" d
DisableThreadLibraryCalls(hModule);
7 t8 K5 Z1 W3 _; L, s8 w4 z2 x+ f- w% p. h; J$ }4 f8 A7 r' R
if ( dwReason == DLL_PROCESS_ATTACH )2 U; h9 a7 `$ R. S% a
{
# c+ m, N$ P8 J- w- g2 \( C8 v6 o. f! Z; W
//=========Log==========================//
# j% R+ n- P2 z( ]8 w1 R! i2 }9 VGetModuleFileName(hModule, dlldir, 512);1 G6 ?7 `8 v/ l2 e
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
/ l' F6 X; W# ^3 `- Jofile.open(GetDirectoryFile("log.txt"), ios::app);
5 f7 {- u; T* i//=========Log=========================//
( P& P. \6 S: y4 E2 H1 b6 g0 o; o5 l1 J' E# }
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
7 T+ p& o0 `0 n3 u D, QpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);7 X# N) {5 S' x
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
2 G) Y) `; O' DpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
, v9 z; l4 C8 N* _8 TpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
5 k3 S, l6 D0 D. p$ r, |% V7 Y' _* A! X O7 f+ h+ N
}9 {1 L" r U4 e% x) ` F, ?
return TRUE;
3 x$ g) n, L# _" t: H% S+ E e0 Y: Z}
# C% S. m/ J, V5 ~
4 ]% t7 Y! A* r' h- Y
% U; ^, i& D8 B' Y* C. J* nLog.h (The header File):0 v& d( y, t u% ]
, m: G6 q5 z! O3 F#define WIN32_LEAN_AND_MEAN+ `1 u/ x! _+ R7 M M' Z# l
! V) w$ f6 w. ]* P; A
#ifndef _MAIN_H
6 L* D2 T, `' E P#define _MAIN_H
* x! [$ S) W0 [7 g: E( E" Z
( y& ]8 }5 a! nchar *GetDirectoryFile(char *filename);7 e6 O0 V* K; R6 m' i! h; @, ]% q
void __cdecl add_log (const char * fmt, ...);. x- m/ T, ? [& ?+ U0 a
#endif
1 {% P; b' B4 a# N/ k: B0 P. K7 U
Now after you have built your wallhack you will be able 2 find it in :+ Y) E# X U, ~$ h9 s7 ?
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that). G* b/ p0 C* }6 ]2 J$ N# k
0 ^/ k$ _" g& U9 _+ C
Now I will show you how to make your wallhack undetected:9 ^5 O& G8 I+ E v7 X) v
1. Download D3d hooks
, ?$ }1 I3 s% F2. Open the file that says "create device code made by me.h"7 t5 T7 W0 c) o* U: F7 R+ a
3. You will need to make another header file in your project and then put name it create device and paste that code it.* Y7 N3 V4 Y6 C
4. Your wallhack is now undetected.' e) a; `* c3 }- g Q8 G
7 K- U# d, W' z: \/ o. ]Credits:$ q7 V# v0 } k) `2 i
1. ME FOR THE TUTURIAL p/ f1 @. f9 H+ [; Q4 ]9 o" ~% ?7 s6 N
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
; S* J5 _0 B- s6 _ u8 u3. FATBOY88 FOR THE SOURCE CODE+ p: }. a }0 h i; b; Q; t0 |
4. THE INDIRECTX I JUST FOUND :P
! e0 E |) a' U/ ~5 m: ~1 p# N% i8 G) P
Attachments:
; n/ i3 x1 g$ v aD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5- ^) `% W6 K2 u. i: Y/ C7 @
IndirectX: http://www.mediafire.com/?gimzgmeny11
4 d( Y- O. X* G1 A. M4 j, ~4 oMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5; J( C9 \3 w/ v9 T
SEARCH THE LAST ONE UP
( u- V) P+ D: _, M4 z__________________
) J8 E- W- n( Z( b3 t$ D; b, B1 Q+ B( W8 e: k
<---------- WALLHACKED |