原文, M. w5 b7 \) }+ A
http://www.descipe.net/forum/sol ... -your-wallhack.html" M# ?6 ^* c* @1 u, |
4 L1 B9 w5 j9 Y k; I: s( ?视频教学
& G/ C+ p3 L, {" \http://www.youtube.com/watch?v=6b5XMzT-b_U
: B+ N5 @: F: ~- f, G4 E1 F2 B1 i' v& m) }- }* L
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
4 r$ H( S$ `7 m4 t+ N* Y. m. T. q/ Y+ {4 i& n9 U
Hello shane007,
* u8 Y O! x5 xOur 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. : m6 w. O+ [( I* |- }* s1 S3 A+ w
) `' m; U" x( ?& j8 P" [Why not start with your first post today and become an active part of DEScipe.net now! 2 P8 i: v8 U( k/ f
% p- {8 j2 g' R6 A. `; o
- P+ b' B- z" @9 \6 j0 X2 ^. R
- L! U! F8 U( n/ c# ^ DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats 6 Z- z2 }+ R" k* R
How to make a wallhack and how to hook your wallhack! 7 P( D5 u4 l1 N; v# k
Welcome, shane007.
0 Z+ U& W' W3 D0 k3 c, v3 ?) TYou last visited: Today at 03:55 & r7 n1 S& k' k5 K' A
Private Messages: Unread 0, Total 0. . p+ T( g& @( Z
Credits: 200 [Check]
) X% v5 C: C5 e+ U+ X1 _8 e' g" b& i- U$ R" A' @, u# ~* A; a0 q
Home User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
. \/ B3 y# X4 ~- _# V
7 v. M- o6 K. D; a: u8 _8 [; N# N8 b3 s* b- G
) O0 |- ^- {3 M" o, n$ y
Search Forums
' r$ K4 n. Y) z3 D' \4 H% a) Q
: x9 J* G8 o" F5 `, A# F4 M- k& Y4 F" F, Z% l8 x
Show Threads Show Posts
; ~- k& M1 ~6 PAdvanced Search
( I; \9 T7 d) r% u. P1 b% wFind All Thanked Posts
) U9 v9 V G% }$ {+ J. b
+ O7 U0 y U% ~, k7 Z) F" G/ h; KQuick Links
, h- [! P9 O; R: @) I. v, j1 |Today's Posts 7 `) ^$ X2 r0 ?+ k
Mark Forums Read ( h8 W% N1 F! s6 @! e3 t1 K( `
# l* s' a: u. r/ xUser Control Panel . ~4 H2 i1 B1 O2 s+ I4 ~
Edit Signature
1 q: X) V1 d: r6 i; s
% I5 S( n9 q! z2 d) DEdit Options 5 q- _. ^! ^3 B+ m5 s; S7 o
Miscellaneous 6 V0 r0 Q' _6 F2 q- A. C7 d
Private Messages - J9 `+ `7 Y/ ]: ?
Subscribed Threads 0 B8 b- H) W% l. X4 I
3 p0 G1 X" x/ c/ A! t; Q; a. }' s$ G$ {
Who's Online : K' @9 N7 v$ y2 q# ?! S9 w( g
% \0 S5 u1 h) {Go to Page... / ^6 p0 }$ B+ A/ ] m
8 b/ |0 s3 w& r5 M, y: m: U* @; FHow to make a wallhack and how to hook your wallhack!
' T( G; V" Y- E( qThis 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. ... 4 w, T+ B! n) X
4 a: }) S, M8 j. C& j Poll: Was this helpful?
3 ?9 ~* R6 V/ `7 u6 {* oPoll Options) e- P' l3 _8 [$ N
Was this helpful?
T2 F; L; y; n8 yYes, I WILL press the thanks button6 ^8 _: G2 m( Z8 F+ C% `
No, I am a failure 5 I5 E$ s8 M) X5 R- O" T
View Poll Results
$ B, A/ O4 b+ O* M/ O! B1 t9 g, N
Page 1 of 3 1 2 3 >
+ }3 Y" {" V" H# e
* k6 Y1 j! W( `/ k$ \8 u View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes
; E$ I. z; l: }8 S: S
! x/ ?' g5 P% ], w0 _
& L! A- Z- w a" W9 H4 u1 E6 Q2 j6 o
5 P! ?; H7 k8 I, W2 Z 05-02-2009, 20:49 #1
% _7 w% M+ }9 Y5 bkillax9
' \ P& V& R/ @ v* V# JPunk
# l7 b+ w2 a9 j0 K' G7 ? 6 ~* Y+ {& z0 [! `4 y
; ]2 I5 Y9 V& k3 h
?' M# ?3 n! b" e' w2 j4 F5 @
5 I% W! v0 H6 c9 FJoin Date: Jan 2008
) o) v3 q5 j% A7 W" m% a2 cCredits: 2,701 [Donate] 1 I+ i. d: A6 ? G2 E7 U, a7 a$ w
Posts: 103 $ K5 ?: M" f4 d; |6 M: g3 ?4 M
Thanks: 106 G+ G$ O/ y& f! x" L. b
Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack!
$ g: y2 }. Q# | F( h j
5 u9 F5 K% d! l0 T; Z7 c' o--------------------------------------------------------------------------------" F! J+ W$ r& V
% d( o1 ~; q; S8 N$ E2 Z$ Q1 SI will be showing you how to make a detected wallhack and then hook it for it to be undetected.- _5 i4 w% A P, `+ c( z8 N
Possible Undetected Methods:3 E# i7 c$ B3 m% V
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.
# G: G7 [+ Q6 u2 X1 |. r# H& O2)another way **** it hack GG.
. T7 R5 _/ F6 T& Q! `3)breakpoint hooking;doesnt change memory... well changes debug registers.
0 v% O8 v) p& `2 I- m4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin$ _% h8 m1 ~" W& U; E" v
( K- M, P5 U$ @. V/ OVtable:# {, [ M# N$ I, \0 A Z3 l% Q
it wont work for vista its not a vtable hook =)
7 e: M) ^9 U) C9 G2 `1 c
B: X2 M; H) a0 Sthe reason why my older version worked was cuz it hooked 5 |0 ^1 c* _. ?7 g6 _
Createdevice->pointers to the functions# u. Z9 [1 R$ X9 V" D7 ]! t. m
% B2 `' s! ]% F8 o, P7 ?kinda like a class or a struct.* a. x t" H+ O3 ^2 h
- ` h& B' w3 D ]5 G
: Q" E2 B Y+ _
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.& i% C7 R9 d/ D/ z
: ], ^, a7 Z# g; F; a
3rd maybe- some games recreate the device when a map loads...like BF1942.7 J. U2 a0 M! h
0 V; c4 f8 k6 FThings needed to do this:$ x, Z3 h" B- U$ U, c! Q
1. Microsoft Visual C++ 2008
M r6 p. I: w3 [2. DirectX_SDK_(Summer 2004), N% J: R5 ~# T$ p9 D1 q
3. D3d_hooks
% c. X! s U' k* ~& ]) _4. IndirectX8 Z* {! s( e# z4 g# }+ _
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM6 n* v, F5 r/ h, Y2 M7 y3 q
8 L$ B+ S* o t' n8 A ?& b6 ~& RNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
. [2 I K( f9 e$ O5 {
1 B5 s7 r2 h0 y; _3 zYouTube - How to Compile WallHack [Tutorial] * b1 m# S. z9 c. H( w: m. @: A
7 a: m' `# i9 @' K! H- o% F6 e6 E. ]
& P# E S7 L% v; v& v' |
, a7 w. g! O+ z& Q
Detected Source Code:6 C# b3 t" _2 e" t" E% D- y
) K6 U' G/ ~ R+ L; g1 r7 m#include <windows.h>
9 ]) j: C8 }( ]#include <detours.h>. H; A6 P- t4 E/ R. S. {' o' p
#include <d3d8.h>7 ]9 x h; \6 P% K& U
#include <d3dx8.h>3 J9 N0 Y! A; ]
#include "log.h"8 w- y2 M7 S3 `) } N% G, b3 k
#include <fstream>
! z. V8 M8 u4 t5 C/ w* o. i+ @#include <iostream>- m7 v& `' Q! g3 r" v
#pragma comment(lib, "d3dx8.lib")
+ s( W- Y P9 e' q1 K8 V) C#pragma comment(lib, "d3d8.lib")( }8 F8 t' m3 B9 _+ f- L9 X5 I' r
using namespace std;
% M" p4 j; Z$ i8 M( j% {+ ~5 Dstatic DWORD dwBeginScene = 0x6D9D9250;
2 e1 e7 a% y" @, X5 o7 astatic DWORD dwEndScene = 0x6d9d93a0;, Q6 T' r2 t9 j3 L% S4 z
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
% G& ]! n$ f7 t0 L1 M0 ~static DWORD dwSetStreamSource = 0x6d9d6760;
0 i! e0 ~, y3 a* Z" wstatic DWORD dwSetViewport = 0x6d9d5b90 ;6 [8 s; R& g! h" G' a; ^ C. ]
2 M( [3 ?! f. h3 @3 f; E7 N
: R6 ^3 [; V O R; U6 ~int m_Stride;
Q" P+ Q$ G, T" r4 @8 Sint texnum;; Z4 z8 W, a/ D3 G8 `4 ~
int nNumVertices;0 U/ C& A. v& q/ K3 s* O+ c- L
int nPrimitiveCount;/ Y) E: o, O% e W
! ?- g; |$ s4 d/ V* s* e3 }& N
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
% y0 Q3 W4 ]2 ?' g: [+ w- T% sbool Color = true;5 I9 K z6 X. S" p/ W" t& X- N
bool Logger = false;
0 k& O: l$ _* C$ I- i& A, Aofstream ofile;
. x+ h' `- I0 w( d- g0 n7 v: {char dlldir[320];
2 L- H& p9 }) i4 l; u! t$ |float ScreenCenterX = 0.0f;
6 a' w7 v- A T4 ]/ z. z0 Afloat ScreenCenterY = 0.0f;& U5 m5 |0 s2 ^
bool xhair = false;
" I& W7 A; c8 |. Q1 gbool WallHack = false;
8 V; v5 l( V! G0 R! Rbool WallHack2 = false;
# R9 t/ \4 }# y/ R: ~/ U0 kHANDLE hand1 =NULL;
3 M0 |. m, O C7 CHANDLE hand2 =NULL;8 e( D4 n! ~8 d @% |/ T
$ V- X9 G5 o3 b; _7 SDWORD bytes;7 E" `; E" ~) t" @- a1 i5 N, k
: s* o5 i! ]) @) l8 x$ w//Logger5 K2 P7 K, [' j$ i5 T( N
int texarray[1000]; 5 X. C4 F; F" d: Q8 ]% W
int arraycounter;
6 [' t1 d& B0 m5 ^int delarray[500];
, x" c* N2 K& O: s+ \+ |int dcount;
" ]2 Y9 _. |; U2 q/ Junsigned int arrc;
$ I) x3 ^! w7 Yint i=0;* [$ @; _! b' z& w8 h* T
% x+ ?* v* D/ s4 Y: T
: ~6 @. r6 b- ^1 v5 l$ @* s
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
* z! {1 p8 K& v- t3 r' W5 z
9 B- E' r4 c: |5 N* J8 u% ~& Y$ c) p& ?7 ^: s/ Y4 t
char *GetDirectoryFile(char *filename)& @1 D* e' V, R& @# U
{
$ v/ ~) Y1 ?1 e$ estatic char path[320];
! ?: z: y% H$ Ystrcpy(path, dlldir);
6 t9 a) ^5 D4 A% V2 mstrcat(path, filename);9 j' T8 Y: X8 s& o7 K
return path;( ~8 f8 k$ s8 e* s3 D# e# g
}9 s$ M$ s( N0 {" Z
F6 n8 R0 t# |void __cdecl add_log (const char *fmt, ...)
* N+ H% x: w7 t& l# R{
/ {1 X) Q7 O0 G3 k y/ {6 N; o' |2 ?if(ofile != NULL)
! j! F2 }- z+ I1 m% Z{- J8 G3 g4 d2 R2 a
if(!fmt) { return; }
- l, l# v; Z- u8 p2 p! H' Z$ O+ L u8 H$ S" m0 X' u E) w1 g0 W
va_list va_alist;
& ~- I- f' P; b) Z. p" G T8 E% Bchar logbuf[256] = {0};/ m' z' z5 F, I7 {# O6 U
4 [! A. o+ j' V: n% `va_start (va_alist, fmt);- y) G% ^+ b- K0 M- i6 u3 H
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
9 N# S3 h: a u* ` e6 Q; }! K9 m, cva_end (va_alist);8 `& F' g1 F: M V" I9 t7 N
( R- E3 B: O2 F, Bofile << logbuf << endl;
4 v4 ^! e4 |( E) L1 @2 ?) n}
9 V: {' W- O7 U/ p* q) A& S}
1 n" X- z5 c: d* F0 @4 A7 r, ]" R! J; D$ \# _( h
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)4 T5 ~8 _: \: i/ y+ w, X
{
. W* q a; L% m$ I! g0 O+ N% d' K9 nif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ): T" b# A: F) B$ e( G6 j
return E_FAIL;5 o, |/ p4 ?8 q, y p+ o
; `9 h- ~/ `9 F7 U% q1 S0 XWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)# J/ W8 a. O/ h
|(WORD)(((colour32>>20)&0xF)<<8)
% q/ E! h8 @5 {6 Z* Y|(WORD)(((colour32>>12)&0xF)<<4)2 T K- n% J, O: p" c8 k5 `2 I$ j- h
|(WORD)(((colour32>>4)&0xF)<<0);
7 h$ U g4 G! q" `# @6 y& k- Y/ Y3 h3 J
D3DLOCKED_RECT d3dlr; ( v/ P9 d' V- _
(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
8 x* K" n. m# {3 S: {1 dWORD *pDst16 = (WORD*)d3dlr.pBits;$ n a7 m* H1 b# \/ s& |
" N, n) _1 v C# t
for(int xy=0; xy < 8*8; xy++)) ]5 {* h) w4 E( W9 r" v8 n* p w" o
*pDst16++ = colour16;
8 K, t# f7 ` e3 F7 A# g" C3 x+ p
(*ppD3Dtex)->UnlockRect(0);
3 y+ c0 c3 h% R" P, N9 h. ?& K# ^: `0 h$ \$ T7 J8 }1 k; i4 Z% I
return S_OK;! T! T7 b% h! `2 U% y& B% S, S/ k! S
}* ?9 I* j- k `8 K
1 a6 i+ |9 n8 [' B! A1 `3 O8 w
: H$ ^' t/ m; ^+ k/ L* S//=================================EndScene_Start=== ================================================== ============================//
5 R- [% t: ?' k9 I4 x% Y! q' h ]typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
2 K, }; H* Q2 K& R1 ^4 f' H* `3 ~5 ioEndScene pEndScene;( `# F3 }0 T: g5 }0 H
& \9 f) @3 g( h6 L7 dHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
8 }# g; J) E. }- |! Z7 `{: T# G# R) K9 C6 ?3 ~
if(Color)" X: @- @) L a4 Y( r& J
{ 1 b) ]7 [# B, K: A4 s
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));- }' L+ b1 Q! g& s! Q( E$ L1 f) d
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));5 F( T; S/ w" h, g0 y8 Q# A
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));" r- p9 d' a' E2 x+ ]8 M
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
" P; a9 F; S! f& ZGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
% ~4 f1 p z9 X9 R8 v8 hGenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));( ^ y2 J7 e4 \- L( T8 Y
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));2 q6 [1 E) f- E. _; k! P3 ?
Color=false;
* a. ?+ e) [# n1 `- h. ^}% E: e! Y" p8 p4 S& c- _/ O
, T4 K! A) Q6 n0 x# i/ o. Kif(xhair)2 X, B. i$ V* Q% ]
{. Z+ d1 v- ?1 n9 g0 Q" F
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
5 z8 d& N* B( y. {D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
6 j; Y% H2 N0 cpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
6 G+ g9 P; g. O1 C+ ^pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
* T! v7 w b5 g; ^# n} * V& Z3 k1 {. x- R) K$ E# h
+ v* _( T/ y- A. w# Y, o//=============================================UnHoo K_Start=========================================== ========//( O; U b, k5 |1 Z: G! P! b* V
, F/ H1 y& G4 t' V* mif((GetAsyncKeyState(VK_F5)&1))
; E3 z/ ]5 o& C& p( Q2 G, m{
7 r4 l+ r5 v# Rint end =NULL;* y+ A: W$ }* x) H3 w' y: ~# Z$ f
int dip =NULL;
$ s1 e" v. B, x. z( r6 r- Rint svp =NULL;
9 }+ Q1 V8 Y* ^. A* y) g6 s! K& Qint sss =NULL;
3 B6 B6 P3 H. p7 p2 i: l6 J8 {+ m
! V5 C2 W# H! n1 s+ z: D) k. S, H1 f- t6 n/ y4 ]9 o
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.# g& X2 o: J1 x9 G& ]6 R4 C
hand1 = GetCurrentProcess();
+ ^, a% u$ [& W: P) KDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
6 k0 H. |4 u1 y; d! gend = 0x6d9d93a0;3 R3 ~7 Z) k7 p& R" W1 U
dip = 0x6d9d73a0;- W6 B" A- `, z- ^
svp = 0x6d9d5b90;
3 Q( P# Y( T$ J; `6 Y$ lsss = 0x6d9d6760;2 h! w- o, d: i' o, ]$ r }
% Y$ D) G2 u4 E: n( }# nWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);$ j* D5 [4 s" W! `5 ^
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
1 J7 |. h& t1 W8 Z# o$ }' SWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);$ P, n! Z8 f) T+ ]$ b6 ?/ ?2 W2 V
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);9 p+ O# T4 Y8 I- {- Q
} 7 F$ ] G5 n! k8 o9 G2 I8 c* g
//=========================================UnHook_En d================================================= ========//
! n4 X n% e7 `% T4 I3 W! K( a
4 v: {" U9 }7 v/ f3 ~) ^% Dif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} + a3 }, L i3 X& y) K$ F9 K
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 8 t8 X% x( H0 N
* x x, m" z0 d% o7 t3 |, Xreturn pEndScene(pDevice);
- R7 T0 d, ^: U3 F3 Q}
) s8 r) U& F/ n1 g% e9 M0 l//====================================EndScene_End== ================================================== ========================//, l8 W7 S8 Z) n3 d; k2 ]/ t
; \6 z9 s8 T/ ?% B/ j
( [; U( w9 T' n9 g/ p) Y* n1 Y6 Y& m& U" l4 `. U, d, M6 V% p; n
4 v/ ?/ |7 y5 C& _0 k6 @//=================================Dip_Start======== ================================================== ==================================//0 b9 X+ r# Q- l8 ], `5 b
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
5 ` ^4 o7 \' C7 xoDrawIndexedPrimitive pDrawIndexedPrimitive;
: ~5 e, W# @2 v+ E, F, D1 V
) P6 w& b1 `% W% p3 F2 u7 GHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
; h9 r& j& T8 Z* ^{$ S7 R. r( T0 k0 K
: g8 j4 F/ s: \; e% V7 M
- W5 n. }1 {# U7 B; H1 Y* J
) w8 c" F; Z; i+ t6 m
" P: V2 i7 L( ^, t+ s9 z* x+ `if(WallHack)
- W% ~ n+ Z* ?6 L( `% q. g7 X{
5 G3 z0 ~* ^6 }texnum = (nNumVertices*100000)+nPrimitiveCount; 5 j- a8 n" u0 X9 f+ R
if(m_Stride==40 && 7 ^% g3 Q- @2 E$ C w6 z
* }, U s1 |" |+ J1 q* o
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||
! b! B' o; n6 z( S9 V% J; j(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
; C+ V6 B. Q7 w& ^5 U8 s(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)|| Q# ^9 f5 Y3 H! P# A/ c: K& @
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||1 r G8 D3 Y( y
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||, u: L# X. y" T% L$ p; p9 k c0 c
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
$ d$ K& l# v& k0 M(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| R0 n+ u) O8 w7 B3 Y; J7 X
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| ' M+ J; a s1 q) X3 w
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
6 c. t( |3 k( T9 x: D(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| 5 n* w0 |! \) ^# ]
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
& @. O2 q9 ?8 R% }3 k
4 H: }( e- ~: D# S1 ^! S$ c" ]& |$ d+ T* g$ k2 t5 @
$ P4 _1 k' t* \8 b0 r
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
: q! c" q' l/ F, U3 G f(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
$ L7 ^. @( g2 [) @, g Y0 U(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand * Y7 x0 r/ O! w) {4 j3 P' i
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm 4 f3 X$ L, w ]8 X
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
6 T$ J" t6 q; I6 x4 b//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head ) z& i" F3 p, t0 j
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
/ W0 x T2 F+ {. B(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest - U7 \& c. j+ I7 G f2 S$ g
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
, M! v$ m, U7 z
* }# x& K0 D) }{% |+ _; F0 k* c j: R
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);& S5 \ \% z" Q, u; h) u& e" y
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
7 {7 `3 D8 R: j9 JpDevice->SetTexture(0,Orange);% r2 t3 D7 ^. r% H+ S( G
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );% d! x$ k& a- n* r4 g, n3 W* \
' v% V( C1 n: D1 s$ vpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);( J$ a9 r4 p6 V9 H
. A; h" ~% O) t9 C& R; T
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
: p- y8 j9 O( |7 D2 Z" WpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);5 X! z+ k9 b7 J( t2 p
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
0 ~) x- e& t3 H9 x, ]pDevice->SetTexture(0,Pink);
0 d3 v& M, a' a7 E- _3 X' W2 B5 N}
! L8 C9 J* s4 j$ h0 b( X4 l3 q" t4 q2 j I$ S* u7 z$ |; k4 p; w) H
if(m_Stride==40 && texnum== 21300174) : y; x3 }/ O8 ?7 V3 L8 P
{. o( ]& R" l/ E1 O
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);& f# l/ u5 N/ ^0 K0 m* w6 X! B
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
0 N, u/ ]* R. @- Z1 F ?! xpDevice->SetTexture(0,Green);//GreenNade F v0 `" q$ s+ ^
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);) |0 y! R7 v; |% K3 `$ _% A
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);" u$ U' H& v, @
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
9 g4 z; O5 |6 x- vpDevice->SetTexture(0,Purple);
7 H/ }5 @& e1 Z4 x}
: x( S' B- `* _7 v2 I" n l6 Y0 P4 H* q
6 A% X: f* L' `; qif(nNumVertices == 158 && nPrimitiveCount == 131)
, y/ f) g' k& v/ H{
6 w3 V2 L" }. u8 r: npDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);: f9 g0 M6 I t
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
9 Q4 E$ a9 V. e% h9 `pDevice->SetTexture(0,Red);//GreenNade6 F: C9 d$ p7 s; u6 Z
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
3 _, a; z" ?8 d- B$ b3 f; s- K" L+ TpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
) d# _6 l/ \, F. p8 D( S* Q! `3 BpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
3 U3 c* L# d% \; SpDevice->SetTexture(0,Yellow);) I: t+ |# S$ {# {" l# d
}. Q d0 t8 g$ W1 Y. f4 w8 h
" h# w9 u( ~6 ~2 Y& c* j
if (nNumVertices == 171 && nPrimitiveCount == 143)
$ r( Z1 |5 m, \0 D$ F- `! p u6 i{
1 N# U7 }" w6 y7 A. l9 t' K% n7 }; {
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
' P/ m; d* n, U0 OpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
4 A" e( P7 O( ApDevice->SetTexture(0,Red);//GreenNade
, g( g# \* ]2 i/ f% KpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
^5 u% P+ U+ j2 Q7 T$ R9 vpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
, ], q. |; \6 t7 {% g0 Z# s# U& g5 UpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
8 K7 P. U9 T7 }* p( \. f; |pDevice->SetTexture(0,Yellow);/ w3 W# d1 F& O
}3 J/ U: V3 W8 z& Q$ x2 _3 K+ t) e, k
9 ?# _0 k/ n2 O8 w( X5 }9 w
7 T; d+ M$ y4 s' U$ {: g$ g4 X8 v) l& Q# N" V* ?* v- y
if(m_Stride==40 &&//face,mask etc...
G! D5 o: l5 y; { R(texnum==36700612) ||$ s# t7 m" Q; }
(texnum==9600172 ) ||# L- Z1 y; O! I5 ]0 o) L+ o8 M* [2 m
(texnum==14200236) ||$ ~$ s+ p' ~) |7 f+ b, K8 F M
(texnum==37800552) ||
, O/ [& H; B1 \& U W(texnum==28100486) ||/ K" G) `7 I; f5 T
(texnum==35500568) ||; U9 j: _( P# y- u6 y: q7 Z9 }
(texnum==2200024 ) ||
$ e3 ]2 o% ~3 E0 e5 ~" x(texnum==16200243) ||
, D& D5 r0 Q0 h/ ^' Z4 I(texnum==31900466) ||
' v( C5 R. e3 m* G(texnum==19300342) ||' X. A; `8 u( k/ G6 s
(texnum==36200604) ||
( w! j, v1 M% ~4 r" N2 ]. N(texnum==21300290) ||% x1 U$ E1 F- X3 V1 X: s' M+ w
(texnum==35700558) ||+ f' k- ]. w+ W1 M7 r$ A1 S
(texnum==22100396) ||
+ r2 F, }% A# r' u$ ^4 W* r- }( r(texnum==36100604) ||- P9 z# \% J; M9 s; O0 G# i* O* {
(texnum==27100464) ||/ g. }% D m( `" i5 `
(texnum==11400180) ||. [7 T/ \/ X2 B% `: Z' c" B9 m
(texnum==34900580) ||/ Z/ M, N4 z' ~# y) v' G
(texnum==13200212) ||7 U1 m- G/ p+ b V% I
(texnum==34700538) ||
* t9 u- l3 O! m5 z7 r. b(texnum==19500352)&&
# l; [$ b. a) h% C& j, b$ ]( i* b(nNumVertices == 448 && nPrimitiveCount == 776))$ B6 k3 [+ C$ ~. b# U# P
! J2 X! ~1 y! [
{
8 C' s" ~, ]3 s+ q+ e/ q; U' xpDevice->SetTexture(0,Blue);
& t" }2 Z0 o: Q5 E}/ u% ~2 {" ?% }$ I
) X4 j% j4 Z) C& G: P/ U& a& z2 ~0 A
{
. H9 _2 z/ {( N) B& NpDevice->SetRenderState(D3DRS_FOGENABLE,false);
( Q4 p8 l, g/ R}
( O" m' n. I4 u$ }2 A
; _+ h! O) G9 }. b- d1 u( o6 X# J/*Logger# S( b1 e0 y5 D$ i# b+ X5 b/ d
if(m_Stride==40){
; W$ n- n: [3 Z% G' H/ r) u0 c7 ^# @4 ]/ W, c8 H
- X9 h9 K. n" N, p. Z7 Mwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray8 g& S: R1 O( F# x; f
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;5 Z) x. {8 s ^% _ T8 S& F
bool alrdy=false;1 @- U% ?2 g# L) U
bool inarr=false;" \. j4 R6 H7 P. \3 q( C
$ X7 P6 v* P; |7 b2 I6 E4 S; q
if(texarray[arrc]==texnum)
! ]1 x+ {1 [! Oif(delarray==texarray[arrc])
" ?( B, |$ N+ u9 y' valrdy=true;
4 Z* B$ X ?- @% A, |% w# }for(int i=0;i<dcount;i++) //sees if said texture is in delarray, \4 G5 O5 d) L9 q$ f Y
if(delarray==texnum)* p! s: N! m0 T4 S, J7 @
inarr=true;
) V" p2 s% U9 W+ V5 Jif(texarray[arrc]==texnum || inarr){ //If true, color model differently' Q( J, u$ N, O' p z
LPDIRECT3DTEXTURE8 texCol;
$ u% |5 K r1 \: [DWORD dwOldZEnable = D3DZB_TRUE;
9 G3 l, H1 Q X+ H# L9 F5 ApDevice->SetTexture(0, NULL);
6 ?- h; \+ J. d! {( ]pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
. o0 ]: c5 a+ M; n3 i, N2 WpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
4 {9 C+ U4 X+ n' [. `if(alrdy) //Different colors for selected models that are already being logged (For removal from array)# X: d% m1 v5 q% K5 C& |2 z$ m% b
texCol=Blue;, G- }# j. o% N, ~5 A O+ ] e
else
/ E6 L7 \7 s. f- ltexCol=Red;
8 t/ p5 }* I, L: F# TpDevice->SetTexture(0, texCol);
% K4 _8 x }7 c8 ?. e- y4 }pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);& G4 m8 Z0 d* I& T2 B( g& o+ M2 L1 F
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
% l$ J* E: ~% O9 D; D
- e5 g+ Q. B7 ~) S+ v7 N+ u4 F}
9 f- V# y; I B) e% |8 f) h}
3 g9 x6 \ u7 `4 P$ R; hif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
/ B- ]* H6 C$ p' Dif(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array) ?. ~* H. k: v0 y# S
bool inarr=true;
+ U( y t, r S2 G- b7 S4 Y0 |, nfor(int k=0;k<dcount;k++){4 V0 {8 U2 @* I1 O A1 V' ]$ c
if(delarray[k]==texarray[arrc]): j2 h# ]) Q6 @7 L
{
& z3 m% q- S) c) binarr=false;//Found selected texture to already exist: M0 X* F! ^; x* Y) J' m e! Q/ X# q+ F2 ?
delarray[k]=0;//Delete texture
5 w! v. P. r- T3 l" q/ Tbreak;//Cancel loop
# q9 y* |0 X; W}
: {0 b7 ?3 x ? \& [' @}
! j) F9 L- l/ O0 ?if(inarr==true)# N& D' k- |+ h3 B
{
. ]/ v) `0 b* @( tdelarray[dcount]=texarray[arrc];//Add texture) m( n, f2 L2 q$ J% H; }/ z
dcount++;
+ @7 Y8 n" h, b0 I+ k}
" u% M4 Y6 H; L |3 Z1 k" h: o}
- P" W3 X$ w$ w0 O* ^* v) `5 oif(GetAsyncKeyState(VK_F7)&1){
{, |# s7 c- V9 M {( F; jint total=1;7 r9 o* i# r5 u9 a
add_log("omfg values?!? {");
& d0 |9 @8 ]8 ], R+ r/ I7 Pfor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
, x- h. \* ^1 n3 ]: e3 X% pif(delarray[x]){
+ F5 G8 u# i( U3 c2 c1 s6 D# Qadd_log("%i,",delarray[x]); //add_log2==add_log but without endl
& s8 A5 n6 u2 K. b5 e5 [total++;
* y' }0 X9 S. B4 [}
; b7 h/ U9 y3 R& z2 }add_log("}; %i variables in array",total);. l3 Z$ Z. K1 o S
}
/ _, j! C2 W5 l/ Obool found = false; //THIS PART CREDITS TO KRYPTEC
2 p) L2 z K, Y2 k, `( h0 Vfor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION. Q. o3 L" ^' g% g1 \# w1 A
{
; e, {. _0 o6 H' L2 n( dif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
3 q3 B# Q1 f' l4 q}4 g: T+ D, B8 z& }& e
if(!found && arraycounter < 1000)' E; D" K7 K/ `, ~
{& `/ p9 j6 Z/ j8 g
texarray[arraycounter]=texnum; z* H5 a. B/ P3 s
arraycounter++;
, i- T0 a7 M- |: Z6 R}*/" ]0 U: _. U4 J5 R
& S' R' Q# N0 r: r& }: q- i4 ^+ y K0 ~
}: d' G% X7 @2 j& }. ]
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
( h; X; c5 Y' b+ N}
: T$ ]( e; P( R c' h6 b+ s$ `//=====================================Dip_End====== ================================================== ===================//
1 A( ]. ]9 n; s C
: ~, S& |$ x2 p8 C3 s. s
* x$ y3 k, G' e: N% r//=====================================Sss_Start==== ================================================== ====================//- K/ h& U5 M* ?5 ^" t/ m
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
6 Y$ t+ B- _2 C6 Y p0 CoSetStreamSource pSetStreamSource;
5 [& O1 f0 E( U& d! ^5 e, [' y
* k0 H2 n! u/ A2 ^+ CHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)& X1 n2 w6 O3 f( t. P+ O6 ]9 A
{* D4 D I* F) P6 C" p+ K1 f- H
if(nStreamNumber==0)
0 T X1 f) _4 |$ [m_Stride = nStride;; I: p5 M$ X/ H. s
9 T/ ~% g, P0 p- h+ p+ |2 B
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
" d4 J# u, s! @4 z}
$ h2 b5 N" [ a4 ]4 x a//====================================Sss_End======= ================================================== ===================//% m9 G& u# J$ |6 d! K8 [ g
5 ~( n! ]1 s, E; ?6 y$ S//====================================Svp_Start===== ================================================== ===================//
$ l! t8 e. @, w; A2 }: `7 R! Otypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);- m' }5 i, c- Q8 j/ Z: r
oSetViewport pSetViewport;
1 z9 T9 l2 U Y3 w/ A$ E( C+ w I( G6 r6 K! T/ ~
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
1 _& n8 Q+ O% ]$ o" H! {3 m{
- v3 u) N8 C$ B5 H$ t% kScreenCenterX = ( float )pViewport->Width / 2;
4 q, ]6 S$ W, _" z1 `8 @8 cScreenCenterY = ( float )pViewport->Height / 2;
3 J* m$ S9 d4 T9 q q+ j0 C E7 M- Q6 D* p0 I2 C8 v# L
return pSetViewport(pDevice,pViewport);
2 ~6 G' ]0 y* k* @) A& M4 K! J}
^. t8 K0 H/ v% l//===================================Svp_End======== ================================================== ===================//
( ^1 ]+ [7 E2 Y9 ~4 i1 g) p, m, D& T1 `' e$ G; |0 ]0 C
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );2 [: } ^; x% B" H1 }9 v
oBeginScene pBeginScene;
7 I& E0 N2 g7 h3 X/ e8 Q+ V- c2 t2 y% d0 F
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
: r O# e/ ]) \2 l v7 R{
% e- \( |. t. Oif((GetAsyncKeyState(VK_F6)&1)) ( g3 v% o. w$ {. {7 G
{' b, `) l+ D0 t
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
+ S4 v: N0 B. }2 q1 FpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
6 |6 m3 s/ `2 D, E. ~* j# Z2 ipSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);# I5 F! D+ F; i9 B: N
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);" B: h! X1 ^; v' ]5 Z6 r
}
$ n- F* _( p* k$ K0 i5 M. D$ }2 G- O, A
return pBeginScene(pDevice);, E% K& o8 J- O8 M
}
/ m6 K/ P' T* M, q+ D F+ A; t- g2 j5 A* d
* ~1 E t! t, r+ Q; o5 aBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
4 Q$ v" y1 X! E5 n1 z! L/ a{
. E/ K; U: Z8 e! A8 cDisableThreadLibraryCalls(hModule);" X8 k9 B8 `+ \4 q$ ^
$ \' v1 V8 M- X! ~. C- L8 x5 x! Eif ( dwReason == DLL_PROCESS_ATTACH ). X; v6 q& m) f/ o. d+ r& }
{
3 v/ g$ A7 |( Z* P
" n0 O# v% k2 Z$ f. z+ L//=========Log==========================// J6 x/ }! x4 h, n% g: w/ f4 L
GetModuleFileName(hModule, dlldir, 512);& C4 q$ u2 u: [2 M# H& o! d
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }! X" H+ X! U s% s e e
ofile.open(GetDirectoryFile("log.txt"), ios::app); % |4 A0 Q5 f6 T8 H0 x
//=========Log=========================//
% f! [$ G5 s4 p5 W I/ s% e+ n
/ x$ q/ y) W7 m; O, h+ P' v1 ?' h4 ipBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);! C' t+ R0 b6 b* r
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);# z$ \- |8 M+ x8 n
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
4 o9 a3 Q5 L$ L2 RpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
3 b1 f' c \2 S$ J& n" J. DpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);& B! z8 z+ \7 i$ J6 k$ f1 {4 }7 u
' t7 j/ P( f4 ?! R2 M, i
}
7 H. U" o$ k* m" Ereturn TRUE;
( g! d7 B* p ?7 }; J}
$ T- M: i3 F, _5 r3 d' w* p7 o3 \/ d. Y- L
+ E- N1 Q A) E
Log.h (The header File):
2 V8 P" e3 T. m: R
' l7 Q+ J1 ?( V* ~#define WIN32_LEAN_AND_MEAN
. v% |0 n- J. j* F% I3 P# c) w5 {& T0 \
1 G6 I( D1 R7 _- E, z E#ifndef _MAIN_H
/ I- m Y3 N7 d" X+ o' h# h( O. |2 k#define _MAIN_H
/ B" B8 E( K, h9 h, _. q& [' C8 g% j+ X
char *GetDirectoryFile(char *filename);
7 n8 q5 ^1 D F- P( Ovoid __cdecl add_log (const char * fmt, ...);
7 F9 C/ F3 b; P2 }5 G* _9 h; X( ^3 n#endif
4 ?/ k& P3 m8 E" [* i+ V6 W6 }5 y" O
Now after you have built your wallhack you will be able 2 find it in :9 B, g1 M- t% d
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
; D/ V' X; d4 F' j$ j& `% D; y/ L; |7 h% a
Now I will show you how to make your wallhack undetected:$ @$ ?$ A5 ^! S8 l: {; Q
1. Download D3d hooks/ B% Z" Q7 Y' ?! t
2. Open the file that says "create device code made by me.h"
2 H' V8 [. g: K1 o/ N3. You will need to make another header file in your project and then put name it create device and paste that code it.
" R6 F0 V4 D! L2 A& |4. Your wallhack is now undetected.& h- f+ E) s8 P. S1 i
0 R6 T2 i6 \7 g
Credits:5 {" h/ F- n- i% [/ a" T7 J
1. ME FOR THE TUTURIAL, H: x5 }" v6 t
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE, [( r" n7 ~: [3 @) k* E
3. FATBOY88 FOR THE SOURCE CODE) o$ ~0 ^7 z: Y' t
4. THE INDIRECTX I JUST FOUND :P
. j! W+ x8 I% m2 l+ [2 `0 `( \
! u" l3 P5 J8 _Attachments:
4 e) f: k, S) ^9 x% T6 HD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
# I! g: j0 x/ j. m5 HIndirectX: http://www.mediafire.com/?gimzgmeny11
( {' b/ o+ y: Y4 X# hMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5( u9 c/ \1 G O4 A4 R) l2 X
SEARCH THE LAST ONE UP
- z/ ~7 B- ~0 M0 J7 m/ a__________________
+ {- f5 t" S- D9 U$ h6 h7 B$ S6 Q7 v" j
<---------- WALLHACKED |