原文/ D% B0 }0 `( l# A2 O- A
http://www.descipe.net/forum/sol ... -your-wallhack.html
( G* y: W* s- i, R, c. F9 E/ `) n$ X: J( b
视频教学
9 @0 ^. `# s3 _9 R8 ]" t$ lhttp://www.youtube.com/watch?v=6b5XMzT-b_U " F: P6 `2 }$ t+ E
- H% ?4 `8 _/ gHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
% z a+ K N! |8 Q, q0 }6 O$ V
3 ~0 ?! G! R4 [ ?. K; F2 r) c: o Hello shane007,
" f& Y/ z) h/ i" Y- E) K5 T# dOur 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.
; d' m" q7 Z* a, Z
9 p9 A% w, p% ~Why not start with your first post today and become an active part of DEScipe.net now! 1 ^- q# K3 J" N$ A( w" S( l
* C U* M4 G3 z) Q m8 ?( P5 K9 W/ X1 K; i) y4 f, S9 Y2 M& [# e. P
7 F3 _1 _* R4 h8 H8 L% s7 p DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats ; p2 q9 r/ P1 }2 \: A& ^: h& S
How to make a wallhack and how to hook your wallhack! 4 n! _# i6 W) n* E3 o
Welcome, shane007.. w4 b+ t; {3 n) {+ X+ i* ]! p
You last visited: Today at 03:55 & o: R/ S! }: n! K7 H' j
Private Messages: Unread 0, Total 0. 4 j' F* j6 g5 \# J( f' g/ ]
Credits: 200 [Check] 2 g: l7 B. A, {3 b2 G ?$ l
+ o& E2 s; S# P% r/ i# YHome User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
& U' |$ n, M8 b6 O) q: A5 X
6 m" ^" h# I0 [* G4 ]( s8 B2 w5 {8 C* D1 W9 U! V
% M0 q% q1 ~5 O" w: b4 _
Search Forums ! n: v ^* F- j+ c7 d
4 Q% n; E8 X) f2 f0 e1 f9 `: U* X: ?# Q- c! H- p- R# q
Show Threads Show Posts 1 j% m0 h) T8 I
Advanced Search
1 \9 |6 u! W7 Y! g" vFind All Thanked Posts 9 s' Q1 T- z5 u; g$ m
* h: F; |6 q( `0 ~9 _( V& ]( H
Quick Links 3 D! p |( o6 c& [5 e1 v
Today's Posts ) q6 s Z) [. b3 x9 Q4 \
Mark Forums Read 4 F# O, S# N) T7 {
/ L% Q+ [, x- c% q5 K9 TUser Control Panel
7 F3 [1 g) D6 C* dEdit Signature 5 L* L! w" V4 }8 W+ U r0 |8 x1 ~! P
7 [7 a5 b! N0 |Edit Options
: E+ b( }1 L S: [Miscellaneous 3 Z: e$ G8 S( @2 G {
Private Messages " r+ W' i: n' s- @& b9 Q( w& y
Subscribed Threads
' b3 T, C( b H: `- o$ Q
- L* X2 s* K( U" Z4 I) pWho's Online
; B6 L+ a9 }9 Z" W; k1 L! w" s% b1 q/ y+ U% `) C" r1 {5 y
Go to Page...
" E) C+ d$ D) F9 w5 h# o
6 H! U+ }3 }6 L6 ?- S8 n! n2 N) E# dHow to make a wallhack and how to hook your wallhack!
/ g+ \- Z& P- g- U6 HThis 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. ...
" q& {0 i, c$ @! W$ o1 r& T! }& H( ?4 v% [& R. t6 R* Y
Poll: Was this helpful? $ S. _' [' f0 |# u
Poll Options
& q% F3 S% _, b/ X0 h: rWas this helpful?
w3 @! S! O- \, g( x' f: MYes, I WILL press the thanks button
8 o; x$ \5 p6 q/ V5 B; g( }; LNo, I am a failure + |" n8 u9 P- r. N
View Poll Results 5 b$ _4 D" u/ L- m
& v$ ?- U* ]% T5 R: k/ z) S
Page 1 of 3 1 2 3 >
/ w3 N' r: D4 ~2 r& h9 [
+ Q7 T( U. J% |) f' d; t W View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes ' y. \- g0 ] ^
9 @& w1 R* U# t+ B* I4 H' g k/ T9 r
$ B" ?5 X A4 a5 Z7 X) W" R+ k
05-02-2009, 20:49 #1 , K6 F- v: `* D& @. X
killax9
$ l. e _& ~1 `& y+ Q" OPunk
, u6 [+ ]" w' S, O 3 g; Y/ Z: A: m3 S( Z
8 S6 h7 ~5 Y/ T9 f1 D8 N
! _9 U" _9 I& l+ Y4 _
6 {* C1 j# _# E; s: CJoin Date: Jan 2008
7 J9 ~% n* x6 p @) g7 I% v' x( XCredits: 2,701 [Donate]
4 U' S2 A# @0 M, t4 QPosts: 103 , f2 f8 m( }1 ~$ q8 S/ m5 \) T
Thanks: 10
# Z! j- R2 O% A7 j7 n* ^Thanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack! u" `! w2 K8 x( S: p
& D( B& H% ?( S- F2 [% |+ B* F--------------------------------------------------------------------------------% g8 Q- x- O" G( m
1 q4 q# s1 M2 |: c, N4 B5 a+ i( y' s
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
' s$ r/ z3 Y0 _2 Y( FPossible Undetected Methods:
) X, u8 I0 m) N5 S+ R1)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.- Y5 x8 q+ \4 S7 p- d
2)another way **** it hack GG.
& e! E" Q4 C; ]7 U8 K3)breakpoint hooking;doesnt change memory... well changes debug registers.
/ K5 T1 P1 S: [) S! B4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin1 }, U! o% F3 S
b3 o d& B, L
Vtable:
* M5 B, _/ X( A* J* Zit wont work for vista its not a vtable hook =)
1 ~5 o7 Z8 `/ L: `+ D" c) ?' n* m7 p- [" \- {( U# @
the reason why my older version worked was cuz it hooked 1 R5 x7 o5 W) n
Createdevice->pointers to the functions! S9 n# }+ V, K
# J0 t" c1 z. N5 m( Q
kinda like a class or a struct.
) |* }* b5 H6 n
; z. f5 h8 }5 d3 y9 k0 ~6 {) q
5 z3 B! k8 p, q o! p# vand 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.
0 }" I8 X4 I+ C1 w0 \
: b0 }, W2 v, D3rd maybe- some games recreate the device when a map loads...like BF1942./ X3 e$ V/ ^5 L/ s6 T) e. X! V4 P
# \+ p$ R7 u# U# m5 D. yThings needed to do this:) B7 p* o6 z7 Q
1. Microsoft Visual C++ 2008
, ]7 d& k0 m% p' n2. DirectX_SDK_(Summer 2004)
7 B" D) y1 m4 N: k' ?0 b3. D3d_hooks
. z- r3 }. K! j5 e4. IndirectX
" x$ H/ ^( N+ |8 r1 O& h5 d1 D5 B) kI HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
; v ~+ B$ _1 J3 [; c+ ^& A( j1 E- K% \2 L2 i- b
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:2 a7 Y/ L4 a5 Z& }( Z, s
+ u7 i1 q/ A) V+ t
YouTube - How to Compile WallHack [Tutorial]
5 p& T) @2 V9 Z3 m' |- n f
; F4 V, o7 D* A ^1 P4 C; Y3 s2 H% a! t: y3 L
9 j2 q# o$ q0 a9 w% m: O+ FDetected Source Code:
4 |9 ]4 i1 W) _
7 N7 f4 I3 _+ g1 M#include <windows.h>" M: V! k3 T+ ? U. H
#include <detours.h>/ B/ ~! Q' n# }- S' \/ V9 a9 Z
#include <d3d8.h>- R: c, ]$ Z5 W
#include <d3dx8.h>8 Q. w; ^6 W- ]; f
#include "log.h"
) t+ k* c0 U8 q( z' L [#include <fstream>
: s# d3 F- s I#include <iostream>
: H& i0 R+ |) A1 a% U b' A#pragma comment(lib, "d3dx8.lib")& P5 E5 J: p- r# f+ n0 |+ }
#pragma comment(lib, "d3d8.lib")' H8 ^0 [4 i4 I3 N
using namespace std;
# u X( X, \: x+ N8 n0 nstatic DWORD dwBeginScene = 0x6D9D9250;
" }( f; i/ j' X& _static DWORD dwEndScene = 0x6d9d93a0;4 o' v4 N) D' z& z9 F7 A
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;+ d; B6 U C, ^8 i3 {% b
static DWORD dwSetStreamSource = 0x6d9d6760;
# Y8 l1 D; G# Kstatic DWORD dwSetViewport = 0x6d9d5b90 ;
) V. b& E! i) g4 K7 O: c& ~* q* Q1 `/ m5 ^6 m
; x' [! r# }7 y/ E
int m_Stride;7 C& N. S" j/ h2 `4 m2 k
int texnum;7 y, J* J# Z5 f9 }: X# T4 k
int nNumVertices;
2 H; a q! h4 w5 m( tint nPrimitiveCount;
/ I4 P/ @* X$ M" } X- C
( h7 _2 h! L- [; eLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;$ u4 O! h/ J9 _" b5 h
bool Color = true;# h' ]9 r/ F& U w8 z( f
bool Logger = false;8 o M' G3 ~) k! B
ofstream ofile;
3 V7 f6 ?" Z0 M3 `" J5 ^& kchar dlldir[320];
9 u- C' \7 ^: N& n9 Nfloat ScreenCenterX = 0.0f;
/ Z- _ m3 k; }float ScreenCenterY = 0.0f;8 H S6 M, o, E& s
bool xhair = false;5 ?9 a8 ]* ?2 Z- a
bool WallHack = false; 4 @' m% s+ N( q, g" f8 U
bool WallHack2 = false;
1 w' t2 @& Q p* RHANDLE hand1 =NULL;
( ?4 ]5 S) ?- \2 aHANDLE hand2 =NULL;' U$ x0 t& \" g
e0 {5 w g+ G2 `
DWORD bytes;/ ]) A. K% j5 s# R8 q% C- a
; S( n. b3 _4 k/ J! x
//Logger
; V* N+ @; l; U8 ~: e$ jint texarray[1000]; + U2 h- N. t; Q$ x+ D
int arraycounter; + D a* r' g3 D: G: e+ D
int delarray[500]; ' d% `% k! z1 Y5 y! U% \9 j$ T F
int dcount;
2 e' M; w. u: w @! s2 Sunsigned int arrc;
6 X0 T. }' L3 M! rint i=0;
# `+ t# C$ t$ R3 I; w0 B' N1 K! H: p/ G8 }; F5 O
" J V& y! Y5 _) n
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
' o1 C( Q$ k9 w( G. s
6 Y+ B. l6 K+ L
* \8 J1 w) w( `. t: c2 F: ychar *GetDirectoryFile(char *filename)0 n* h8 _7 r2 e: U2 F; j/ ~! a4 O
{
# v0 ]0 z& M. l* [ j: s/ j) }static char path[320];
6 l& A5 Z) ^: D% nstrcpy(path, dlldir);
6 c" n! p. L9 F! L4 p( C |8 I' Gstrcat(path, filename);" i. z% r3 \! I/ @
return path;/ z# G3 b$ R" x
}2 i/ H0 J2 `$ n4 D# C J+ M$ S# m
. R2 O. ^- G- \, I( @6 qvoid __cdecl add_log (const char *fmt, ...)% H v* q, B& M) A( ?
{; `$ u% w6 W$ V. a* D
if(ofile != NULL)# `4 f, x) A q) _) W5 C/ L' @
{
! C8 k' i& |$ t$ Zif(!fmt) { return; }
" J$ _+ x! f) i9 G- `8 q3 h
4 L; P3 G2 G, l; B; tva_list va_alist;( l! i8 r7 t( T6 D8 z( R
char logbuf[256] = {0};. O' i. v. m) G) X4 p2 `2 g L) {
! E. a0 P" R5 Pva_start (va_alist, fmt);
. `9 g' X! @9 ]+ K3 X_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);# @- [$ m1 V8 }* |, j" T7 i
va_end (va_alist);
) B+ I9 D( |" `' k5 `' p4 c8 g( n+ B: l0 R$ G, l l4 P. |
ofile << logbuf << endl;6 u9 `7 R% z8 F r0 l
}) r! U5 c! `% Q) m, H3 y
}+ a2 P8 q$ y- C
! ]/ L" m) u( z# O8 @HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)$ i8 ]3 w, W! K, r9 v
{
& c1 H2 D* [5 U! `1 m, C0 H6 k7 }2 a; vif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
* R" Q9 u1 k: Zreturn E_FAIL;1 Q1 _0 a: Q( u2 \* t
6 Q1 i* |) F" KWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
: M# C) ~% n7 }1 p0 w2 j|(WORD)(((colour32>>20)&0xF)<<8)
" s. Q! V X" L7 N3 B! A|(WORD)(((colour32>>12)&0xF)<<4)
i- T8 J- ?# Z- Z- m9 i3 M|(WORD)(((colour32>>4)&0xF)<<0);
6 x5 T: h, m5 {" L9 t
& \( p* [0 t( a7 I ZD3DLOCKED_RECT d3dlr;
2 J w$ @/ O8 V& ^2 L! }(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
9 t9 @2 O( G' {1 ?7 z0 b' wWORD *pDst16 = (WORD*)d3dlr.pBits;
% L8 ~; B$ y0 ]) U7 H1 R$ U7 n& p e' U& b
for(int xy=0; xy < 8*8; xy++)
: h1 _4 `# `# s& R) O7 \/ c*pDst16++ = colour16;' d* ~* k" U2 l
2 b* i Q# K' P8 W. }(*ppD3Dtex)->UnlockRect(0);
/ ?* ?6 ]0 {1 G. [, T
( e" d$ Q4 i$ G7 _* Breturn S_OK;
, m( M; v4 x }}$ u! q6 B1 ~- k) _* E0 p$ E* s
2 D- p" ^$ s, [9 @
) v+ A9 M$ P" k" A) z% m1 z. {( x
//=================================EndScene_Start=== ================================================== ============================//2 n, D0 t9 z4 S: a$ P
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
+ V4 X3 R/ e7 ^7 V; a) ooEndScene pEndScene;. Y- H9 ?4 @8 ]3 l$ B0 p5 Q7 `
4 w* j7 h# S1 qHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
! s2 x# {) R" U8 m{
5 _! q6 B0 Q6 `( ]6 t* v7 R/ Oif(Color)+ N! a- e* ^& Q+ v2 J
{ % P' s& p$ H+ w# n0 c' v% h
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));" A* f8 O& x% _& l6 _7 x; m
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
) |) U( ]. B: `) jGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));( A3 X' l' G8 i. U, M
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
) ^3 X9 ^6 \) e: U& K0 u& W) fGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
Q1 \3 B) Q3 r! t _( bGenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
0 G& e/ L) t' c: p, j7 AGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
+ k C' ?* D/ U8 e' u3 TColor=false;
. L, ], R ^$ p# F9 L}
1 B) p5 _$ R% _4 n/ b9 l/ \/ b1 G/ I/ z3 \8 M& h
if(xhair), ~7 v& M; B7 `! m: Z- r. B( I
{0 l# v5 h: q% D& c8 q
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};) I+ ]! t- F8 `0 A* k
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
! @, m p" G0 E# @ }9 V% k0 Q4 wpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);) p( D, [& ~: n; w q
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
( y; P7 @2 N Y; A( W8 X} 4 R# q' W2 {% b! u {' _
R) k- k0 b- G; X//=============================================UnHoo K_Start=========================================== ========//9 v* X0 H6 H- G
: L; t% q, ^2 F1 f" \: X) yif((GetAsyncKeyState(VK_F5)&1)) - d/ k/ X; P6 ?7 s
{
. c, C! [8 H4 R; V: s5 wint end =NULL;) ^% v- A; p+ M% s& k& x
int dip =NULL;0 O# L0 u$ e/ o6 |6 @
int svp =NULL;* r6 W2 |& a5 g0 ^
int sss =NULL;
1 |, D1 ^3 L2 }, ]4 S
" ]8 T: O+ d% X& N1 q
$ G6 X ]. o5 U/ jBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
0 h. t5 y+ y+ Y% e: `! t Fhand1 = GetCurrentProcess();# c9 p' Q) I) H7 q' v
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
, ^8 P! r! _! @4 wend = 0x6d9d93a0;7 m8 R) S4 R& r" }+ J3 c
dip = 0x6d9d73a0;
% E: }5 K' ~, H R& c& v5 G8 Esvp = 0x6d9d5b90;* w# Y6 k/ K' }
sss = 0x6d9d6760;# ~ K- W- w. R) e* F
% u& T- c! P* }8 V" iWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);) H; k) |1 L2 P) F6 m- I* E8 N
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);. `# d6 n+ i$ X5 o- e. ?1 w
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
1 G( k& G0 P4 q7 [7 M% ~, ?; b7 |WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);1 e' D* ^) e1 @9 ~
} ) W' N; e& O2 Q+ k3 ~: j
//=========================================UnHook_En d================================================= ========//1 H1 i1 E" X" F7 `) o; ]
- k, W7 L, t+ m. e, U ]
if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
% w1 R5 h. ]) v3 k$ A3 Wif((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 9 M8 |- m* }3 t
* w6 \! {9 \- p) e: Q+ }% ureturn pEndScene(pDevice);
7 N5 G- @: M, x8 g}, i6 W, L2 J2 _: @. B6 r
//====================================EndScene_End== ================================================== ========================//
7 g& f1 W( }3 G/ K% U2 q
1 b/ |# ?7 D3 C) v. h [& `! V1 Q1 n
! [$ y/ \' V4 U! f7 M( [! l) x! p- `
//=================================Dip_Start======== ================================================== ==================================//. d% s) K* \3 v2 M
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );0 e1 g/ ]: ~7 I8 k. I# V6 h
oDrawIndexedPrimitive pDrawIndexedPrimitive;
- H, A' d" ?# ?4 N) }7 a( h/ b' u3 z7 E- |
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
9 `1 H3 u4 ~) l{
- p1 j" q2 P9 o3 J1 h" m1 t! R, ^* d% B/ H6 F$ p. H
# V1 p% p0 Q7 x) m; r& c0 T0 d
; Q& H2 W# C x) }6 V0 z& ]3 L
2 j! W& a2 y/ M8 }if(WallHack)
1 C7 H$ `$ M: t% {{
2 N# {7 I3 }# ~* T/ I5 ntexnum = (nNumVertices*100000)+nPrimitiveCount;
! V& ?) r9 P7 ^6 [4 z! xif(m_Stride==40 &&
. X6 |7 u) B6 {1 \* ~) ], F% \7 u$ ~) [) d
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||
3 |/ D6 b- H S7 O(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
" @4 s& E# [' ^7 H, v(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||
7 s6 Y7 [ `- Q" `: p, e$ Z# }: J0 t(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
! {: m$ _( J7 a2 g7 k; a(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||' x3 Y- ]# q+ l& e- d7 ]1 L# D, z
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| 0 r: b' ?6 ^2 ?7 c) S* K
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 4 A5 k. T) {+ n1 v2 d; A" G& ^) O( W
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| % x7 b- Q: V: z9 f
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
; c5 c `& D w: m6 A(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| ) M- H- Y/ s7 f. |0 C5 J8 v- V
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&/ a4 j% ]. C8 f+ s$ R6 @* v
4 j0 N/ g6 x! Z" u6 V
) Z5 B/ ^. Y1 \! Z8 c1 a, W9 V" \, B6 C- ^9 {0 C
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot 9 [3 [1 T1 I" ~/ a2 m0 d
(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm / p0 L. k& x) i% }2 R! N9 p% Z
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
( j# e6 y* Y0 m- R(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
' p( `1 A6 E! f6 \% m(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)" Q5 S7 ]$ Y, {% ^
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
- Z: O( I- p7 m- e(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
# i' {* |) q+ k8 F% ?) R1 e2 }(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest - i, F" W3 g" q& L' |0 N6 D3 b3 O: r& i
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants0 Y& n) g( O0 r V7 H) ?# H8 J8 ?
: O; `1 z! `; q$ q5 c, ?{
7 `8 b/ J0 z: z; kpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);" U# Q$ P8 {/ {/ C# P2 P7 O
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
8 D8 Z3 l$ W- CpDevice->SetTexture(0,Orange);7 F" w0 _" g' `3 A2 |
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );% m7 E0 n7 R+ d0 y
8 U6 v7 F6 z% e/ T* k5 E0 ?pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);9 V/ j& r) O& P( |& |6 K( S
+ U: D( `! H5 y//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
" h# c# D' _, \7 I. q0 }, i' i+ f1 wpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
- W; x9 u( s' k; E, q( [pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);1 `1 M# E% X/ Q! X0 `4 f5 h* C
pDevice->SetTexture(0,Pink);
) }$ G A# c4 P1 g6 l2 G' v5 [) X; C' t} ) \1 j7 ^, v( w* s
5 y1 I- P: B) Q% h A3 p! b
if(m_Stride==40 && texnum== 21300174)
9 U! h; ^" F5 a- f* I{# _' h) v- M# x+ L# L2 V6 H9 G# J; H
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
3 O5 A. X* A& G2 ?) G {0 VpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
" q( \- w% @3 p) }pDevice->SetTexture(0,Green);//GreenNade, B) s: E3 W# M% r ^1 _% q
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
9 e! j$ G& I8 B3 s: L8 `pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);' h% J; F& F" T B8 D3 x
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
$ {3 H6 L4 P/ T; M% d" [( JpDevice->SetTexture(0,Purple);
) n( e4 N6 B `5 I5 z}
# F* A7 n5 Q& q- @0 g
4 |1 V; }+ w& m5 w7 _$ }' [& _; X
( \2 Y8 i& y. i. f( Dif(nNumVertices == 158 && nPrimitiveCount == 131)( r2 ]+ ]8 R; N
{
# x# O1 D8 e$ t- ~8 I6 b! ^pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
! h! l0 W4 d8 r. G! u8 \pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);6 i! X4 o& `( i
pDevice->SetTexture(0,Red);//GreenNade
" E3 D& F) Y! c! N) `+ g% apDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);/ w0 ^4 A, l" C2 ~ ~
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
Z5 A7 Q8 h% D# P5 npDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);" m5 f8 h, s$ G& ?; `' f
pDevice->SetTexture(0,Yellow);
2 L0 |. L. S( W# y6 ]+ R}
! d4 ~) H# V/ C" H1 ^- Y
5 U, Y( m3 A+ S( e4 \* ~, }0 gif (nNumVertices == 171 && nPrimitiveCount == 143)
' z# s8 H0 E3 f: n" ?4 u2 |{* Y" W& \! D- z% A, y/ O
+ ~0 n$ i# R b$ O$ cpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);& s0 H' }: w" b3 Q& `% g1 Q! b
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);$ i- ^! W8 Q) w$ T: p, Z `6 I8 b
pDevice->SetTexture(0,Red);//GreenNade0 K3 j0 M# W4 m$ A
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);% A: O7 v$ X7 c- b9 ?
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);5 F& }/ i9 p4 H7 i. b# W
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
7 L. A7 n4 l! t6 q) KpDevice->SetTexture(0,Yellow);) Q1 t0 @% @& L! D- D
}( J4 b6 p) L2 K9 ?- b- s2 R
& l+ v/ a$ ~/ M8 D( S
2 G: |+ V) G. r& v
6 w: m6 r$ |; c) wif(m_Stride==40 &&//face,mask etc...
# K3 S' U+ T- Y3 w3 n6 M' X(texnum==36700612) ||
; Q8 p5 O9 k/ t7 i. e(texnum==9600172 ) ||+ B7 ]3 @$ e, v: K6 w/ O
(texnum==14200236) ||2 `. E* |& s6 s& z, v7 ?& x
(texnum==37800552) ||
; q- T0 O) M" G1 h' y* ^2 P(texnum==28100486) ||
* I4 c+ Z$ i+ e3 _9 S(texnum==35500568) ||2 \% q' E) y H/ _
(texnum==2200024 ) || J& X& ~2 X; z2 f2 u5 W
(texnum==16200243) ||) V4 [. t/ V+ ~$ \1 b
(texnum==31900466) ||
: T: ]# Q! u2 w! W/ a: c(texnum==19300342) ||( i- B& z% X6 \! q3 k l
(texnum==36200604) ||# p# m5 l" E& k# j7 A
(texnum==21300290) ||' |5 m+ V* a6 x( ?
(texnum==35700558) || a8 s4 K7 d" b; ? Y
(texnum==22100396) ||* P& l# f! r! H
(texnum==36100604) ||
/ o* y* B- a" U2 u* D5 `* D(texnum==27100464) ||
. j1 r7 N6 `7 z7 Q, S5 _(texnum==11400180) ||
8 s: Y6 i6 I1 p: h* J(texnum==34900580) ||& V; l, l7 f1 \8 k5 v
(texnum==13200212) ||) R5 T" O* A' l9 {
(texnum==34700538) ||
$ n/ F9 e& A- O6 K' l(texnum==19500352)&&
. w8 c6 ^7 E, J5 v2 M& a(nNumVertices == 448 && nPrimitiveCount == 776))" ]# M K& J1 _4 Z6 Q
. P* K) f ~, z9 D& u{
! n2 ~- g1 I3 h% D$ w& RpDevice->SetTexture(0,Blue);& R* Y- P% W" r) m
}1 `5 w1 L" t- i! [' W& U# {8 G
0 v/ u; q. K9 ^( ^" h/ H+ Z* y% X
{
: f6 Z Y+ B2 @8 I5 ], gpDevice->SetRenderState(D3DRS_FOGENABLE,false);8 A) V3 k9 E5 n. Y: O
}6 C& W6 ]" S2 D9 Y7 U
' |4 ^ O9 ~7 \) T% V5 l t
/*Logger! y/ L) k/ Z4 C' t, t' f: N. b
if(m_Stride==40){
- T5 h i _0 y8 y/ \% |6 x+ `- C1 h5 E. M5 y
7 @) L- v1 i: }' N2 D$ Cwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
2 @" e$ Z2 [" g, L& T/ w* ^/ i3 Iwhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
; J1 f2 D' V' x( sbool alrdy=false;
% l* o1 x6 n1 Rbool inarr=false;
/ x( P8 D; F8 w9 U' v# _( C; [: ^: d7 W; C
if(texarray[arrc]==texnum)
1 k' z. W8 w: h. Kif(delarray==texarray[arrc])
! j6 G! ~0 q4 P! i# d# G6 xalrdy=true;
) L4 [% ?" Q5 a5 ]# }, Z6 K5 h+ ffor(int i=0;i<dcount;i++) //sees if said texture is in delarray
0 S( h- [! P* s' ]6 Y$ M' ^) ~* Lif(delarray==texnum)
* t3 F j2 U6 U' sinarr=true;
s6 R) d- ? K# k8 |+ wif(texarray[arrc]==texnum || inarr){ //If true, color model differently
. d. A5 A! O: t: b+ X; ^LPDIRECT3DTEXTURE8 texCol;7 z. W- q& F5 v& V8 P) a9 T, S+ i
DWORD dwOldZEnable = D3DZB_TRUE;
) R1 M$ _7 x8 J6 B2 TpDevice->SetTexture(0, NULL);0 d$ j" \3 G6 y, y+ H* Y
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); 9 Y7 S3 ~% R+ ^) w) n/ p
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);( F9 o5 X: {/ s7 y% X' x
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
_" d2 J& n0 o( R2 p; n$ m* EtexCol=Blue;% m9 p3 o$ V5 E8 ^; @" D, W
else f+ f# s, d: T4 g0 P: e4 U
texCol=Red;
3 c4 n% w' r2 w: spDevice->SetTexture(0, texCol);: a$ ^ a5 J4 m4 k8 P
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);9 Q8 y2 _" `5 |- X/ Y: O r7 }
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
7 P5 r6 \0 B+ T
0 y. e3 A+ q5 O}' Q3 T2 D9 [$ ^* ^4 g$ k8 R- R
}
5 R, t, l J0 J( N* F% m1 E2 `2 tif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
: o) \% B0 Q/ ?( L0 T5 Y: @if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
5 I3 F2 e8 j9 W/ Tbool inarr=true;! a1 n: l( w3 h- P% j1 h
for(int k=0;k<dcount;k++){
9 h1 g; O H9 m( q# Z! Y$ H; Wif(delarray[k]==texarray[arrc])
. M0 F% Z ]$ C9 r% g+ R: |3 X{) A# b- h7 q9 v! n- W: Z% K
inarr=false;//Found selected texture to already exist
% c& X7 N% G' N: s- hdelarray[k]=0;//Delete texture
- o& ~& r+ v2 ubreak;//Cancel loop, F) z- x. a3 z2 n8 s
}4 y8 _% q: S1 U) {8 g% Q
}9 q( d! ?" P. S; v% D+ }) u7 @
if(inarr==true)
8 f+ M4 x2 {; r. A% ?{$ F/ w3 d7 K+ Q. F$ O
delarray[dcount]=texarray[arrc];//Add texture/ F4 l( z3 @' u7 Q
dcount++;! D& E! k: G$ R' Q
}" p( P, A% u8 d- O. s- h: w! a
}
1 `7 ^8 x7 N# d$ I+ a' iif(GetAsyncKeyState(VK_F7)&1){
& r9 e* b2 D9 q7 Y$ `int total=1;
$ J' \) h4 O( l8 ^7 dadd_log("omfg values?!? {");( q: u& O" O! k3 T9 e
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
2 @: p5 Q4 z$ N# H' d) k3 G4 rif(delarray[x]){6 r, v4 }* Y! Z9 `& _+ h
add_log("%i,",delarray[x]); //add_log2==add_log but without endl, v3 U( {: O( q x
total++;
0 p3 ]* n' z% i1 D4 y I}
# [5 I1 P' M! C. k: Ladd_log("}; %i variables in array",total);
7 ?' y8 O2 j9 {+ ]- o( k8 N}
; ] E( a) N1 jbool found = false; //THIS PART CREDITS TO KRYPTEC
* }8 d* B5 e# ifor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
) d- I1 V% Y* o{
! t$ E5 I* [( ^5 B! t$ ]3 q7 o7 q+ Q5 Iif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
& _2 o/ H) N: z0 n# v% k& a! G}) ?6 G- J( ~6 F+ E
if(!found && arraycounter < 1000)
+ v9 i( B9 A" J+ v{
6 M( ^ K2 C) R3 }$ |9 _7 |" ? Utexarray[arraycounter]=texnum;4 I* [' w% i! V" O6 t$ H8 v. a
arraycounter++;# d) _! I- a7 S$ ]( i; J
}*/
8 R0 }5 J# @5 p( n1 i7 l! M1 t& y
" z( H0 N* _( P7 a3 ~
5 p& l: C" |! W, k}
$ [ E; E. O) f4 v2 G. Lreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);' ~* x9 S2 M3 p- R# @( [5 E
}
2 j" m5 w, i. ~) g r//=====================================Dip_End====== ================================================== ===================//2 G& G+ i1 G, ]) ^8 _
% `" q x; E) V& e7 J/ M7 z4 i7 o4 `
//=====================================Sss_Start==== ================================================== ====================//
# }0 d0 f# Y; F+ K+ K5 E& r: H+ Mtypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );1 Y9 Q/ V+ I' ^ k
oSetStreamSource pSetStreamSource;
. @: n6 c) _) @
l/ N) m& O) O% \1 Y% }HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
0 V; w' J% Q( s+ _9 a9 w& j. s9 f{
$ n3 Q0 F+ w- R' M* ]if(nStreamNumber==0)
& u% \/ }; V% f( Bm_Stride = nStride;
( W/ j8 Y1 M, J0 T5 `8 z; C1 S2 d
* n, X4 U2 k0 nreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);) F/ V# Q, W( w8 f, }
}# [! P/ Y7 Y5 w' s
//====================================Sss_End======= ================================================== ===================//
8 f# c% d# \7 y- ]0 e9 E
/ [9 s/ n$ x! j3 C; {( Q//====================================Svp_Start===== ================================================== ===================//
5 v7 q& ]( r8 ^/ r' Gtypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
; p1 z8 w) Q! _& s4 N2 a- u- ooSetViewport pSetViewport;
- T; M, P0 v9 ^6 v4 C
6 s; }$ l+ l7 v7 O: FHRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)3 G* I7 f8 P& O! o
{
& L' [! |# h* J: R3 @. [ScreenCenterX = ( float )pViewport->Width / 2;
& f9 {0 M* f7 H& o3 l/ e* f% eScreenCenterY = ( float )pViewport->Height / 2; " G& U& W ~7 [$ ~: l2 k
. z. `' {1 m. C3 q- s* x C
return pSetViewport(pDevice,pViewport);. A: ]$ L _6 `2 V. I( h# I
}% D5 o P- h% N8 x3 Y
//===================================Svp_End======== ================================================== ===================//
2 `/ P/ d( v4 B( A: \" v; E5 n
9 \0 |/ B) V6 j0 S; ztypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
- _ a+ |" ~; K6 s1 JoBeginScene pBeginScene;
/ r: u4 n* l: @/ m) b! g! q: L( w$ y" f# I6 W" k
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
! y+ j0 Y: T; f% {6 T8 S) e{
1 X2 H- R' V+ O6 Z0 j3 ^if((GetAsyncKeyState(VK_F6)&1))
, p/ z& A- y/ L8 e7 v{
+ N3 w! @- p2 y4 c4 N3 r9 I7 D' epEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);" W' u d4 L7 J/ ^
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);9 h* f6 r! o" N0 x5 J6 Q4 Z4 Y
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
6 p4 g9 ~0 C4 G4 p1 M% IpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);- x. q' v: }; |; j' ?8 } Y
}, D9 V& q& b( F4 L% M" X, I
/ i0 Y0 A# T5 }" v
return pBeginScene(pDevice); R" O; ~, t5 D3 F' c% y
}% ~3 h+ l+ ^( |
; K# T: N% P. | F5 o1 y' [% w: C+ x! i
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )" r9 t7 B: y: ]( P d! |, U1 U
{: _- c9 f+ N; @( \; F
DisableThreadLibraryCalls(hModule);2 n+ ^5 X! j; ], R
" L" {. \3 ~* V4 l% kif ( dwReason == DLL_PROCESS_ATTACH )5 O* w8 g" a+ n, v9 Z" J a
{
7 o$ x W# ~4 \/ {9 D' f" q6 P" ?, {( A. S
//=========Log==========================//5 l% q, m. D0 C% P& h0 [* b) r; d Y
GetModuleFileName(hModule, dlldir, 512);+ z) d3 C1 [. k1 v0 R$ y5 r# `7 U, ]
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }0 F3 w$ u: o. z2 ^' D
ofile.open(GetDirectoryFile("log.txt"), ios::app);
" W6 a% s1 ~0 ]//=========Log=========================//0 U; ^$ z) F3 U' u$ p
* ?' ~! e9 q- r: {1 ~: a) n1 SpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);8 ~' o& g- L5 x
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);1 V3 r& D: t( D" b: k: u, z/ F$ B
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);$ L+ f& c4 ~% m) U3 Y+ c* w! ?7 w
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); Y( P+ L: U3 _8 Z4 |2 Q/ `6 `
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
9 `+ w/ }1 b- Q7 p7 y0 r+ V& l' X9 d9 X* L$ R7 r
}
& n' a/ u# t0 N1 _, n( s/ @0 k2 ?. _return TRUE;: M" A3 e, P. H# b/ _/ U; J3 C: @
} + [* H4 q! D s( m: K( ~9 w
1 G$ ?# k5 I& k4 ]- Z, I; k# z1 h5 P, ]$ Z d, p3 L$ `
Log.h (The header File):
. C4 P& v8 p4 D! s1 R" b! o" b9 k5 Y5 @: l2 L! V2 f
#define WIN32_LEAN_AND_MEAN
4 R1 E) r- m# o; B+ H: G/ Z; g& A% f1 Z! W
#ifndef _MAIN_H7 D' o( R* p6 M( I: j! d4 D" o
#define _MAIN_H
9 o" s& |; X3 q! V" l* Z' n* Y" O3 ^* W f; K$ ~
char *GetDirectoryFile(char *filename);
" n; d1 @! C! g5 `; Xvoid __cdecl add_log (const char * fmt, ...);2 s6 E5 |! L! D1 \! G* C3 U; Z
#endif
. I8 H* t3 r+ U$ `
+ @! x4 T; S8 D' I3 `3 D3 g0 U HNow after you have built your wallhack you will be able 2 find it in :; E0 Q: T; Z2 o7 o
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
5 ~2 o6 N4 ^. ?5 e1 J- U4 o0 W! c
# U* T/ d$ r4 _Now I will show you how to make your wallhack undetected:
: {$ `7 M/ {! ^7 j2 B+ F( t8 t1. Download D3d hooks. s- D0 I E1 D1 ?" M$ ]
2. Open the file that says "create device code made by me.h"
6 P! H/ V; |( s9 t$ A5 t8 Y3 w3. You will need to make another header file in your project and then put name it create device and paste that code it.* B! S* x! D3 s3 F% d
4. Your wallhack is now undetected.7 ?, o3 d6 p: B9 o
# m! _' |* q3 ^0 Z5 ]2 K2 b
Credits:+ O Q5 A& R2 c7 j/ {* T+ w( q
1. ME FOR THE TUTURIAL8 l) W- q/ X; N1 b# T& j3 ?' ]# u9 m
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
6 t% y1 _5 w- z3 f5 p4 u# c3. FATBOY88 FOR THE SOURCE CODE
5 N; i( D3 b; W. ~# h, p4. THE INDIRECTX I JUST FOUND :P
; ]2 e% r* O' |: U8 }# ]2 ]6 X2 C& E& J( }& g4 |+ S
Attachments:9 ?: j; n8 P0 M! ?" W0 l: U
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5/ T4 N$ R# b9 q) N
IndirectX: http://www.mediafire.com/?gimzgmeny11
: j! y, ^* \/ V* l& W$ h, V {6 JMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
4 ~" |* G) X9 A$ T' O7 ASEARCH THE LAST ONE UP
8 E* B Z, t( }5 X% ^4 v9 q__________________. E- Z3 ~7 W" Q4 t
0 B) h# o D6 ]3 H! c2 m
<---------- WALLHACKED |