冒险解谜游戏中文网 ChinaAVG

标题: 【代理DLL汉化研究】wallhack制作教学 [打印本页]

作者: shane007    时间: 2009-5-26 11:41
标题: 【代理DLL汉化研究】wallhack制作教学
原文8 X) L3 u7 }6 P( _% R
http://www.descipe.net/forum/sol ... -your-wallhack.html% L* T" L1 @# w9 N$ q. C/ W) C, c
  y+ t5 I9 W8 B8 {$ u
视频教学
, _$ X: S0 L& S. bhttp://www.youtube.com/watch?v=6b5XMzT-b_U    . f" t+ Z# W3 r6 R/ p9 A

" w* {, D. Z' Z$ f" v; `HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
7 |1 n. }" I! Q1 T- {+ r! l" y
. F' n4 x- _6 i7 g Hello shane007,
; i8 a& q: {1 ^5 c3 _, r7 O! lOur 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. ! W! v$ t+ O& M0 [/ B
8 n* F* }/ [" f: L# D3 y2 i
Why not start with your first post today and become an active part of DEScipe.net now! & k3 @; R* j4 W0 C
; S6 U! V4 C# n! r8 c1 ~4 z) a( R
2 w/ L- M' c8 @" E; f
  ! x7 s' Q0 e# }
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  
% t" `4 x# n/ Z  ~) J; Q! z# t% } How to make a wallhack and how to hook your wallhack!  
, j9 t+ c7 ]4 q9 J5 G5 y: X$ G7 l Welcome, shane007.
! j$ q8 k, E$ _+ QYou last visited: Today at 03:55 " \  v! s) l5 r0 a% p& w
Private Messages: Unread 0, Total 0.
5 s3 e1 k1 c# F4 o/ kCredits: 200 [Check]  ' T& H2 e, W1 o1 n' n; J

/ T1 I- U  {0 _Home User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out - l& R( E4 x) |* g$ P: A

  A  |+ p1 k8 {7 o% S% N3 z1 s
) V3 @0 L9 m% U; a' T, X  M
$ v2 }- W1 x4 K( tSearch Forums
$ ?9 j7 N! D$ i      $ O6 b3 G, c  W/ W3 v- i, @- x

& Y( r( T( Q3 z& F2 uShow Threads   Show Posts  7 r) a9 Q: r- E3 y
Advanced Search
6 N, i% s8 n" }" j- e/ j* ~* g9 c- aFind All Thanked Posts % P4 n; @3 l" Z0 R  q. Q9 |
1 F+ N+ G$ R, e* G: Q% }
Quick Links
5 V" c3 b6 {0 N% U4 kToday's Posts
4 @: e; H2 {6 k5 \. NMark Forums Read 8 r* q9 i* l& F) G' m
- z, R' K* g) p: y5 G" P
User Control Panel & w1 F: F. s, ^7 U+ G
Edit Signature
+ _( o3 d. N* u) u7 t$ p- \0 }
* h5 N. W6 D% F/ @1 E6 UEdit Options
2 r0 l  t8 S" B5 A# uMiscellaneous / X9 V6 J" V; }
Private Messages
0 W, B' Y/ {9 b6 @Subscribed Threads 2 G5 I- G( H2 a( v% N8 l; M1 e

; G1 y9 U7 N% |! ^4 J/ e+ M4 tWho's Online
& @8 o; T- m  C- K5 h* j9 [: R  f
Go to Page... 5 g/ s0 R1 u2 d3 r, b! _. j
   ; e$ C( {4 W" S) G1 \* R
How to make a wallhack and how to hook your wallhack!0 s5 G8 |: l0 `; P0 x
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. ...
! [9 t" I) t- g& X. U; s9 H- s$ m5 Z+ i) x2 Q+ e0 E
    Poll: Was this helpful?  ( t$ H0 k3 V- C  f
Poll Options
! v" B) ~8 L) q, X8 hWas this helpful?2 A% w8 u. h3 N% y) U
Yes, I WILL press the thanks button
. y8 B0 c5 A5 J9 jNo, I am a failure % J& Q! J0 p! s( S4 k8 ]$ W" h9 q
View Poll Results   
4 q0 c9 r+ N- {$ c: b4 l0 V; P0 N+ a' H
Page 1 of 3 1 2 3 >   + J2 j& `6 N* \6 h- D
6 a. n7 ^9 m5 j5 i& k3 o: H6 b/ ?
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   ' Y; j* B8 \+ d- b+ k

* E" q3 `0 i* Q2 d% w( |! k% ^" l( @" n2 ~8 [; O0 }5 @
  
1 o3 r; x. A  [/ {( B 05-02-2009, 20:49    #1  1 G- k, P& x- E; V
killax9
# D& P: w5 K. T+ w  \) @( v. DPunk) H3 w% s' Z- P+ S1 }! b& o/ j
6 l# ]9 c) }; z, W0 O/ }/ i' L

6 d6 `9 i' \  b5 i
6 [. T- G; n% I1 f
1 S1 O+ U8 L) v. |* O3 rJoin Date: Jan 2008
) p" H1 X$ b' `& N/ H( XCredits: 2,701 [Donate] - W! P$ O" i. g, C
Posts: 103
7 `2 t2 f. j% \Thanks: 10: @) L: K6 O2 f
Thanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack! 3 F5 @: C( S/ U
4 a- n! j* J( Z* E& D, \8 T% O! |
--------------------------------------------------------------------------------, B3 a$ V7 q8 R
1 g  d& K& ^  {& K& y5 G, r
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.7 j& d9 I5 }" ]$ J" v4 o
Possible Undetected Methods:
# g- G3 ~  R/ o( H! S1)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.; W; X9 h5 W8 m" H, O& y  F
2)another way **** it hack GG.2 [$ v# f' G# y) m5 C" G
3)breakpoint hooking;doesnt change memory... well changes debug registers.
1 V! U# W) k3 c' Y. d8 F4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin7 u- l0 L# q( f( t0 i& m. j

& ]& C/ {6 X5 [7 W8 ?. I' }7 `Vtable:
$ f* y9 }. t" N9 N) ]it wont work for vista its not a vtable hook =)
% \/ q, y8 p" f$ h! q( |( `! j. M/ J: E; r
the reason why my older version worked was cuz it hooked , p  @! l: f# r0 `4 B' f
Createdevice->pointers to the functions
% L+ C8 {' `4 s# h# B, S3 ?; x6 o
kinda like a class or a struct.- ]1 D1 V+ ?$ c: |4 B  C7 e
$ P6 m9 _6 `& N* u+ ]" p

4 F8 E4 X) s) v6 V( O  W3 J- W/ Sand GG scans createdevice right off the back and the only way u can hook it is a few ways {DETECTED}either when d3d8.dll loaded in....{Undetected}or reversing to internal call inside the game[0x00000] pointer.
; Z! p# Y% f) o3 ^3 A# b1 j4 m4 ~- G4 y5 W
3rd maybe- some games recreate the device when a map loads...like BF1942.
! q! P8 ^( p. m/ k  }* Q7 T4 t0 j
+ [7 o& P) f$ {/ k9 c4 H8 S6 BThings needed to do this:2 ?4 q8 u2 n2 E) B: }
1. Microsoft Visual C++ 2008
: Z8 ?( p/ b: N. z! Y8 |7 p" C2. DirectX_SDK_(Summer 2004), S4 |/ p" ?( \' U2 t& V
3. D3d_hooks
- E' {7 t# J, E4. IndirectX
# h4 }( d0 u/ d" B* KI HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM% ~* v; A3 Z. U. B% v% c3 R9 W

" Q/ j7 B; C  P+ l9 Q4 k& G; cNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:' f/ I5 @2 D- ?  t. U
% ], e. @. x# Y& o8 B, ^
YouTube - How to Compile WallHack [Tutorial]  
7 d4 e- o0 e* G* i# ?
# }1 U7 q4 X% I# ?7 ]  y, u$ S6 s' e
9 T/ _. T. l' s
Detected Source Code:
5 Q! b. v+ v9 J6 x- {9 |; G% M5 R6 Z8 ^1 l! s& v! m1 ~
#include <windows.h>9 ]$ p! y) [3 y# G' n; P6 I- x
#include <detours.h>
3 t( f$ M6 w3 m) [#include <d3d8.h>1 x* y) B* ~& C' C1 b
#include <d3dx8.h># d, a& o1 D$ T5 ~9 v  M
#include "log.h"
' Y, ?/ |) {3 V, [#include <fstream>' M$ U4 ~! `) m: a
#include <iostream>
; n$ V+ h2 q; s5 Q: ~  P6 H7 ^& {#pragma comment(lib, "d3dx8.lib")
4 ~' L% M2 X  a) R" T" b#pragma comment(lib, "d3d8.lib")
4 e3 R! y& u7 c7 c# ]' Musing namespace std;6 f: l3 p0 A, N$ I
static DWORD dwBeginScene = 0x6D9D9250;
4 b; z0 p9 r) ^" }static DWORD dwEndScene = 0x6d9d93a0;
5 B9 ]8 d) {! n9 T4 o* Pstatic DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
) @# Y2 v2 _) }' ]static DWORD dwSetStreamSource = 0x6d9d6760;5 I8 w7 x9 i/ s$ p, q) \; u
static DWORD dwSetViewport = 0x6d9d5b90 ;
) q, J& T: c0 v0 R8 U8 V$ D$ W  X$ K# L) E5 b

- ?7 y9 W, d* z/ {int m_Stride;  m% W4 m) U) ^( f2 ]
int texnum;$ G# D: t! ^6 v
int nNumVertices;
- j# a- x3 ]! w. w% x0 Uint nPrimitiveCount;
# G( p' _% P! G. E) p8 N
* V6 j+ T: d: ]LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
1 g7 H0 r0 m* e; z1 ~bool Color = true;
: ~/ b; x  o( |8 F: gbool Logger = false;, Y. H; u# T' ]3 S2 A! e. q6 _
ofstream ofile;
8 \/ o+ T3 j+ j5 q. p/ `char dlldir[320];
2 ~, Z0 ?4 m3 nfloat ScreenCenterX = 0.0f;
' ^' O- L6 r% Tfloat ScreenCenterY = 0.0f;  s; ]5 a" u- J+ G; q* t/ [
bool xhair = false;9 M/ h) Y( e3 c) K6 y+ B3 C" j
bool WallHack = false; 6 w. e+ S- B% W# @3 i# T% i
bool WallHack2 = false;
, `; ], B! O& H3 D& Q0 lHANDLE hand1 =NULL;
& a$ h4 Z8 X1 e' |; G& F$ K! {HANDLE hand2 =NULL;! X$ `4 x6 u3 i& G" z3 B5 n
5 k' C+ Z* t5 L8 ^! h
DWORD bytes;$ W: L4 r/ }- o- r1 i8 R; J. q

- s& G- t+ d1 t' ^  G//Logger
& n) f% ^! L* {! r6 fint texarray[1000]; " s- B. \+ M. _% r
int arraycounter;
3 A, j, X( x0 g) y$ l$ Vint delarray[500];
1 z  e5 p) A- G7 d1 d& aint dcount; , ~: Q6 V3 O/ S$ t5 W9 h
unsigned int arrc;
6 v' T6 I  ]$ l; b, p" z4 A: L' dint i=0;( D( }. ~" B) |- p  {! b
3 e* t: N8 D" X* c( e" g$ X( E
- [, }& \  q* @- U5 `
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
7 s& N2 w2 {, N6 S
; A. S- x* [& Y# Y
' M+ R2 C. F0 P% \  f/ z. A! ~char *GetDirectoryFile(char *filename)
; @7 g) m1 B) @5 i. @$ h+ K& Z{
' L+ a7 Y& V9 y7 t- Ystatic char path[320];2 y' f+ G- T, W% m; q$ z
strcpy(path, dlldir);
# S8 g& V. Y$ a6 tstrcat(path, filename);
, S3 m) h+ j! a" y0 Wreturn path;
% w% E' [9 p$ n# \}- p3 H# v5 W0 h0 F- W& J4 |- {

+ X  @" {% D1 hvoid __cdecl add_log (const char *fmt, ...)+ p; n5 S5 L6 J# E% v
{$ R5 Q6 A* T/ V* k; D
if(ofile != NULL)4 t- r- P, b' a( S
{3 W/ `) F$ b6 i- c8 K1 t
if(!fmt) { return; }8 H: ~0 v; o* w/ L
+ A8 m6 E, r6 b- A8 b" r1 |. A  R
va_list va_alist;0 \0 E( R$ Z+ i9 y# A
char logbuf[256] = {0};% {+ C! U( V; r/ s4 w
9 ~9 ?" _" z* L
va_start (va_alist, fmt);; \3 V9 Z( Y9 l1 v" ^) J
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
- `7 }, d4 |+ q- `( s1 h2 cva_end (va_alist);
) C4 K) E4 [+ t$ U
+ r7 s% a( q! {3 g- jofile << logbuf << endl;
0 n0 I7 w* D# L- z! M7 n  u- X}
) W6 r1 }+ U" J, o& n+ p9 l$ k}
& K& g. R$ z+ G( n% M. E- J7 n1 X! J$ k+ s
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
6 l4 X) x( D4 i. y, U% Y{
1 D/ l% I+ r  Mif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
- o2 @; R  K8 w( }) rreturn E_FAIL;
" q' K; ~- v- M) L; ^) v# V
0 U7 O9 S: o! r/ w/ eWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
% Q/ U" Z6 a( ?& s|(WORD)(((colour32>>20)&0xF)<<8)
7 R* `: N7 k, o: h" {7 u3 k1 Q|(WORD)(((colour32>>12)&0xF)<<4)+ q  ^+ d# X9 q$ W, D# c
|(WORD)(((colour32>>4)&0xF)<<0);
2 [0 y5 T5 r/ a0 ~5 Y2 K0 @% u9 w4 q& u5 x" i7 S5 E/ c
D3DLOCKED_RECT d3dlr;
$ M3 v" i2 L3 T(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);' P6 d; D' {8 ?5 s) }
WORD *pDst16 = (WORD*)d3dlr.pBits;
( E. P9 s2 ?$ N* g) i! v  H' [/ K2 Y. j7 C
for(int xy=0; xy < 8*8; xy++)) S5 n, h# J7 [6 [0 _# U( y# h5 W
*pDst16++ = colour16;! u6 V  Q7 h$ p9 W- p. K" [

: B  _8 w" @/ j(*ppD3Dtex)->UnlockRect(0);
4 ^! J; u- B# t0 n. |+ b5 @5 I2 e0 Z3 J# \3 I, p( b  e1 k
return S_OK;
& m1 W5 ^/ b# Q& p}7 A6 F' h/ }2 u8 y1 m4 h

. @2 ~3 j- K' Y% E* G3 w7 f8 ]) f" d" \' ]
//=================================EndScene_Start=== ================================================== ============================//3 y' P5 d) Y2 y  z
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );$ ]1 K9 ~( m0 N$ m+ {7 q
oEndScene pEndScene;+ P2 o: H3 T0 F  s' |# C+ S* J
) }8 W" |1 g- H( e. p8 F; p1 M1 w$ D
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)2 V  Y% \4 k( I0 c
{$ Z4 [" U( T& N0 B$ R4 o
if(Color)4 `, r7 K6 g! a* n2 u, P+ r% C( B- [: q
{ & C3 H5 T6 @3 X, s5 N$ ^2 z
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
0 j) P- Z+ s9 W! ^  t4 Z' sGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
6 O, Q6 o3 F# x* ?* aGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));) o: u; L3 `0 V: X$ R  t2 b
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
2 q6 w; |, ?& p! RGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));8 d( c2 H$ j8 W5 z- y) B# L5 Q2 _
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
+ M/ p. v, L, m/ i2 T2 f0 fGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));  F* b1 ?  E& c' }5 o: a# B. s: m
Color=false;
, j# u: n% z: ^, b! \" I}
1 E! E/ Q/ @, K+ K7 _. ?/ V& ?$ a0 U
. S3 d" R, W& sif(xhair)
% F$ P, l; v8 E: ^( |6 l! x{# J; [( Y( W* k6 A2 j1 K1 h
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};/ f( L' X2 v2 `$ ^& a% s
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
# _5 K4 w+ k) R6 s4 c! C1 ^+ hpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
3 `, o6 I3 ?  x! p0 A! s( lpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);& }7 g5 o8 k: c) z$ z) b  }
} : R0 j1 v! d- N) M6 ^" ~! A" ~! s

# j( v$ L, e" @, a: L- w+ o- @//=============================================UnHoo K_Start=========================================== ========//
% H8 c9 y* y1 C4 K$ P7 P6 _# j, g+ h3 i6 t
if((GetAsyncKeyState(VK_F5)&1)) 4 S9 d' J1 s8 W3 F
{
  e* ], _' @6 P8 c  Yint end =NULL;
# W- u- J( t! t* x' S7 _int dip =NULL;
) l. Z2 o/ H! z% xint svp =NULL;8 w. W$ f( `/ [7 n6 X
int sss =NULL;
, i' ^( V; D6 l4 ?; v3 b4 h7 B  i8 i1 g2 V* w& V3 l& m

7 f) y+ N' X; v) xBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
* P3 X6 ]- y- k' Ihand1 = GetCurrentProcess();
- s, W  \& c$ u- f; u+ O" ^DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");% F( \$ [* n6 J8 Z
end = 0x6d9d93a0;) f! m# U+ `7 \6 g9 i1 q) z; K
dip = 0x6d9d73a0;
/ ]% k" E( C& R0 r; Xsvp = 0x6d9d5b90;( q6 y) t% m$ @: M  Z8 |# `+ x$ X8 }
sss = 0x6d9d6760;
) _6 {0 W  F* a' N  n1 z1 w) r' K+ p  `  J  g
WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
% }7 @% E* J7 o! R* I- k% NWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
. }7 F0 ?+ u2 ?- p% yWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);5 n& N( E2 I7 |; |
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);2 U. m( E, q2 g% Z
}
  T0 S* q( V* C7 R//=========================================UnHook_En d================================================= ========//
+ U  T, C( b7 j7 A: Q4 A) s" ]6 X: N' z$ w: h9 E1 h! b2 F! _. _
if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
% F, o: c) p$ G/ c7 n- ~' F0 ]if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 1 P; n, G' L9 r# X& q- T' q
. b# @) q1 m1 u  l1 x& I( i
return pEndScene(pDevice);9 R. d- E3 U* L
}' H; r/ v7 i6 m4 {% r$ ~8 b
//====================================EndScene_End== ================================================== ========================//7 p/ M0 s7 D  u
. h" z9 m% S, Z
9 i$ D& @, N9 }6 b

2 E2 }. }1 K- t. `
' B' k. S  P/ n. A: h) r* G- K) g//=================================Dip_Start======== ================================================== ==================================//1 Z, J- ?7 c  }  \, X9 s1 z# W
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );! Q! h. z2 Y' ]* `/ W
oDrawIndexedPrimitive pDrawIndexedPrimitive;6 V% m. j4 r# z8 y; z

1 X  N( M, t) {5 ~( dHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)4 V( ]; A% K5 e+ X
{
) i+ e9 L4 f) R, y( N' u5 Q: i5 C* d- L

# X1 w$ w7 p, J' [: ]) H2 `5 _( W* G  c! x/ M- Q

* O# B! p* v) c/ yif(WallHack)
* l0 d$ z7 i7 @8 T{
7 ?( v6 a3 B" w5 wtexnum = (nNumVertices*100000)+nPrimitiveCount; % Y0 }* k8 k+ d% P3 Y
if(m_Stride==40 &&
8 T/ v3 ~" A4 ^8 W: i; q! ?! D& R
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||2 _/ \8 |/ E0 |- P( R
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||# s$ {+ \6 H+ H+ C. P9 s' W) T  ~/ t
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||$ ?" Z2 H: i3 p* z6 S
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||6 Q' Y) X& j+ Y7 D3 N- c
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
; W# z! u# f3 i! j+ V(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
6 x- |' {7 B0 q& E6 G. i/ `; `) z  ^(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
- }4 [- V0 ^/ h(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| # V$ S7 `9 ?% ^1 o3 V& C% e& C& p
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| ' N  g( \- X1 ]( F
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
+ [! u7 R6 `* Q$ g7 p6 r% M(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&) k( |8 ^3 R& K

* }% C& U. h) S* g
0 ^6 y5 V0 d3 n, [, N1 p. {' H2 w
4 z2 {% W$ E' h4 F' M(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
5 a, {9 W2 t1 S(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm & }( L+ a! n' ?- D1 u+ y& M
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
; F% X$ U! q5 N, |2 p8 k(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm * L% ~  K) F$ U1 C0 N, n' J
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)7 Y% c0 e9 a/ s# C
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
, V3 u8 `/ B9 z4 ^- F1 `(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
3 E. a8 x. A$ c' R0 {. K. o5 t(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest % T6 c9 V3 E, X! R1 d! c- e
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants" v4 @6 ?5 _% \' Z) Z, B% D' h
0 n2 Q& b  A* _0 v$ c' S
{2 z* D- W8 M3 \: I, b/ Y; f
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
& [$ a4 r. h7 u0 ?# WpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);6 Y1 B% S$ H. S# L, g# `5 |; R
pDevice->SetTexture(0,Orange);1 T/ B" F2 Z& [
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
3 F4 y2 U# Z- D: }/ ^& v. N  ?/ i9 X4 K( X, l5 p9 ?. U
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);% m8 x6 x" r$ ~5 u* C  H: r# X0 y% O' U
; ]. k# s/ H$ a2 j  f
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
% c; P1 Q# C  R( YpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
( u' Z. Q# J  e6 tpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
7 L) g, H3 P8 ~) P* CpDevice->SetTexture(0,Pink);
; B0 a" s- A* Y9 c/ j, O}
) Y0 q9 l$ j) X- u% g' C9 O
# c$ G: @& T; \" J  f: Dif(m_Stride==40 && texnum== 21300174)
4 V0 v6 B6 D- _) u) f5 b{
  s& l3 y. ^5 m; [pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
6 A; q+ E* p, W& npDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);- A8 I& m6 f" |% t2 O
pDevice->SetTexture(0,Green);//GreenNade$ {3 t. d; ?) M9 U/ b) K
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);! u( J' `' h" u6 ~# @* o8 h2 }
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);3 i6 _4 T4 o& y) ^0 `
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);7 x( `" D; X; n2 ^7 }. q
pDevice->SetTexture(0,Purple);8 [+ l& Z6 F; @  E" W! e' o
}
0 _" u1 [1 p/ t2 |6 ~8 H3 B
, N" J6 g+ y* _7 _5 x! Q3 Y9 L% B& n2 U/ N* R
if(nNumVertices == 158 && nPrimitiveCount == 131)7 W8 n0 I) k& H3 Z. `" @
{
3 K2 ^+ D' R  H6 I0 YpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);2 @$ e. f) v& }' o
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);5 I" r9 \7 {  d6 |/ ^9 S$ P
pDevice->SetTexture(0,Red);//GreenNade+ A- Q4 i* y, a$ h; e; y- R8 s' c( P- q
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);+ B* S) K4 v! }1 e7 w1 U" _
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);; G/ V, B8 W0 {' t9 e( s$ B
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
8 G9 i# d! i9 ^& n3 c* [pDevice->SetTexture(0,Yellow);- Y" z; E" K, n9 t& K. r9 m
}  R0 w+ c1 O/ Z" F0 e5 y+ C$ F

1 H. l! G5 u- L8 o% hif (nNumVertices == 171 && nPrimitiveCount == 143)
5 s" W3 E5 E3 I% v{
0 j9 b( V) \" D6 a! N
7 b5 ]: }$ K3 _3 s7 LpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
5 }* E$ X+ A& I/ J6 ?8 NpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);3 m1 U( ^1 F: |, U- C- y
pDevice->SetTexture(0,Red);//GreenNade  E: R% A# q" _; O1 M8 @+ O+ u. i
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);& n( O5 y0 w0 e3 D. R$ \
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);( I4 u5 \& T9 W2 Q! a7 ?$ ?, e
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);( `. I3 u5 @$ U
pDevice->SetTexture(0,Yellow);
' q# A- C/ X1 M, Q/ \1 ?  K}$ t2 k* E1 n& ^3 a" D" O) [

. n. L+ P' P. X& V3 z/ \) }' K6 C# \3 |% F+ S

2 x) V' s! e9 a& e3 o: _" z6 o# cif(m_Stride==40 &&//face,mask etc...
# v3 q+ v! I. S(texnum==36700612) ||
( Z; ~6 v( l+ \+ A1 p9 b(texnum==9600172 ) ||, Q6 ]4 d# Q5 I4 D
(texnum==14200236) ||: D/ E$ |3 C& {8 C6 W7 |
(texnum==37800552) ||% P) p# d5 y/ X- S/ ?' Q
(texnum==28100486) ||. |" h# q* o: z4 `' w, I: P
(texnum==35500568) ||% Q, l* y: Q' W1 z& g2 ~' \, P
(texnum==2200024 ) ||
. m- W. P. g6 k! [(texnum==16200243) ||
$ q1 c7 g* V; S) M5 ?(texnum==31900466) ||
7 D5 H7 O4 ]% ?! i. [(texnum==19300342) ||) R% S" x. e% w" t% u7 U7 L5 \
(texnum==36200604) ||
9 t, S$ i$ m9 [(texnum==21300290) ||
5 }: A+ m8 K# j: l% f(texnum==35700558) ||# [1 W4 g; [/ u3 q' l7 w5 ?
(texnum==22100396) ||4 h+ [: x. B: H/ i4 p! t
(texnum==36100604) ||
3 k8 E$ @, U! l* O7 [+ s9 t(texnum==27100464) ||" o9 s/ |: `/ Q8 i5 d
(texnum==11400180) ||9 Q  F$ C! h; L# m1 P/ c  s
(texnum==34900580) ||
2 n5 G- b7 o1 j& i% S6 Y; U/ y, i(texnum==13200212) ||: F( r, m0 A2 E: B- w
(texnum==34700538) ||
" L+ v6 T1 b5 t3 J( U' t% X: ~(texnum==19500352)&&! j8 x; e. ~$ Z0 Y* q; N! x
(nNumVertices == 448 && nPrimitiveCount == 776))% L8 F1 }; C' B0 G

" j+ o; d( k4 A' ?- s3 z{' f5 L2 r+ h  |) z6 Q
pDevice->SetTexture(0,Blue);- C, l- P4 n( Q$ W
}& e" r1 w4 j; a; u3 E) e3 h( y
. D6 z/ M( M% Z+ F3 J% ?0 A
7 d- W& z, i; ]: m
{7 w) X3 X% k4 p. p. b' Y
pDevice->SetRenderState(D3DRS_FOGENABLE,false);7 S) {' I1 y* d3 E- L5 O
}
0 F8 P1 l$ E/ P6 M: ?2 }7 q0 o' c; m# ~% s( H
/*Logger
  a. f; t/ ~1 M; ]if(m_Stride==40){
: [' K7 v' a$ ?. p, b; Y; [4 l8 C) w; C1 R
" W( r$ c4 q+ D8 [8 F9 F
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
( F! \" }* T  `; qwhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
5 n& b- H1 L8 C' Ybool alrdy=false;
* y2 D5 x7 v) I( gbool inarr=false;
7 D% L. I3 b2 y" l, a( c5 {& n
! W/ i' n0 V# B' D1 y5 O. eif(texarray[arrc]==texnum)
: A: q  R' M* J; R- h) wif(delarray==texarray[arrc])
- b$ i! ?) t9 l: ?  J$ |4 r( g1 Talrdy=true;0 N6 ~( d. ^! S3 U6 I- H5 K0 N" z
for(int i=0;i<dcount;i++) //sees if said texture is in delarray3 @- j# n, t' h% _  u+ K+ f9 M
if(delarray==texnum)
  s) N) [* q6 Tinarr=true;1 \, s+ @3 C' X  M3 U0 u0 {" Q
if(texarray[arrc]==texnum || inarr){ //If true, color model differently
. F6 b! D1 G6 I" S- e9 z: ILPDIRECT3DTEXTURE8 texCol;
" h5 ~2 L" d% i( X4 S- V! C6 PDWORD dwOldZEnable = D3DZB_TRUE; 6 J$ c- j5 N6 c* B. ]& i9 y
pDevice->SetTexture(0, NULL);' [' d8 \1 {7 Q9 T
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
8 Z. E4 n" l1 m3 ipDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);2 R4 S$ M& o4 A1 i% f5 Y
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
5 T+ u& R3 r- {1 x1 g/ V- i; F2 EtexCol=Blue;9 u* g& i$ ~) q. N; x
else- {% e5 D& m% S' \# {" F
texCol=Red;
4 W5 Z1 V9 x4 {: epDevice->SetTexture(0, texCol);) L) p+ G. `* Y
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
1 u  Y4 r5 _6 s, P" y% lpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);3 k9 \+ Y! Y) k. j; K9 d8 q* b

4 L& y% O9 \% G" s7 t$ Z" J- C}
# V/ b3 W, t# r* g# J9 L3 a4 j}' Z+ V9 `+ l& [9 p4 Z
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
1 t9 Q" z3 e5 ?if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array$ K  X, [, L8 r8 ~0 E- h9 U
bool inarr=true;. w# R+ l+ ^8 K& T
for(int k=0;k<dcount;k++){
4 P- P, t) T  d2 S# n/ H, uif(delarray[k]==texarray[arrc])
2 ~/ _9 m4 Y! j# E& B. m{
) c+ u4 X9 R9 _inarr=false;//Found selected texture to already exist" w9 ]: A( [; \$ ?
delarray[k]=0;//Delete texture
, C/ A' I' `; {  _' Y/ |" Mbreak;//Cancel loop  w% n" w" t. s3 q8 z- j
}
+ Z% i, X/ R8 @3 d% J( ^& L}5 y, l# y4 T3 J" T  d
if(inarr==true)6 f0 \5 H& |  r! Q. n
{
' g8 |& O! M, z# }3 wdelarray[dcount]=texarray[arrc];//Add texture
% S! e. x+ \4 x, `+ W- C2 d+ U+ ~dcount++;8 a( M( x/ C' l% k
}! f2 }7 U7 X* N
}) h& A: R+ W, P1 c* V- c
if(GetAsyncKeyState(VK_F7)&1){
( }) i* E: J# O" R* G6 d6 Lint total=1;
# L8 B7 {, @4 g+ I# Nadd_log("omfg values?!? {");% w% U9 k7 m- t6 P+ B- z3 L, \
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
& J; A1 r+ a  c4 @8 P# {, Xif(delarray[x]){
, v& G8 h" w7 R( h' gadd_log("%i,",delarray[x]); //add_log2==add_log but without endl; _. ^6 r* y/ ?) M  v
total++;% K- A# h+ E, p$ R! i% n
}
0 b9 I& H3 k  X. w0 A( G* `% _add_log("}; %i variables in array",total);
& V, b. x) j7 P: q& g1 {}
# c5 Q6 q. A  ^  T5 Hbool found = false; //THIS PART CREDITS TO KRYPTEC" d. u1 }8 E+ M$ t
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION4 o8 A' L/ }) u  V
{" d( f$ H" d  v9 F2 }
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
2 K* x  N: ]/ i( w$ g}
3 H( ]4 D3 v8 p+ f% M3 Zif(!found && arraycounter < 1000)0 }+ E1 C! S4 F
{4 r8 H, F. q7 f0 f; K& ^0 q! R- g' g
texarray[arraycounter]=texnum;$ \# K; @# p. w$ ~. e
arraycounter++;+ z* E, e" N2 i1 K
}*/, v$ j1 A1 q6 G
2 |" D+ w5 S7 G, A- l# p

* W' v; J4 l4 b}( B1 C* P! r5 J4 ?
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);( h( Z! c, L: |% U
}
, }1 l7 ?% r; a! \; _, O//=====================================Dip_End====== ================================================== ===================//& k. p% v) P4 T) S
) j% \) l4 V6 X  A- ^- L4 I
$ @% ^+ \* K( S
//=====================================Sss_Start==== ================================================== ====================//
* ?$ ~6 u2 k' t) z0 j7 ktypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );7 }% U5 |, ]" S6 V' ?" N0 G  `: k; l  J
oSetStreamSource pSetStreamSource;
5 [4 I$ i/ ~8 X1 i0 }6 _+ a" ~8 G) V8 [" p! |
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)5 d3 i4 N: X$ X# a
{
# u$ @7 I3 P/ oif(nStreamNumber==0)7 M8 v& `0 h( K! \
m_Stride = nStride;9 H. x+ W% P4 g( r5 c: f8 d8 Y

1 r0 [: v  v8 n' areturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
- t2 v: M! x- Z' |3 _0 K9 D}3 R, I" _1 Y8 G' U+ Y" R4 n
//====================================Sss_End======= ================================================== ===================//% g* b& _" @5 z" X8 W+ w* ]* t
' u  G) ~' b' y% H) H. }* P) n: p: C
//====================================Svp_Start===== ================================================== ===================//8 e" h6 @8 ?; p5 k
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);2 X+ G2 w7 m6 {6 y$ a9 e" I6 {3 Y/ ]5 j
oSetViewport pSetViewport;' ]( J$ n* t% X- X$ f
7 Y. V. l+ x& ?. }8 B
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
! O4 y7 e/ L  o{$ J5 B: m7 B: Z& n1 [
ScreenCenterX = ( float )pViewport->Width / 2;
1 r- g/ {0 ?7 E5 ?* p0 j+ TScreenCenterY = ( float )pViewport->Height / 2; * w$ b# a: K' I
, v, ~9 t# p  o# P' H7 ]
return pSetViewport(pDevice,pViewport);2 H8 G0 m/ n" s
}
6 ~" W- O5 H) E. Y! N: Z6 h  f; x//===================================Svp_End======== ================================================== ===================//
: g- i$ e5 N% q0 Y' y) Z  O7 w0 d/ r: _
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );0 @, s; ^* L: R" x, w! k
oBeginScene pBeginScene;. O) U) T9 x  E0 u5 n+ Q4 S; A8 i
3 E' t& y6 t) n4 a4 B# y7 T  P- l
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)6 c. L- N3 d8 q% e! R9 p5 C8 {3 I
{4 w) V; v0 [3 h: D9 ^- Q7 R$ i, M( ~
if((GetAsyncKeyState(VK_F6)&1))
+ V$ L& Q/ X: `2 d{+ L/ t0 E9 y$ F9 _9 R
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);" V: [+ q; \6 y1 J. L7 Y
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);1 p7 p" m2 e* u% ~8 ^
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
: B# {; ]1 W0 u4 x) ?4 r, cpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
. u  ^, d2 L- R+ V5 h2 s) m2 Q! M}
  V$ Q! t3 r8 o2 i( d1 p' ?% Y# U% b. N
return pBeginScene(pDevice);. W* r+ Z5 f7 L+ N5 ]
}
8 ~3 M1 `) S: t
5 @+ ]7 r* t9 J% y! }7 m$ X- G- m- f7 L& a4 n" [
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
1 ]$ F5 o: r5 Y$ e6 h{
; T- K" [% |) |$ tDisableThreadLibraryCalls(hModule);
" z; ^* \3 [) r; ^" S5 i: u0 u4 g  u( l& V: r% X  ~
if ( dwReason == DLL_PROCESS_ATTACH )
, k7 A4 p& C; F! b# {{0 y: Q& A* c6 I$ y9 \$ h( ?9 l+ S

* G6 A# }+ x- t  N//=========Log==========================/// C) n* b+ I0 \# h
GetModuleFileName(hModule, dlldir, 512);
( _$ o% x. z" s+ y1 d% E1 Zfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
0 g6 z! A6 S: y2 I# Y/ mofile.open(GetDirectoryFile("log.txt"), ios::app); ( v% ~# u$ p7 r' e* E
//=========Log=========================//
2 P2 @/ O% \3 P, q+ L0 N+ ^, v
7 K7 f3 _2 v* tpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);8 l5 n% ]: L' o4 a; T. b+ K
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
( r) A- n9 |2 t: O; F0 _5 XpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
% X  m6 S4 b7 i2 Y9 o" EpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
- j; t$ M8 K+ r: M! R9 IpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
2 x0 H+ v& g% K5 m$ c$ W
& L  ?  I7 H: Z; i$ {3 p# Y- L}
( t& U6 B5 g' T: m( K& u6 Preturn TRUE;3 N0 O4 h& R3 r3 a8 o
}
/ ?" R6 @% z2 |9 y  Y! ?+ P0 ^$ |$ J. O9 ]! u6 [+ j" r5 O

- z3 s8 }& e! }0 L0 GLog.h (The header File):
/ v# L, b! f( |* ~4 e7 u
! Q9 Y- ~! }) g0 |7 A' n#define WIN32_LEAN_AND_MEAN  `* o) f" N- k5 s+ @& H
, N6 ^% y) q3 g6 }! J
#ifndef _MAIN_H8 t( B4 I8 J% Q3 ]2 w0 t
#define _MAIN_H
* E4 E) F, |  A" Q3 G3 g$ s8 `" D7 O, C. i( D2 ?$ O2 A9 i! c
char *GetDirectoryFile(char *filename);( [- y. L  Y# O% B" k
void __cdecl add_log (const char * fmt, ...);4 n- \5 k- I6 F; E1 t$ S( t6 [
#endif
9 w; K4 T9 ^# U" S! x/ o" y$ I
( w4 y- W% m" HNow after you have built your wallhack you will be able 2 find it in :5 n. [* y% L( w" \" u
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
, r/ i+ L9 \$ w8 Z1 k* a7 n) {4 ^/ Z" i) m! R5 c; ?' _6 A
Now I will show you how to make your wallhack undetected:) v/ v; S4 k& o' Y7 w/ ]
1. Download D3d hooks) k" R$ \2 k: }9 z
2. Open the file that says "create device code made by me.h"8 h# e# q" y4 N4 P
3. You will need to make another header file in your project and then put name it create device and paste that code it./ o, a6 H+ T  w4 Z% Y5 e& j" c
4. Your wallhack is now undetected./ O; N5 z$ M) v1 n: S/ t
% M* O+ s7 M  q
Credits:: t" f/ _7 ]" S) i0 f+ P
1. ME FOR THE TUTURIAL
' c: R" G4 O0 p1 _2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE; P; J* e0 E' N# `' E/ s- h, h/ l5 G3 g
3. FATBOY88 FOR THE SOURCE CODE
6 [0 B4 W1 W+ d% T: q* ^4 D4. THE INDIRECTX I JUST FOUND :P; c8 U: g+ }- D6 h4 B

8 y3 e% ]2 y( S( yAttachments:3 w( a! k! Z2 I6 R0 n. K' x
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
( x  ]) Y% @- l4 G9 f9 f! PIndirectX: http://www.mediafire.com/?gimzgmeny114 O+ H5 Y" V) ?3 w
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
! s+ \8 h+ W+ C& ~SEARCH THE LAST ONE UP6 v" C* H9 `2 X  U& @- F3 g8 N
__________________/ r/ Z: _# U2 S; o4 I6 Q3 ?; R
0 t) @) [5 M' D" v. ?8 g5 i
<---------- WALLHACKED
作者: XYZ    时间: 2009-5-26 11:46
想请教一下,这个代理研究是什么概念?
作者: shane007    时间: 2009-5-26 17:13
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。3 O* _; n/ P+ _) F' r
主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。
; o# q. E  v% R这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。" {% i# F& n( u
有个帖子,简单的说了一下,以后还会有大量资料放出来的。5 z" q, W( o7 b1 I% P- e
https://www.chinaavg.com/read.php?tid=17190




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2