原文
. {. D# z+ a! l( bhttp://www.descipe.net/forum/sol ... -your-wallhack.html
3 S* e5 J0 T' l# @* R0 j. N( ^5 B5 s; Z1 s# N/ T( K
视频教学
% u* l1 d! b# z7 xhttp://www.youtube.com/watch?v=6b5XMzT-b_U
! C; X0 Y* [9 O* n. j1 \6 P | P
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
6 S! X @- ^% i# J$ M
! {, b' {7 g- a: e( f, U0 i Hello shane007,9 o3 T- h/ }' w) L/ ^7 u8 p
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. % s% N1 K1 d+ H( D+ @$ @+ o s
+ H) W, n; K, G4 D, q0 l
Why not start with your first post today and become an active part of DEScipe.net now! # A* A& f$ e$ W+ Y9 B
$ S) y+ D. g! _ V- @: a: ^& D7 q
1 T, |* }" T9 W DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats
+ J7 U$ N$ X: }" Z3 t1 G% h How to make a wallhack and how to hook your wallhack! : y/ ]( {8 `) g% r, I
Welcome, shane007.! Z1 M# c6 {* _7 h, }1 d
You last visited: Today at 03:55
4 C2 E! _, u4 Q7 _Private Messages: Unread 0, Total 0.
0 |3 J+ ]3 @# t4 m7 DCredits: 200 [Check] ; t9 c' a% K. \9 D+ F
6 x8 e5 J1 R7 o. P
Home User CP FAQ Members List Calendar New Posts Search Quick Links Log Out
6 ^1 s: i. y( ]8 F3 a$ Z; y& u) C* q- ^. c5 Q1 S% n
) h+ ?: w0 w, |! I) ^4 m6 @; v( p& b' C9 X5 w
Search Forums
9 T" F% O! O$ e; n : K& S! }5 @3 _0 B" R/ Q
7 A3 G1 x$ {% h& x) t5 x$ t. WShow Threads Show Posts 1 h- \. ?5 P! e u% \& M, g L
Advanced Search . c- f7 Z' F" _8 \5 f4 h: _
Find All Thanked Posts
$ m g. n# Q/ L1 |+ X/ D2 V1 ~* b0 @/ h2 A+ y6 N) H2 n
Quick Links , l! h T1 Y! H& n6 R
Today's Posts
( w, G; L: e& C9 QMark Forums Read $ ~' ~! o5 P5 o8 p
K$ O+ R6 @3 Q1 L
User Control Panel 1 T o* X# d. }7 i/ S4 ]8 B
Edit Signature
5 N; d3 b9 O9 J( V" t: W2 O x 8 q( C z9 e, [# [3 ?7 @2 p: T5 y
Edit Options
! x& ^5 e7 S0 S; }4 q9 DMiscellaneous # B2 i8 H! u% H: k# t
Private Messages 8 N/ ^ z' c/ |9 q4 c& }
Subscribed Threads
) F `: o+ O8 I% }
$ } s9 h2 q2 r* z! P DWho's Online 9 J2 E% s7 Z" J/ Z
' o( `2 [: K3 l/ C( j- {
Go to Page... [9 `' I# l$ W# ?
7 w! O4 p3 u2 E7 }3 h6 ]$ PHow to make a wallhack and how to hook your wallhack!6 y. a$ a' f, N' v
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. ... 1 `# ]6 ?4 ^# @+ Q; w
0 a$ B, V& P% g/ g- x! L
Poll: Was this helpful? 3 H8 z% L8 m' J6 @6 P
Poll Options
* \( h6 K+ r$ \9 ^8 TWas this helpful? v: ?1 E" f. c0 G3 c
Yes, I WILL press the thanks button8 N/ Q1 M% u( {
No, I am a failure $ T' t$ m4 |* H I% G
View Poll Results
. u& a" A9 A: G. Q3 T6 k) e' e8 k1 z, D }4 v6 m( r6 \0 \
Page 1 of 3 1 2 3 >
/ S( s" T% I$ e9 E ' R2 ^5 p( j/ P
View First Unread LinkBack Thread Tools Search this Thread Rate Thread Display Modes ) O9 z, l2 v9 h
& o2 f! H. m9 n; b; g
1 R2 o$ S! w ]' B0 S) Z
' j3 B6 E. v1 x" z! Z) q9 H5 N4 Q 05-02-2009, 20:49 #1 / j" q' {0 N' V/ @- G& ?. u( F! O: D
killax9
0 g- ], \) z& H- YPunk2 a) W$ w( {) r4 k, [
8 L" e- y% s/ L1 W i. q. q
7 V: B" T% }& T: T9 |& A( c
& y6 m. M! v) ?8 [# J- ^4 ?/ a5 }- u D0 S: _* S& J# o8 X
Join Date: Jan 2008 r+ g0 K3 p. C0 z1 F" @$ I e
Credits: 2,701 [Donate] 4 Z0 [3 ^ j# J9 Z* B
Posts: 103
' }% w$ f4 W- |% {2 a; r. dThanks: 10
& {( ^$ W4 X+ [7 G4 c4 T* |7 f2 pThanked 48 Times in 25 Posts How to make a wallhack and how to hook your wallhack!
' I5 h3 u6 `# N1 X8 ?& e# U
6 F3 _3 X- l) Z$ }--------------------------------------------------------------------------------
( r. ]- A7 M* W7 R- X
9 Q6 i5 P" ?: {7 r" O3 nI will be showing you how to make a detected wallhack and then hook it for it to be undetected.
8 M3 [ C7 _+ WPossible Undetected Methods:- X5 ~9 G Z" c8 _ ]: a
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.2 j- X2 j) J( t6 Q7 k
2)another way **** it hack GG.! {( D! C8 D3 ]2 W3 q0 k1 ` U
3)breakpoint hooking;doesnt change memory... well changes debug registers.4 F) K) O- V* A3 r ^, c ?
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin! o7 w6 X# t/ }8 \4 b6 @
& H/ E' T7 O/ M8 e, ~5 E
Vtable:
! Y& n/ V% H% _4 }& u2 v9 Iit wont work for vista its not a vtable hook =)
l. S; ~6 M' _; X) d" U; f
j) X! V* g+ x$ q9 R7 v- m" J* Othe reason why my older version worked was cuz it hooked # Q6 k, X% U: Q. |! C/ c
Createdevice->pointers to the functions( \9 X. C2 L8 r. u1 ?! Y' W+ j
- K3 ~% X! E9 s) G' k! z C" zkinda like a class or a struct. u3 @( @, K2 H+ T' K. ]9 g6 C
4 b3 t/ g- j0 Y* N* k4 ~$ A- V3 q( w
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. c7 |* q, q ]- F
% i, T) t. K# ~! N/ p. ~% w0 Z4 q3rd maybe- some games recreate the device when a map loads...like BF1942.
% ~, P7 _# {' N+ O8 g" Y" T e1 h9 H8 V# f, k# T6 k7 t4 \9 u
Things needed to do this:* u* L% R1 c: n2 d' c" m% I! v
1. Microsoft Visual C++ 2008
: O! v/ x, v& G2 `0 a, L2. DirectX_SDK_(Summer 2004)# {( o( G; e Z3 m
3. D3d_hooks2 u( e5 P p4 [* i- @- h; B
4. IndirectX- n; M# f9 Y; w9 X
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM9 K# p# ~: D, C2 }/ b" N B* f/ I2 L
: c9 ^" B" A ]! [3 jNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:% O7 L! _! f2 w$ v( T1 ^5 O
' C2 e9 c1 G: L: R' h; P
YouTube - How to Compile WallHack [Tutorial]
, N1 a* y3 O( }0 i- K( p4 r, F
3 |' {% N6 v$ r+ q% A9 R9 G* R# s/ _1 a" Z' {! V) e1 o1 e9 Y& p
[' @# Y: K+ z: Y; \
Detected Source Code:
; s' e' G! u: H( r& j0 g) A7 k, ~1 h; e( ?; t
#include <windows.h> {$ ~9 q( K6 [( J
#include <detours.h>& x. G' h: G" \% I( a: u
#include <d3d8.h>+ v* h! A! W7 \5 ?. K; E
#include <d3dx8.h>& K K* K# e4 b* E
#include "log.h"
1 U6 s; G" h/ V- o) D8 ~% A#include <fstream># y7 E0 e* P7 F0 p* h
#include <iostream>5 h& f7 b/ n# Q6 E+ M3 A e
#pragma comment(lib, "d3dx8.lib")
/ d* Q8 k5 ^, ~. k#pragma comment(lib, "d3d8.lib")
9 \, k% p6 k; D7 E6 o6 kusing namespace std;% M g1 F3 u: q1 u) f5 b, h/ h# ^
static DWORD dwBeginScene = 0x6D9D9250;" [: C) S2 V' F
static DWORD dwEndScene = 0x6d9d93a0;
( a' w+ W0 c$ Dstatic DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
; k% P+ y |' l/ nstatic DWORD dwSetStreamSource = 0x6d9d6760;
1 ^' U7 b& E; B; a- zstatic DWORD dwSetViewport = 0x6d9d5b90 ;+ q( {4 H, h4 ]' o) [& n4 m. c' S
: i- c2 Q e( y# [) e; f% g9 _
* u! @; w4 a* l9 C4 K( h9 P9 {int m_Stride;
' |( z4 y) U/ N# @int texnum;+ ]; H# c3 o/ ]4 S
int nNumVertices;# q% W- ]2 ] w
int nPrimitiveCount;
, x8 c' z1 I2 O& L* l
- }7 d7 {: X7 D$ w' M1 PLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
# [# L1 x1 i! U# p R/ M4 R1 p1 |bool Color = true;9 a; _' V% S: `( j* I0 ~) ?' E- Z8 H+ n1 R$ |
bool Logger = false;. q1 J/ k8 `' _- [. u- v$ b8 |3 P
ofstream ofile; - N1 ^0 U) N5 {9 _* f
char dlldir[320];7 M0 N3 w4 |$ D9 ?
float ScreenCenterX = 0.0f;
3 o1 k4 K% [) \float ScreenCenterY = 0.0f;
6 J( Q5 {0 r0 x% n7 @6 ? abool xhair = false;
8 O1 I; u* s1 P, D; ?9 u9 |. F6 t: R$ ybool WallHack = false; , G' m* ?0 {. k
bool WallHack2 = false;' V& E, u6 o% g0 D# R& ]
HANDLE hand1 =NULL;1 I$ V# o; W+ J2 ^" m7 `. _( I
HANDLE hand2 =NULL;
0 Y; |/ z% p p' W
3 w8 b* ^9 o+ {1 { [$ s5 k" QDWORD bytes;' q: y/ ~/ Q# i f, t0 z
; h( K; l* G- _6 ~) ^% Y//Logger- J1 Y1 Y L' Q" N4 E7 N4 {6 Z
int texarray[1000];
' t9 w m6 M2 e& c: M9 n" W3 xint arraycounter; & g& i! w6 x4 l* v
int delarray[500]; - p, k7 k5 }6 \9 L
int dcount; - Q; b" E" h) d" \. n
unsigned int arrc;+ j# \9 U0 A+ F. V7 t+ G
int i=0;) O: @) C' k; U$ D
! Z& \- o( ?: u; D- _1 i) d2 z$ {5 S8 n( }+ \: e
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );6 C- W; t" s$ p5 d) @5 `
0 W" \; g6 O# |% F/ ^' {# Z
5 g1 z7 v1 v/ k5 k7 D! gchar *GetDirectoryFile(char *filename)
% U6 @2 q a# o) H- T4 l( \{9 K$ p; a: J' S" K- d+ N* ~
static char path[320];
) ^$ r% ^/ ^! dstrcpy(path, dlldir);' J* M( P' s& a7 A, j
strcat(path, filename);
! C' a% Q# u$ ^2 Breturn path;( c4 y- f9 a* f: S6 c
}
: U a8 w( |1 B! a8 r( J0 t/ ~* r% O& i- `- G
void __cdecl add_log (const char *fmt, ...)6 \3 U; E1 M0 J8 ]( |& z
{
/ F, P. X0 D0 G$ O1 }4 H, m9 uif(ofile != NULL). f5 F7 x( W+ W7 A
{5 \7 x8 d! I& v. C4 f0 X
if(!fmt) { return; }3 y" G/ r5 n2 \5 e6 M/ o
* G" _/ y0 S* j" jva_list va_alist;
; B$ |2 [% _& L3 bchar logbuf[256] = {0};
, g. D0 I2 {6 b+ \# Y% \# s2 H5 ]5 x% ?2 p# }
va_start (va_alist, fmt);
- s' B) C/ [" W2 P_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
7 J, B' s" k+ d* Z9 ]! yva_end (va_alist);% e- a% t9 |$ h* V( ?, x6 i- B7 s
y4 @4 R% K. R( P4 ^; @7 v9 q1 C! {
ofile << logbuf << endl;; M: o @5 Q7 ?' s0 ^
}4 }$ W6 K% ~: g1 N% f+ e; y! f
}
8 U: \+ v1 W" K( B5 @: {. U o }8 j9 f& g0 ?( a8 L2 X
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
) {# s/ a! [" E. I( A{8 F) l. _ F0 H) W7 }
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )! e s4 g8 d) y, D' k; G7 a- {0 k
return E_FAIL;. X) f! n& f8 D! E$ x, T9 y
4 f) Y8 H+ E3 |9 y
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
3 z" Q B6 }( z- w. _ M|(WORD)(((colour32>>20)&0xF)<<8)
' l3 S2 O J: y3 b6 \) U% ~|(WORD)(((colour32>>12)&0xF)<<4)6 U( R, d( I: o; D) p' l
|(WORD)(((colour32>>4)&0xF)<<0);
7 i& p) K) s+ W4 ?9 w/ X7 \2 R0 F
4 T8 g+ }; S7 A# p, t5 MD3DLOCKED_RECT d3dlr;
. S7 _: G0 G% x( V(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
* ^* V. H+ `) `6 {2 \2 y1 gWORD *pDst16 = (WORD*)d3dlr.pBits;8 B8 |" y3 A2 [/ D c
$ ^- _! u- M- C4 q
for(int xy=0; xy < 8*8; xy++)
9 ~" W8 S7 w7 h$ f6 x7 e4 P*pDst16++ = colour16;
B1 l% K5 {5 l; Q8 u. |% t+ \2 T* }: b. N8 W! [! Z: m! d
(*ppD3Dtex)->UnlockRect(0);
E* n$ S! D. w) T/ k" ` J$ o6 b# ]$ U! g
return S_OK;
( K2 B' I5 g0 \/ b- G}
+ S u' f0 Z. y- I5 ?' f! r4 R: q( k3 u0 M0 b8 p% _* X
! I1 {8 L, V% c
//=================================EndScene_Start=== ================================================== ============================//; A1 _8 M2 N7 ^1 b1 s
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
3 I5 \( `+ ]5 V: [oEndScene pEndScene;
t3 f8 l! Y9 f6 `* W; u, k# }+ u' R* B5 U. {. i- m# G- ?7 h: r% X C6 f
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
/ ^) [2 V' g: ?, b/ q; U! Y' h{
6 M. Q1 Y; S8 {) a4 a( E' Tif(Color)
! Z) v: \( z* q" G{ 3 \+ R5 f7 @6 m8 @
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
% x* z6 ]% t! b5 K* VGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));) \, ]7 r$ c2 G& P: b* p
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));8 {$ M5 z5 X2 z. ]
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
7 s4 g9 ^) a5 ^* L6 z' h: f; [GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
: d* Y6 S+ j4 I6 E) u A& f5 _GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));8 f( |/ G5 I; `: k) w/ q
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));( x) T" d. s# Q- j, ?
Color=false; 1 ?7 H- L& `2 B
}* w, Y' q' J, _4 V/ B6 @
0 V: C& b; ?/ T# D4 f) s7 Z3 L& O
if(xhair) A1 r: h2 Z+ `, T3 S D8 I
{+ |* N6 N% S" N N+ p% h
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};- b( m# S4 Z8 }. e; l
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
7 m& U/ E8 S* \/ m8 [ apDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
0 ?9 n g" H$ bpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);& n- z# G$ R6 t6 j8 O
}
/ S- [, Q/ b% i( `# c0 l. m6 K/ ^) V+ \+ q
//=============================================UnHoo K_Start=========================================== ========//
* e' P* u/ b5 B4 U& Y; N' ^: P
7 U" Z, W& F$ O z4 I: v' l0 Cif((GetAsyncKeyState(VK_F5)&1))
; m$ v7 q3 F, W{ 7 N$ X; X. i4 x3 P
int end =NULL;+ \2 R1 K$ G0 U, }/ d! Q
int dip =NULL;0 D, {2 |$ P; r. t- M
int svp =NULL;
; B) f. l1 S( L6 vint sss =NULL;
* O$ _( ~7 A) q/ b/ H
* [( Y4 J# C; o! l8 u
# T3 m) w4 Y# o$ J- l9 PBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
$ \2 n# [* K/ I, F# x2 Thand1 = GetCurrentProcess();
# `9 b+ k4 C: p: |& S5 |7 J4 dDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
\$ K0 L/ s: g3 d) E a8 j1 X1 Qend = 0x6d9d93a0;
6 h: R' v8 F8 Q( j; ydip = 0x6d9d73a0;$ ?, J( o7 g' `9 X* u% M
svp = 0x6d9d5b90;9 i* l. l8 A7 S. @9 s; ^
sss = 0x6d9d6760;! [8 z; N3 p0 m- K/ G; t, L* m* U
8 s3 O% i/ J/ B) LWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);8 j$ l7 }" d! Z+ ~
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
7 @3 M) [5 E# K1 U/ l; o; @2 f4 [8 E& UWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
( }/ N& v* Y7 N8 H, U8 KWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);: B, ?" j" o8 q* h) h! \
}
8 \0 U1 s; c/ ?. W) q2 Z//=========================================UnHook_En d================================================= ========//( d0 l) k$ u e% v+ K k
5 x. Z y5 x0 K) h) s% m& lif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} 4 T( ]' H( T' U9 y8 K0 c
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 6 v2 a4 f" l2 `* O
" V8 J( o8 x$ L. N
return pEndScene(pDevice);
7 g" x4 _) U# a}
" v* ^* r& l/ \! G( U1 _' H" o' E1 b//====================================EndScene_End== ================================================== ========================//! |- [8 ]% _' `" o8 `4 B0 T, S
' |: ~( s8 I( }2 a
1 }; Y( ^; v# z8 S/ j
$ Z3 x: Q' B, n* P4 N* ~6 P2 o7 H
9 o; E# x$ T; T//=================================Dip_Start======== ================================================== ==================================//: j- q( R5 K3 N% g/ X, g
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );7 Z7 y6 X: q2 X9 M. W
oDrawIndexedPrimitive pDrawIndexedPrimitive;
6 ?- [5 X% c& ?( |4 P3 N
" {8 ^ }- P3 O: oHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)" J: \. \8 ?- _# E. ]# v+ S
{
9 B- k, G0 m* O' Y4 h2 i' C# F8 L/ L
- `; K V) I% y, K
4 b$ S+ N6 A; l0 y3 n
, ?, q9 u4 ~0 k& o0 B" gif(WallHack)( \5 W. ?3 g- g* _2 t3 m8 s
{% z# k) i9 i1 L
texnum = (nNumVertices*100000)+nPrimitiveCount;
5 c9 T3 w! p4 }if(m_Stride==40 && 1 r6 C6 j# l6 w& G! Z2 Q
8 B+ s1 u6 B4 _$ o( N0 }
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||
: X F3 h O9 B" y(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
; [; n4 G( H* W# {! l0 p# c1 S(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||+ s9 h. W9 |$ I) ]) L0 Y: J+ C
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||/ Z9 W& C/ W* U
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
5 S6 l* j4 l7 f(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| / n2 b* y/ u% `/ `$ l: d+ ]
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| + p% T) M; ]& g" x3 ^& ]
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| " i8 T3 W, E! `# O/ n& w2 F
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| " N7 ]# z' v9 F- D' y3 ^# {
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
" N; m/ v5 Q: a4 ^' S(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&; O0 [$ p0 z3 `) N1 q7 ? I
' X, ~) \/ a. w( |5 ?% u" G h6 p; G
5 j' y6 ?6 X: ~( P' t+ o% @
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
& ^* \! f# z5 u( ` p+ q(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
u& M3 c; {+ |- | |7 P9 S(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand l7 N! ?" S7 W/ s+ l; h6 H& f: L
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm $ `1 t" e, _% P, O$ e7 r3 S
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)7 c) _0 e O; E# A7 M" ~
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head 8 [& D; O5 o" x ?1 p G' A
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
3 [1 ?8 `& {9 _5 Z$ r: Q(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest . ]+ S, C, j" v2 u4 X
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants" F$ {; X, @9 S. q6 M/ r
u% C7 j' m+ z. l0 e{
# F* c. d+ N1 v" u, E- b- |1 F( }pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
. `7 X; U7 B, ]pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
% A) g7 C: h9 ?6 D! {6 epDevice->SetTexture(0,Orange);
( {* W$ h5 G# @, c2 [- J+ m6 X//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME ); r( {- y" _ N
. F% K5 a) z) X5 e
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 z7 K. _- l) l; q! x$ j
2 l8 q0 J& i& e+ s
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );- t# s. S9 _- N( @, z
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);0 I8 C+ G: y* c) I3 Z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
; T G% M7 }& |, r% C2 j$ W( A7 dpDevice->SetTexture(0,Pink);
. U1 ~7 O5 ~$ `) Q+ |. F( J4 Y5 C9 l6 |; u}
7 W0 ?8 q0 ]. z+ Z; x! g) X7 \ `# g
if(m_Stride==40 && texnum== 21300174) ' x+ c; g% O5 l) A8 ]9 ?/ c
{7 c, Z( s# d- X. K( N: ?" t
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
8 v* d7 y) g! U4 G# @pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
: G/ h; w* _; Y# a' KpDevice->SetTexture(0,Green);//GreenNade
; m5 B7 J$ W+ qpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
# E( {0 m1 O6 x0 h0 j9 BpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
0 w& w' X1 u" s" HpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);1 f$ o6 p% d- F( o
pDevice->SetTexture(0,Purple);
& N4 ]- q% m% b V3 P}
, J$ p' C/ q/ ~; A/ P$ q3 o& t- b
' `9 T+ M) x: r }* k k E) u4 C) r- {. `# N+ a
if(nNumVertices == 158 && nPrimitiveCount == 131)
/ F- w) H- }9 D* y `* W9 b, z{* V" }2 e8 j* Q0 Q7 E; Y0 ~4 f
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);. S0 t4 g! Y W( b- i
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
- j* q. u- a0 R. j7 x6 C& GpDevice->SetTexture(0,Red);//GreenNade
6 b8 I0 D/ T( v: o0 CpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);3 P4 A3 q- g+ [* b( r! K
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);) s; B9 M6 D) w. d; y
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
' A/ i& x, m& A, ~* [; xpDevice->SetTexture(0,Yellow);4 C e5 @$ P& U: o/ y
}' j- b2 H& L( d
$ e" f3 y+ L2 {. |if (nNumVertices == 171 && nPrimitiveCount == 143)
( v0 G/ z8 F i% F{: k& H1 } X Q# S( y) x
; E, K; e/ l1 X+ |8 N
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
1 Y9 P) Z% y+ F' F/ G0 K# Q0 tpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
( S, j% n, w5 r; l1 v! s- Q9 F; tpDevice->SetTexture(0,Red);//GreenNade4 |! U7 ?9 i( S* e7 q$ w
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
- ]1 @7 Q; k& u. EpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
* N) r0 W# t' W9 P# p% p7 TpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
0 U5 O! o$ k+ a# rpDevice->SetTexture(0,Yellow);
! V" d' U3 b9 r3 w+ I5 m+ q8 I+ u}7 M1 ^' _( b; y- K
~/ Q4 b+ q2 \' y
2 M. s/ `( \5 D9 V: B6 n# g9 z8 V3 c/ B( t( i% y; |' }+ K
if(m_Stride==40 &&//face,mask etc...
6 J5 c9 T$ j6 e {% h2 O(texnum==36700612) ||
0 ?4 m" q2 ~9 \& F(texnum==9600172 ) ||7 b# G! H! l; D6 V4 ?
(texnum==14200236) ||! w! [2 t" r2 ^% M* E
(texnum==37800552) ||3 [. T& @: I' a# e; a9 F
(texnum==28100486) ||
' } e% q# [$ v, d2 \(texnum==35500568) ||
& C. d. ]+ a7 Y3 s# @8 ]! x(texnum==2200024 ) ||/ S0 e5 Z; C, g1 F
(texnum==16200243) ||# S( H& c' g# x) S
(texnum==31900466) ||
* i3 y4 I! K7 G( W& @; z$ R(texnum==19300342) ||. m/ N" V$ X9 @' h
(texnum==36200604) ||5 |2 k) r* E; v/ g" P' Z: e, R; l
(texnum==21300290) ||
A4 W; I' {" q) X1 l: G(texnum==35700558) ||
. i4 [9 F8 {1 {9 u- L) z(texnum==22100396) ||. N; [0 y4 B- U! \6 F" f6 w6 `+ Z
(texnum==36100604) ||
" c# G9 N Q) \! e V(texnum==27100464) ||/ w& S& b [- g. L4 }; f6 v
(texnum==11400180) ||5 {; Y( y7 k. u L; {
(texnum==34900580) ||
' I3 ~1 h; p! N) ]% k1 C6 K(texnum==13200212) ||
/ w: K+ k; @0 C/ X(texnum==34700538) ||
2 J, W. |& X. l' e" r(texnum==19500352)&&
Q; z% ^+ y8 D" X, h( z(nNumVertices == 448 && nPrimitiveCount == 776))
2 E3 _3 k @4 ~5 f. q G5 e- n( @7 m6 F; ^7 D7 m B
{+ F) z: d/ E# ]& s }( H
pDevice->SetTexture(0,Blue);4 l: J0 x5 C5 o2 g5 \ [
}
) `, Q! F s9 c4 y f' u% B' [& |( E+ e
4 x3 `/ ^3 e; Y1 i: [/ X4 G$ V{
$ J5 V( N6 B. lpDevice->SetRenderState(D3DRS_FOGENABLE,false);
: r6 ?& [& o6 Q2 T: y E7 P) C}
( v- \# W/ z7 P1 R2 S
& Q* H' K* [' M# H6 ?! \5 c/*Logger7 R1 H. u. A+ \- l4 Y& Z/ { r5 A8 B
if(m_Stride==40){
7 @/ ~) d8 a6 K) d
' m d2 w% \1 O9 l' d
; F# s# G; o% Gwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
Z: h' O; Z8 W+ s# `while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
( [2 E$ ]- b" Y: Qbool alrdy=false;. [# j8 h4 w: `; k0 L5 @. [% l- W% e
bool inarr=false;
6 W9 S! C$ ~6 f5 u: ^' s5 N( ^; |2 P
if(texarray[arrc]==texnum)
7 T" v( {$ u( P2 xif(delarray==texarray[arrc])
* e6 Q, j( D- a7 X% Y9 A4 Yalrdy=true;6 P+ ]' H7 Z+ o: c
for(int i=0;i<dcount;i++) //sees if said texture is in delarray9 C- q: w. c& Z1 q9 ~
if(delarray==texnum)3 m) \% I: ^8 \! j; C4 l" z
inarr=true;& e4 d* J' m3 S% O! v4 X+ h
if(texarray[arrc]==texnum || inarr){ //If true, color model differently
2 {* g" `# Y( q) h0 j! m; mLPDIRECT3DTEXTURE8 texCol;* M( k) w4 W9 A$ J6 g0 j5 I
DWORD dwOldZEnable = D3DZB_TRUE;
6 k' D/ U& h6 d! C) T; }pDevice->SetTexture(0, NULL);" Z3 G0 i8 b. s$ O% J
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); 7 i/ N2 W# p+ D
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);7 J/ J6 v/ s& \6 M
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)8 [8 e# e7 f& N( s3 w. N( A
texCol=Blue;+ Z- Q/ ?! e0 x% I& S
else
1 a# j5 t' o$ f' KtexCol=Red;
/ u* [! r) e6 ]4 R1 R d2 fpDevice->SetTexture(0, texCol);
7 R' Y3 B( P5 P( Q, V" ^1 Q4 [pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 u5 m2 ~) G$ T: S; p! r7 z0 v
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);& Q: B1 y' b0 e( E9 O C* X7 w
; H6 v0 b# c: a5 u}
) u3 y! S* {) i- g# b$ k5 S5 m} {9 l6 Y W/ E! P& `' a. T
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile1 t5 y5 k0 T0 @. X u
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
& [$ `, B) K$ J5 Q. e8 Wbool inarr=true;7 [3 }! m6 r; m; O$ \
for(int k=0;k<dcount;k++){. q3 L7 v: t% y8 q6 O
if(delarray[k]==texarray[arrc]). W/ Y4 W1 F/ W9 ^) F
{$ _7 V, ?: _3 I) Y. U8 S2 u9 A9 C
inarr=false;//Found selected texture to already exist
# [5 J" y7 I2 i8 L+ A. Kdelarray[k]=0;//Delete texture7 ]7 l3 ^0 u% s( _1 n9 c ]7 Y5 E6 ]
break;//Cancel loop2 H7 Y6 g I7 }( e+ Y
}3 H& j" Z' k- y$ k9 z0 _
}
' S% e$ ~/ I6 h4 H! Y1 Xif(inarr==true)" `# _% C7 q7 @1 C1 L2 h/ l& |' g% z
{
4 A1 M$ Q: [6 {' U* Jdelarray[dcount]=texarray[arrc];//Add texture
( [! e' h* D; k% B9 Z/ Wdcount++;
^/ j) X7 m, `+ ]7 l}! t2 u( n+ t/ q1 n* g
}
8 m. r! V3 n6 t3 m6 s; T" \if(GetAsyncKeyState(VK_F7)&1){+ |' G/ a/ G w- L3 w$ a
int total=1;* w: n/ N' H7 L" I
add_log("omfg values?!? {");* }. c! w- C( `; Q& W9 `
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
( A i$ V$ e; D/ [. i: \/ rif(delarray[x]){0 n: `, f0 N& J$ ^ s
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
# T8 T5 _4 E8 s, |5 z" q" Qtotal++;
& m' Z, D M1 g% m8 y}7 v& M/ {7 \! e& X. M8 [
add_log("}; %i variables in array",total);3 v* |* K1 a2 j
}# H; }# Z! }0 |8 A! V0 o1 a; ~9 w
bool found = false; //THIS PART CREDITS TO KRYPTEC
- X4 |' i8 i x4 ^for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION+ k1 W$ u9 h% V! L0 ~
{
& p" u/ r& a b( H0 Q }1 y" o: fif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT8 |6 ?% M3 p7 A' u# s
}( @/ E' T9 K7 ~
if(!found && arraycounter < 1000)
" a3 v9 N9 r! m3 H2 m9 z' G{
' @( ^$ e3 E: L6 _texarray[arraycounter]=texnum;1 r9 z. a' S j$ `5 q% \( u
arraycounter++;, t3 g, U9 K2 Q1 n0 x& C
}*/0 X; j. |% T% l+ X
0 _; @- [2 p" v; i0 D
8 Z2 N9 m+ I5 d- m: N}3 R: }8 @% W& \7 f5 D) d8 l8 w
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);" I+ C* A2 K* | G% m2 o' [) i, y
}
* W: @# y+ q) p' Z//=====================================Dip_End====== ================================================== ===================//
) y$ a2 J5 Y* R6 j; w+ N3 P3 B8 R" t) y1 P' e/ k
2 @" C- J9 M8 ^4 J9 x
//=====================================Sss_Start==== ================================================== ====================//& J7 b" `* B' l r* g
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );2 X" [; d. \" g2 R: R, z/ V
oSetStreamSource pSetStreamSource;- q1 e$ g, p+ U: L, K# S
6 b( D5 R% T% L$ W
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)8 v' r4 b% J7 r' {5 y
{
3 I( a: m* J8 bif(nStreamNumber==0)
; G, ]3 j9 y' d9 o- b |) N9 j- qm_Stride = nStride;2 Y2 k9 @( N4 J/ m2 `1 f6 W
% g2 ^% o- a* z# F
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
0 R' B" t* w; K& U}
9 x, z% k% ?" U$ l) o' O: X- h//====================================Sss_End======= ================================================== ===================//
& P# ^2 D9 ]: J: F$ B q+ N; x9 e! |
//====================================Svp_Start===== ================================================== ===================//
1 |4 M) g$ ?2 z/ h# Vtypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
; `" L! w4 p4 n% h5 e: d# e! [8 QoSetViewport pSetViewport; J, ~) s# S) x
9 e8 ]+ L5 L( Q, ?3 o: gHRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)9 R* C% ~* b! a3 M( E C. E5 W
{: G3 l! b7 u9 X5 ^
ScreenCenterX = ( float )pViewport->Width / 2;
. o8 u6 h5 U9 ]5 P, m9 i% @0 ~- XScreenCenterY = ( float )pViewport->Height / 2; ) }9 x6 a% p1 L- i' c; u3 f7 m
" z( N# t/ l. `# H$ }: r6 Zreturn pSetViewport(pDevice,pViewport);5 d( p8 V; p2 U. v/ m* Y0 g" W0 l
}
, b% G- K& U a5 S' a//===================================Svp_End======== ================================================== ===================//
J, k/ }# y! |" P! i% x! l5 t/ F& M6 F# X# A
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
9 x* Z! [' t" |9 `9 BoBeginScene pBeginScene;4 G0 r2 `2 D9 p' b) D
3 z# }5 \! D, ^4 A4 UHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)/ E& a2 z& Q, ?+ j o) g! k! n
{( H* ~2 S- E& M. _( { J
if((GetAsyncKeyState(VK_F6)&1)) + @$ [2 t" Y \% M0 p# l
{1 E% u" E$ ?# s* d. p
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
9 i; U4 N9 O& }pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
2 V/ Z. S- L. ^5 CpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource); C0 [2 R/ A' m4 x& |
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
9 Y1 G4 D" w/ g( J& Y7 H2 ^}
4 d% K+ J5 J: e0 ^1 ^ l, I, w" N
return pBeginScene(pDevice);0 ?' L3 c5 n% c8 H2 z
}5 R! n: X# O* |% \) e
; }3 j2 a; z" V" p# y* H# ?: t) P4 {, _3 D
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
. H. b& s! P/ E5 ~ w5 p9 P2 G* n{6 c3 d B! J1 {! d& U D, T
DisableThreadLibraryCalls(hModule);7 v3 t" ~! t# S+ N7 P3 f
8 y. E' M! k4 k5 n6 u
if ( dwReason == DLL_PROCESS_ATTACH )
$ C, w* D* z, @7 K, J3 x{
1 l8 [* F& |. N
& ~) a2 K& }6 ]& p, n' P% p//=========Log==========================//
( x& m( l, s) Z+ Y# o2 {# GGetModuleFileName(hModule, dlldir, 512);+ B6 N6 g) g% l1 b8 `" N1 b" I
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
( O5 s% C) }0 K. v. u" q1 j9 Nofile.open(GetDirectoryFile("log.txt"), ios::app);
- i$ `: I8 d! i* {//=========Log=========================//9 Z% F6 n2 o% Z
" ^ V7 u5 o Q3 |( Q: _# B% EpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
& E7 F$ T9 X3 v9 HpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
% q' M+ k# i0 Q/ u6 [pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
' J J6 w' \5 m' O6 u- bpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
+ G. N' |, x& g* `+ F( c, gpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
- [7 Z& N$ [" D( J+ P+ m
7 [* _$ M) T4 K7 G! \}
( Y" i0 l4 i2 |return TRUE;2 H+ H7 J3 Q- m
}
% d$ k3 v4 j) e: `6 t- u2 R. L( g) |& S( T4 n7 {
6 C4 S: ~$ J k: o4 u2 ]4 h
Log.h (The header File):
6 S F# c# y" U) o, q* z' k7 z. ?6 b. k$ i
#define WIN32_LEAN_AND_MEAN
6 w) `( y, {2 R+ [
8 [$ `( E( e7 Q" O. ^: t#ifndef _MAIN_H
. Y+ ~# O) B. O j3 o- v#define _MAIN_H
; R9 r6 X, R' \3 s8 I' f! q& M
" y+ G* i7 h: d4 m2 u( uchar *GetDirectoryFile(char *filename);* e! r/ Q' p2 `* X {% I
void __cdecl add_log (const char * fmt, ...);$ Y5 `5 s5 b. _" n9 x: W V; G3 L$ g
#endif ( h9 o5 U7 G; E* j: h- }
8 f( t$ s& p$ u9 l$ j; dNow after you have built your wallhack you will be able 2 find it in :
. @5 v- u2 H8 E* N% RC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
( j* F. v. i1 ]- r j4 j# G4 W9 r U
. r5 ^) |7 |0 s& INow I will show you how to make your wallhack undetected:
: e/ R. ?+ W2 ~: R1. Download D3d hooks% x- V+ }4 t; U$ r3 }
2. Open the file that says "create device code made by me.h"* T# X1 Y2 M" P% q
3. You will need to make another header file in your project and then put name it create device and paste that code it.
Z9 [8 e3 B" Y) K4. Your wallhack is now undetected.
0 t2 @/ f/ u* ^2 \* I9 a6 z# B$ c6 `
Credits:# [4 d A- N m$ |
1. ME FOR THE TUTURIAL
' F8 C; {- r8 d# r; W3 d6 n: e% b8 p2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
. Y+ Z; O$ q: b1 n- H8 n2 P3. FATBOY88 FOR THE SOURCE CODE. n% d. w4 q' R+ ?. [" f) ?
4. THE INDIRECTX I JUST FOUND :P
$ k/ r! x7 w& X& V/ X2 ?" R5 w
1 ?1 Q2 Y- ~9 vAttachments:- n: O5 d2 M0 t5 [
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5, @# w0 Q& F2 o; y0 C
IndirectX: http://www.mediafire.com/?gimzgmeny11. f$ Y8 t3 j+ O9 v
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj53 a4 r4 u' U( H
SEARCH THE LAST ONE UP: X5 L F: u1 d0 V
__________________0 K% L& L) x- `+ B
- r# j! u6 b) r. [! S( ] O <---------- WALLHACKED |