设为首页收藏本站官方微博

【代理DLL汉化研究】wallhack制作教学

[复制链接]
查看: 2647|回复: 2
打印 上一主题 下一主题

【代理DLL汉化研究】wallhack制作教学

跳转到指定楼层
楼主
发表于 2009-5-26 11:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

【代理DLL汉化研究】wallhack制作教学

原文
/ c3 n' H6 L- \% G/ w4 thttp://www.descipe.net/forum/sol ... -your-wallhack.html
+ v& A# \' D: k! J$ U3 s4 M/ W( Y
; \# K$ z" W9 A4 y/ u$ N视频教学
2 _$ [. S# A4 x% hhttp://www.youtube.com/watch?v=6b5XMzT-b_U   
0 N  l8 J9 j0 j: l! ?
9 P# J) W# g$ V( u/ ~+ |HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch , M9 V5 a2 {' z! C

  z, w/ J5 b9 V- g5 Q. | Hello shane007,
% Y0 L( ^% k5 m1 Z  o8 v" Y8 yOur 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. ) x/ w, H4 T! t4 `

. R( v9 B. ~, X( b1 N& _0 oWhy not start with your first post today and become an active part of DEScipe.net now!
3 d. p/ b6 M. a& i- ?1 ^, Q: ]* Y2 b " b+ L! b" s: A
( p: J3 F* Q) x" j+ y3 X+ Z) W
  7 J0 O; \# r' i9 f* I2 w
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  ) V, K, v5 k$ a- P! v2 i2 c! f% b
How to make a wallhack and how to hook your wallhack!  
2 L$ L4 `9 U& C/ [8 s Welcome, shane007.. C9 n1 `1 ^# q2 k/ c- F3 ^" i: M
You last visited: Today at 03:55
" o1 d% A' \& D6 d' d2 c" u& {Private Messages: Unread 0, Total 0. 0 Y$ p- W! y9 k" A& E2 Q- N
Credits: 200 [Check]  
! }4 b; s& i" R# Z/ p) d" |+ O1 H0 k5 @2 s
Home User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out % ]4 U( ]$ y) b

& l* p. P6 j$ y' R& b
8 [8 t2 `+ W2 \; v8 z
, |0 t+ f" J+ M% w3 A$ f, NSearch Forums
- R4 @5 E% ?, a  K  J: o" ?      
8 Y0 a' W3 b4 @/ E9 c! F& y: ~
1 K* c* {1 O8 g( @" Z( g: _0 |Show Threads   Show Posts  
/ a7 \1 q$ X. d4 K( L# }Advanced Search
& G; v) H6 M* R* o* qFind All Thanked Posts
% B: L" u+ T/ a  B1 B- T
+ v$ J5 M+ W9 u+ d8 o: oQuick Links 1 z( A6 _3 L0 ]4 B& k# A
Today's Posts
3 K, I1 U6 f4 t2 D0 K* `Mark Forums Read
( Q' s* k" M9 S9 q9 M 5 l( S! p: p3 W. Y9 J1 _
User Control Panel 9 S$ d2 m- I3 L7 ?/ b2 C1 r# X# P
Edit Signature 9 k2 j$ l, o: a3 r) H! @

  }0 E) J# R6 o. U! w* e" w1 L: }. AEdit Options : O) G/ \2 b+ C' D0 b
Miscellaneous
) O' J4 D$ J9 u6 z8 e  |5 sPrivate Messages 0 h' J, ~5 l7 w( }' H3 B
Subscribed Threads : u* R9 g7 n; v" n4 B/ M
: H# D- I; \: l% Y) ^+ p
Who's Online 1 X/ _+ |( s* R! g& k, q' R$ \1 s
0 z$ o/ Q0 W) N6 H
Go to Page...
# c9 S* L# r) ~, g% m   
0 J  i* I0 |# k- \/ U# OHow to make a wallhack and how to hook your wallhack!
6 U) J. Y0 [- `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. ... 4 t" S7 {) A" }1 v' Z# v

" T7 i, c6 i1 d9 I& n! X  k( K. t    Poll: Was this helpful?    _, h; M6 l. C, }- n
Poll Options
5 p/ ~, [3 K3 E7 Z# B# u! cWas this helpful?( s2 Z' H7 s. Z8 G# @
Yes, I WILL press the thanks button
& M: u1 A: e7 B& s4 FNo, I am a failure
  S: a2 C% Q5 h# PView Poll Results   
7 \! d* d0 H8 [- b& g# }6 ?% Z2 D; G6 L9 Y1 D) p7 }; i
Page 1 of 3 1 2 3 >   7 O/ l4 G) Q! ]4 _  B; P
- r6 m; C. t" a" r8 f% k
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   % A1 f# z/ `5 ^5 k, _$ f& m
. ~" k- m. s. W0 `+ E
& s+ ?3 q! M/ M2 |" i: z! O( z: a
  # h0 @# m. l: L. E" _5 P
05-02-2009, 20:49    #1  
4 P  n: N$ z" j  e8 O7 ]killax9
" N: f3 u. g' g; }* V: sPunk, r# y# }- D  M; _2 Y
$ n) C: y8 n% U2 Y/ s

+ L5 c0 ]+ u' P% U
  z6 `4 O+ d; ~2 n! }2 D1 H' V! \6 I! P& B7 p; k
Join Date: Jan 2008
( B3 u+ u" V0 i( S$ W6 ^Credits: 2,701 [Donate] + o, @) ~% P8 d2 ^) K; Q
Posts: 103
& x( b0 \: G9 Y7 Y; [2 ]; E, _' |Thanks: 10" c( a& N2 Q4 e" V
Thanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack! 0 ]7 Q" Q0 ?2 H+ k) M9 d# ^/ I/ Z

( p- W& w/ P; _; m) [0 M# J--------------------------------------------------------------------------------
( y! J  |- o  [
4 y  b4 z+ I3 {2 hI will be showing you how to make a detected wallhack and then hook it for it to be undetected.2 _$ l1 G2 S% v, [2 W) e8 x
Possible Undetected Methods:" ]' Z3 R4 @+ j0 ~) {* W7 w
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.
4 N. q5 _7 R0 c0 |2)another way **** it hack GG.& s9 }3 f5 f, I  O
3)breakpoint hooking;doesnt change memory... well changes debug registers.9 o7 z7 t' Y, I, A/ I
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
: P) P; c: A5 d; O. X+ I0 G  `" z# }+ F8 i4 c; H
Vtable:
% \7 U# B) ?0 @' b% kit wont work for vista its not a vtable hook =)
) _  K1 T+ B7 L% D- C* c& f; A
+ U+ w; c: P) r2 ~3 C: Y' q. kthe reason why my older version worked was cuz it hooked ( F, s  T+ Y, Z) X3 h; T; p/ q: ]
Createdevice->pointers to the functions
. z" C  r5 W; p: F# o8 T5 q. b/ s" ?) S- ^( m  I/ \# o
kinda like a class or a struct.
! y2 j3 G4 f0 y: Z9 a& ^, I% g5 B$ h
. ^) F  j+ S2 }  p6 [
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.
$ b1 j9 z$ ?9 ^/ Y4 k" g4 O1 @1 i* H: t2 H6 H4 Z
3rd maybe- some games recreate the device when a map loads...like BF1942.8 k6 z$ d! Q9 a5 R2 U0 ~3 d

: \3 ~3 _$ ]6 AThings needed to do this:% {# ~" h5 |2 P5 l
1. Microsoft Visual C++ 2008
' z/ R* \  R- m! i2. DirectX_SDK_(Summer 2004)1 u7 T$ y$ ^3 ~0 M
3. D3d_hooks3 K. [4 p8 C" Y# E- g  F1 ^: _5 I
4. IndirectX/ w0 |; R* P( I  A
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
, s/ j) I* s, u! q! Y" q1 b; g' x+ L% T5 ^) E! ^
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:; J+ x) D, w8 u3 |. t& j

, x" s( V. x# X& v+ ~& iYouTube - How to Compile WallHack [Tutorial]  $ K) S* U* o% S1 r7 }4 j+ O+ T6 O
8 i; O( }7 W3 P3 q" Q
, N) ]8 Y: ~  s, [

% t. b' A% w7 Z8 ^8 n' p; G, r- ?Detected Source Code:
! u1 a+ L1 T0 V& r1 {0 z6 w
3 p+ E9 c4 ^0 V! C* g#include <windows.h>6 o4 d, C0 Q$ F; S- ~
#include <detours.h>4 ?. y9 Q, L; T
#include <d3d8.h>
! i1 H$ Z. S( a9 i  ~#include <d3dx8.h>
' J2 O$ o7 v9 T4 A2 |, u#include "log.h". B  W% R% B8 Q7 u: ]0 d
#include <fstream># v0 i- @: @- _" `
#include <iostream>
7 d( t, J2 J: b' F+ u7 u, }#pragma comment(lib, "d3dx8.lib")
. n! J5 y4 h; P; L5 t$ @/ K( D: P2 `#pragma comment(lib, "d3d8.lib")
+ o* p, m( g+ C* `using namespace std;$ `1 R# s( s7 w5 V! v6 s
static DWORD dwBeginScene = 0x6D9D9250;
; O5 V6 t1 g' J0 t1 Ostatic DWORD dwEndScene = 0x6d9d93a0;+ C( }- c( ~; t
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
8 W9 z) x- f: c' I% i+ Xstatic DWORD dwSetStreamSource = 0x6d9d6760;
6 Y7 d. Z8 P; l* k& lstatic DWORD dwSetViewport = 0x6d9d5b90 ;; C& x7 [" @& k9 T& x  P

# Q' @2 q9 B$ @% n
( G+ m+ p, a# N/ L- x  W; wint m_Stride;
- V1 d3 @* T- D- xint texnum;
2 D+ J( ]' [" l0 j+ xint nNumVertices;
5 A( x8 e. ~4 L* Q4 a4 Jint nPrimitiveCount;/ \; k  B9 l7 S: h. c
+ v7 F' t3 C& W) m" V* U0 r7 I9 Y
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;6 }% L5 K1 K2 H  d
bool Color = true;% R( o/ ^$ H) }- ~
bool Logger = false;
( v% ^& y$ s% _" A; r$ @ofstream ofile;
4 U! f: [9 U' ~4 O3 Rchar dlldir[320];! ~& T8 A/ v+ t* `, C
float ScreenCenterX = 0.0f;0 A1 f  j) e" z2 D2 O
float ScreenCenterY = 0.0f;
  C+ ~  y5 Q  Y/ _bool xhair = false;
  _5 {( [8 L9 L9 j/ T! D) fbool WallHack = false; 0 y9 @7 C, M5 p6 ]4 \
bool WallHack2 = false;9 l# l2 b7 k3 [" H* K$ B
HANDLE hand1 =NULL;
" |9 b+ k8 a! ?6 UHANDLE hand2 =NULL;
. V4 c- B! s1 A1 R) c1 o8 O0 D$ A: M  n. \
DWORD bytes;
* q; T, T; ], g- R
" Y1 D2 _8 P/ e//Logger
8 m/ w9 W" T" B# Nint texarray[1000];
3 n2 k7 l0 w" O: Jint arraycounter;
7 w' m. T( h+ R/ Jint delarray[500]; 4 `2 D* {+ U9 L4 c  F# c* E/ t
int dcount;
$ y' W. F  ~2 w( \& Z" Q8 K- Gunsigned int arrc;
" b0 i$ J" R' w& g4 `int i=0;+ J: @  R/ Y3 I$ Q
8 s7 o1 a, Z0 V, Z

9 Y* c9 m" F2 ~- R! z' z/ G8 I. RD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
/ _. \& P! v$ I4 f* a  i
! `9 X1 k& y( h3 J/ F. f" W
2 N2 h6 ~# t+ k/ @& G0 Vchar *GetDirectoryFile(char *filename)
6 ]7 a2 a) x( X7 f0 D; o3 D{
# z8 C5 I3 t5 w) j% ~2 Mstatic char path[320];. c& b4 L# p- F$ |. Z, j: W8 F3 H
strcpy(path, dlldir);; d" A  c& _$ O' g3 Z6 _- u: }
strcat(path, filename);
% o, ~: h# }/ M3 K9 F" R9 @; Hreturn path;: q: P: i& K9 ~+ j7 t- i" N
}
6 }3 W- d2 F! c& S+ l2 K; D0 A
  S* @6 O2 ]! Qvoid __cdecl add_log (const char *fmt, ...)7 Z# [  H! N; w' B( _! O
{
; Y' `: t1 C7 `2 Eif(ofile != NULL)
9 f  ], K5 |9 Z9 o7 C1 u, _{0 F- Q5 R3 }- E2 ]+ _6 H& M, F  k
if(!fmt) { return; }
2 ~# ]! N+ b) A8 y. C
; Z- G. Y8 ~% x# e! Z/ Nva_list va_alist;
7 {3 \& @0 h- ], b8 @" bchar logbuf[256] = {0};
8 l7 o9 v' d3 P& b- D
4 G* o$ F- @# W. e; C* Pva_start (va_alist, fmt);7 q8 I/ `, P, D* ?$ a7 s
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
' w. U" l7 M' Lva_end (va_alist);3 I. G7 X3 v7 y7 v( x, `8 R% @
! M) X& _2 l) @( e9 u
ofile << logbuf << endl;$ i- ]/ G7 X2 i, E) t
}( J; Y8 I- y: r/ y+ `
}
& N+ I1 `4 I& l7 v- W4 W9 w. x) R* ~( D$ N5 z- ^; U
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)( C: _( M- p" q( z4 y- j% g' j" ^
{: J' U* S) ^5 v
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
, T8 e* S: A' T$ ^return E_FAIL;4 t* S6 ^, j+ h7 |: D( f

2 e. B. y3 c8 D: x3 V" xWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12); I) Y/ [* O9 v* [' @
|(WORD)(((colour32>>20)&0xF)<<8)- l+ G4 G' |- K5 G% f9 _: u
|(WORD)(((colour32>>12)&0xF)<<4)) {6 e2 E1 s% _" f
|(WORD)(((colour32>>4)&0xF)<<0);/ d/ a* h$ h- p* D, Z

; L; u) [% c7 [& A8 jD3DLOCKED_RECT d3dlr;
% f; j5 C6 W* L(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
9 X# V- B1 A; Y8 \: l) VWORD *pDst16 = (WORD*)d3dlr.pBits;* d5 r$ p& T9 z5 D  h9 w) t. w4 m7 o

# z9 H4 b# h/ o8 u5 [4 ~: a1 Bfor(int xy=0; xy < 8*8; xy++)
1 o& K5 _8 V& z  d$ y9 [  ]: J6 e1 u*pDst16++ = colour16;! H# C5 f; p9 L4 G( W

" F  _! G; ?$ b0 ?  U' `( Z4 R& [( s(*ppD3Dtex)->UnlockRect(0);- H3 W1 J7 _7 e3 c5 B2 ^

0 I/ Q( Y& I+ L* @" m$ }3 e3 G9 a2 {return S_OK;
+ m+ q* n. `3 }& l) U}
5 f6 ^" A8 S. M& U6 z
7 K; s8 P( |! D5 J+ h/ ?, R+ P" D, T( E5 @0 W
//=================================EndScene_Start=== ================================================== ============================//0 m- q# j1 P5 V4 ^$ ]5 u1 c
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
$ q1 q- s$ O& Y! h3 R* F. FoEndScene pEndScene;
6 j% c) s- h5 W" x- }! z/ g% ]+ c1 o! G! c. L
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)9 w; N; R0 G9 Q+ |" K
{. h; T  m) @! M  W- [" o, n9 M
if(Color)
5 p: Q+ h- }) }; a/ J; v1 T{ 5 a& z* [3 t9 d8 s' g" s2 K3 M, [
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
6 J' J; l& v, Y1 {& j! FGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
- M. S+ S6 T4 y" p9 ?3 }GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
% Y0 L) ~/ M9 o' r' p4 L1 [# OGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
/ k* k4 v# ^* X/ {, X  O7 y! n9 r( HGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
6 W8 Z) p) F6 n- F5 h+ ?GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));) O5 w2 z: B! L# _4 \# Q
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));# p7 d. Z" @% G0 @+ @
Color=false;
$ s6 }0 t0 w; i8 ^& E2 l}; D7 V) B- v' ^; u
! `& u+ f5 f  h/ M& |# M3 V
if(xhair)
# ]$ M7 |2 }; b; X( q! n5 [; C{. T7 |0 O# n0 Y2 m6 \) o% T
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
' D  s& R* t/ S* {3 w: ]2 dD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
/ b/ S6 A5 \, dpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
# ~  H7 i$ n$ N* `- mpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);3 B$ P- T: S3 A4 Z4 ^' \
}
) {. C9 j) \$ ^9 V& s" @& y5 X
) e, v6 M. b' R: A//=============================================UnHoo K_Start=========================================== ========//
! Z. i1 M; A% k: w2 V" }1 I7 R# j* w$ h) ?
if((GetAsyncKeyState(VK_F5)&1))
: N4 N% d" g) ?+ M& \3 R{ - P2 Y5 A$ i: ^- m3 }  _3 m
int end =NULL;  s* c& V8 M8 S, `# e2 l5 Z" a
int dip =NULL;$ s: W0 ~- V( T$ h# B
int svp =NULL;: U, ^# i( Y7 L+ v2 ]% r5 [) ?
int sss =NULL;" W1 I4 x* u) _$ G, z4 E
: G: _/ G# h4 p; {' H) o
# a4 t7 W- x. N6 L8 M
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.) `6 N3 G3 m) u7 y
hand1 = GetCurrentProcess();
  m3 Q1 L, j' S$ M8 P, [  wDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
& P# {$ c3 y% t9 {6 [% Bend = 0x6d9d93a0;
" V7 {5 ?- u: |6 c, Odip = 0x6d9d73a0;+ P7 D4 W$ t5 U$ _. W
svp = 0x6d9d5b90;
/ |4 j0 s2 l7 a3 tsss = 0x6d9d6760;) E5 f6 ]* i0 B  S  o  S

% H- {- Y$ m( A" Y2 QWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
* `4 _9 V* M1 e7 CWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
9 U. L' x5 L/ LWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);5 v( M2 R  }! d
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
8 A% K: C% s: Q5 R8 B2 d5 P) B4 j} $ v3 R- P6 p; Q6 j" V
//=========================================UnHook_En d================================================= ========//  P2 o% g, z% N4 D$ J/ F& o

) c! N( {3 A4 F: _, I5 q( qif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
( R7 y8 Y$ u! o% @if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
! h3 {  T  N# j! f" r- Y/ ~, S2 K; B7 b% x1 p0 q- p3 u( m5 K
return pEndScene(pDevice);
7 w. c) f# V. M}+ D3 D  Q; \* y0 J7 k7 K/ w
//====================================EndScene_End== ================================================== ========================//
4 ~; _8 ~+ {2 k& n9 Q' r9 |* w& z( P$ e* E+ b) m. Q3 w1 \# h& A
: F9 u- {2 D  w$ A  S/ _
# a% z. X6 `$ J1 f1 K3 d' J

- [: k- t5 J2 u: e" v1 x1 i- W//=================================Dip_Start======== ================================================== ==================================//6 K' u. r, Z+ P9 S3 M
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );9 c* u* ~+ n! H/ e* {  I
oDrawIndexedPrimitive pDrawIndexedPrimitive;! k4 W/ ^* u) S5 @" k  g7 N# ]9 r/ u

( C8 T  Y& e1 X: l% ^HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
: f) E, _( `3 J) ]{" \, M* l  ^9 }2 U: F

$ l* j9 {4 {/ |0 ~6 A5 ~( ]( f! n

$ {" I$ |# J3 K; i2 U( U- ^  w- S
if(WallHack); e5 ]2 D: G5 J+ V
{) Z& u3 `5 q1 p8 X' ^5 J" z2 O. y
texnum = (nNumVertices*100000)+nPrimitiveCount;
' q$ L- b# H" A! ^, D& ^1 J  p# \if(m_Stride==40 &&
9 C6 l& d0 S: J5 @2 w& M+ }$ m4 K) m
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||
8 r9 Z9 A" t1 x  S3 K$ \(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||$ y8 n4 s# }5 w0 V- o& F' E
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||
9 l4 s3 {$ P3 c(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||. v# J$ `' n& A* e  w9 T" l
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
- H) e  {# I. H- N# S7 K(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
: f3 d: P) v/ T) ?- L$ m: t: d(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 7 E- g+ b# Q& A* K; P1 N8 _& `
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| 0 ~0 o0 t5 W8 V0 Y( b- J! U9 B/ I/ z
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
" P0 U. G% f  t2 A0 g& b8 Q(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| ) i3 B8 j7 r" R# o* a# B% f# B
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&2 \3 v3 Y: y% w% Q  L& f2 `, h
! R7 @% p( N8 n2 W* {7 [
$ W0 [0 N( `) l, e/ t5 }4 h
; g, U" {, c$ Q4 t
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
1 _3 V" L/ R. l9 y7 h& {(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
+ |! [* U+ z- G+ O6 W(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
3 {- Q/ J9 p2 V" |$ t7 o) U' h(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
% d$ p; {( |$ ]! Q' x+ X5 z1 _(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)6 |! E: Q' G- T+ g
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head & w% o- B. W3 `5 z8 @
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
' l8 j3 u, A% d" v$ S(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest + \& _6 b+ z2 e6 ]: k) {) f
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
9 S! Y: r7 w2 l& X/ F/ N/ t
8 N$ k/ L  y, h; w. W" ~{, [2 N8 Y4 X- E# i+ n
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
9 C& n. p5 c5 G3 E0 A5 \- cpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
: u0 [& W8 E2 GpDevice->SetTexture(0,Orange);
( Q! {( S8 V1 X" u//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );4 l# p7 x9 W8 d- g: J% M

! X% D$ W! ~' u8 n: D5 y% l' d0 R4 apDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);' J2 h# O; \) `5 d, ?  r
4 Y. S4 J1 z# N! T
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
# X# ~) N( L$ t2 ~* i4 ?pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
3 d$ z: q7 \$ Q% N1 ?$ ]pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);6 E- |( Y# v0 E: S% K5 i
pDevice->SetTexture(0,Pink);5 T" }: X: q5 E, b( k* D8 A
}
0 z* t, G, f5 @  o
- f; ~) B% E9 m. Y" t% P( fif(m_Stride==40 && texnum== 21300174) 0 J  Z. N- T2 _- c. H
{( m1 {7 O1 R  u( v( K! @. `
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
. K- H0 h% R& h! ApDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
: g( `8 l) }  }- Y8 apDevice->SetTexture(0,Green);//GreenNade
7 ]. f1 v  ~8 r. u4 xpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
& b  _  f1 B6 P6 UpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
4 m9 f/ {) ?& H/ M+ W4 upDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);0 R, L- A# \6 d# f
pDevice->SetTexture(0,Purple);7 ^+ r, {. j- }! j6 D
}
* i* I. V' _* g
  K3 C- ]. g. H
- \/ r8 `0 e* `- Q2 r( Uif(nNumVertices == 158 && nPrimitiveCount == 131): L- i. u( P: `$ M: Q
{
4 d: f2 p3 x& C" x; TpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);$ _+ b2 }2 W% X  p+ n2 q6 @; B) M
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);& ]0 z" Z& F8 V/ O0 d- n& S+ n
pDevice->SetTexture(0,Red);//GreenNade, S7 A% {+ }! f/ t& \
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 u9 v' `9 \5 J- m: ~( L- l) i
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
1 H8 v: q- @" l, ?4 B% v) QpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
2 i4 r* t% f) w. u- ypDevice->SetTexture(0,Yellow);$ y4 ?# S1 }4 `* E+ W
}
$ W4 H: b% v/ q/ |' {
* l+ E3 v; i6 M; j9 Dif (nNumVertices == 171 && nPrimitiveCount == 143)' G) _/ c9 u, T( I  H: i/ f
{
9 C! n% [9 o- T% W
1 y& \' f3 X% xpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);, d. Q; M" K8 O* C' d
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);" h' u6 L. h, B: j, i# W
pDevice->SetTexture(0,Red);//GreenNade
; |4 [) n, [' R3 qpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 T8 s9 D8 @3 Y; O
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
4 y2 {7 R0 f; w( A* |pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);2 \8 U0 I0 _2 ]1 f
pDevice->SetTexture(0,Yellow);
; @5 ~# @! G4 i7 V0 j: H}, d2 z" a3 Q' e$ }0 F; t
+ Z7 [; B8 P6 O! [' f

9 ~, \6 c# A( ^+ M. f3 [% L3 n1 J- E& B& S+ E2 G
if(m_Stride==40 &&//face,mask etc...
# D& W' R1 y. u0 }(texnum==36700612) ||9 n9 k4 d8 p% {8 `4 Q& f8 c
(texnum==9600172 ) ||+ J$ M. h& |5 z( ]0 y
(texnum==14200236) ||4 D& _1 G5 o3 k
(texnum==37800552) ||' o* n5 _# C# V& U; L
(texnum==28100486) ||
/ A2 M+ E( n. M9 {/ ?2 v" k- a(texnum==35500568) ||% r. n  Z) X% i- k3 a, v
(texnum==2200024 ) ||
$ Y4 _: \  O$ d( K7 f/ J5 |/ v(texnum==16200243) ||
! T. m* Y" e0 ]  ^; |2 \(texnum==31900466) ||2 L( B( q4 a& f) g5 ^( |
(texnum==19300342) ||- l+ U0 f1 j/ V. M2 }
(texnum==36200604) ||: z+ k+ U4 @- t" v, U  ~, T! l
(texnum==21300290) ||- R& m: _4 l  `7 ~3 I7 _2 a* X
(texnum==35700558) ||3 j% j5 [/ i6 @0 J& R2 c
(texnum==22100396) ||" x1 ~! ~4 n. w; j$ X5 p
(texnum==36100604) ||5 P1 w8 P2 W' ?$ \- y9 f
(texnum==27100464) ||
- U* B6 X7 }3 X- U- j- e( _9 R(texnum==11400180) ||
7 L% M2 f* n# ]& v( @9 Y  b  ?/ x(texnum==34900580) ||
" U4 c, I1 q; ^(texnum==13200212) ||
$ E' j; _* S6 @, [+ g( H(texnum==34700538) ||% @8 w8 n5 e: e7 C9 Z" K- t9 T: A) `. W
(texnum==19500352)&&
' O- U  e  c: |, m) b) s(nNumVertices == 448 && nPrimitiveCount == 776))
( e( Z3 W3 y  j+ E  m
7 Z4 s$ R0 M0 f; I{0 K+ |8 Z) f+ s
pDevice->SetTexture(0,Blue);
, H( c: N, m6 B. [+ ]$ N! H# ^* l}( T) T% K( ^; ?" m" S% x( S

- r7 U: X7 y6 p; Z0 N; f4 j2 }9 Y3 C- U- J, Q
{3 H- Y  F6 D' n4 C# x; c: ]
pDevice->SetRenderState(D3DRS_FOGENABLE,false);
, r! j( c' I; S/ K7 F}, s. [4 P1 x3 Z: m, n6 Y

+ A# V& G2 T* C* n, T; q/*Logger
+ w+ X$ H6 M' a' q5 t; |" dif(m_Stride==40){
' i* Q. k: m3 r5 o9 `; j9 w" j6 G0 }4 e. z

$ @; \9 I: H  L# B4 {while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray; }( t6 i! e8 h  O9 ]  p
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
: `" _: Z! v$ Z' B2 i  K( qbool alrdy=false;
/ h# p* D4 ^6 s" `# Pbool inarr=false;1 }, K5 r. G, H. m
! R" v. a3 A+ ^
if(texarray[arrc]==texnum)
0 N; v' @6 L' \2 t3 w. Lif(delarray==texarray[arrc])1 b0 j6 G# c  Z: r1 T: Z5 [$ S
alrdy=true;' e+ T. Q* i) Z' ]
for(int i=0;i<dcount;i++) //sees if said texture is in delarray; j& X5 b' l! N+ B- C1 H" m9 r
if(delarray==texnum)
: ]- U" L3 {9 v8 |inarr=true;
5 V! q7 m* \, o4 U& Aif(texarray[arrc]==texnum || inarr){ //If true, color model differently- s( _- |/ e( Z4 Y
LPDIRECT3DTEXTURE8 texCol;) G/ p; i% P/ ?7 [/ P3 ?6 W
DWORD dwOldZEnable = D3DZB_TRUE;
. }9 A, D5 u2 R3 OpDevice->SetTexture(0, NULL);
% i/ I/ f* T8 ]9 BpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); ) e4 J4 N( l/ n/ k! p2 V: _
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);6 I! `0 v1 h0 [$ w9 o# F
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
0 M& b& S" j# etexCol=Blue;
% E* {; q# I+ I, ]else0 T1 C+ d9 l9 \$ j  S" f2 a3 w2 k
texCol=Red;1 B* \8 s! ^* g9 l3 K
pDevice->SetTexture(0, texCol);
2 w2 Y  a7 ~& {3 b8 O0 q' k5 ?( NpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
, o0 R1 A0 G  f* DpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);& `* I9 \: L$ y: c2 A. @$ ~2 l& \) S
! l) \- W) R. z: j
}
" ]& h4 y/ |$ X}
6 r' k2 F3 M0 l& Yif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
3 t& E9 t* I: W; uif(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
& n, ^% @4 X) h+ s5 Ibool inarr=true;
5 l. u) R% d) k$ @3 Mfor(int k=0;k<dcount;k++){
& p- C* s$ Q1 x7 `! V( K. eif(delarray[k]==texarray[arrc])
, q. Q) z3 p$ n( s, x1 N{
* R. s5 h0 I* M; X* }( f7 dinarr=false;//Found selected texture to already exist$ Z9 \! _% g# g8 `
delarray[k]=0;//Delete texture
  r/ B7 X2 Z+ F% [9 Jbreak;//Cancel loop
$ y! m  I) N* }}
+ f3 [4 ]4 n/ \* D; L$ u3 W}0 z1 ]! @  x1 @, b
if(inarr==true)
$ E4 o0 {- Z# V{
1 N) O& l/ A2 h& q4 g5 V6 Adelarray[dcount]=texarray[arrc];//Add texture
+ W! T& ^, w+ [& fdcount++;
/ Q+ O. z3 P; z! W5 ?. P}" ^4 {5 {( A  r; Q  S. I
}
* @1 r, ^& U. j5 l8 Iif(GetAsyncKeyState(VK_F7)&1){7 Z, a2 X" s' ]" P
int total=1;0 x% T" Z7 r$ d" V4 ]1 q3 S) w
add_log("omfg values?!? {");
  N* G3 b* U: {: {for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
9 y& H# F3 N! h+ @! Tif(delarray[x]){5 Z* y% g! o0 X0 u' c
add_log("%i,",delarray[x]); //add_log2==add_log but without endl6 f. [' F1 i( X+ D2 E. X  ^
total++;
& J; D- |! N& [* i" }, I}
& i4 w5 \3 A# w2 _' T- z8 e6 R( jadd_log("}; %i variables in array",total);' c( i9 W+ ]0 V1 ~9 ~7 J! b$ ~
}
5 i2 V8 q$ r& d3 e) {0 O: F( Kbool found = false; //THIS PART CREDITS TO KRYPTEC
7 M. q0 j) F* f) _* c4 f3 W# g: bfor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION+ b  S) S# K/ o" Q1 g- l7 C' X
{2 j/ }* Y: ?9 I& Q$ [+ `0 y* T7 x
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
! Z% @# X8 T2 q: h  X}
6 ?2 X3 ]# d* x4 ^if(!found && arraycounter < 1000)
$ C. ~5 N* U% N  I6 ]{6 e/ t. g, ?' @" S. \, X/ {4 ^4 g
texarray[arraycounter]=texnum;
; i/ y& Q7 u; earraycounter++;
/ I. t( f9 T! d; ^! ^}*/) I* s5 m$ ^0 g3 s- N8 D$ Y

& D' u* A0 v# Q% e1 M
; \( G8 n6 N) t4 O  u}
& b9 b/ v9 a9 @. c& }5 q- Rreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);4 d5 O% s$ h9 V" G
}/ ]$ o1 c' y  s& Y
//=====================================Dip_End====== ================================================== ===================//! Y$ N; H/ n2 c+ C0 c0 c

# T6 R4 |5 y. E1 m& o/ X' [7 @
: d& p2 I$ O4 M//=====================================Sss_Start==== ================================================== ====================//
0 J0 P( J/ D/ ~8 W# Otypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
: o; z. B/ w1 H- GoSetStreamSource pSetStreamSource;
8 F% s/ j" ?- D  c  `: t; g* L4 _2 [
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)* r; q4 |" @. s( h" E! c
{
. c8 E: Y1 u: }if(nStreamNumber==0)8 V, `6 K! _+ m- j  N0 R
m_Stride = nStride;
' z% y( n, W& W# o8 P
5 X& o1 v; }) ?return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
- D$ s) e1 g  H$ Y}( U5 Y, z1 t0 e7 l  @; K5 M+ S
//====================================Sss_End======= ================================================== ===================//0 s7 w) D7 o0 R4 ?, i/ H

& O; b" S8 R0 L' L//====================================Svp_Start===== ================================================== ===================//
$ I/ k. H2 j5 r+ ^0 Xtypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);2 i1 S3 y8 U, U- \. x$ j
oSetViewport pSetViewport;, F" o5 N8 M1 a) b7 G/ R
# n, F5 E) u- \$ H* t
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)8 @' H+ c! b( z6 X7 z$ R+ ]) d
{
$ F  h7 A% p" g. Z; LScreenCenterX = ( float )pViewport->Width / 2;* w- ^; K+ y5 _  h- F4 [
ScreenCenterY = ( float )pViewport->Height / 2;
7 W8 a, A: x4 G' }% g
, ~8 e. @( n- d4 \( c) p3 I* freturn pSetViewport(pDevice,pViewport);) _. w) \, K  X6 t* ^
}' z9 ]+ s# F. p
//===================================Svp_End======== ================================================== ===================//# A! @) t. g: w7 |: t( K

" y5 i+ v& v3 z( otypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );8 Q- l9 A1 ^' j( c: \* E- n9 C
oBeginScene pBeginScene;
3 x$ p5 v7 Q+ v  O+ Z3 m6 k; A+ z, ?! r! Z
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)7 `7 v3 ]7 Q% ~' M7 ^
{; B# T  P! W" n5 o0 I9 J9 c# Y( h
if((GetAsyncKeyState(VK_F6)&1))
# q+ F" a0 p- p& w' f{
1 z' Q- h' L/ Y7 d$ N8 ypEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
1 g0 |' {' Q+ \8 E; bpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
; k6 y; E; X9 R" N1 lpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);, x/ P: J% m/ S. |
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);8 |  `5 T% R6 {3 }; x
}
( ^) e2 q" |6 l  J& D
3 G) G" n/ U6 t1 Rreturn pBeginScene(pDevice);
" u1 J# b6 b! I. G/ B- l) L}& d- |2 W+ F0 |0 _0 e7 J5 S

" N' C7 D  e! l: s. D
( s3 }3 K6 k, }8 r) p  y# eBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )* q: K( V& y4 q6 [5 Y( n- C
{8 L4 @8 G: u) w2 @
DisableThreadLibraryCalls(hModule);$ u2 A% O" L  `6 a6 g( T) K
0 d9 E) M& z& U8 s  V3 R1 B' C
if ( dwReason == DLL_PROCESS_ATTACH )
( O! I* W& q6 U. z{. Y3 U/ d  c2 Q3 a# r2 p3 o5 J
9 {# G: D+ u4 I% ?% I: ]0 U
//=========Log==========================//
4 n4 c2 z* H, O  c9 @* YGetModuleFileName(hModule, dlldir, 512);; S, e1 M% M$ X4 |4 t8 K
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }! q1 Z6 z& h4 N. y/ u3 t2 z
ofile.open(GetDirectoryFile("log.txt"), ios::app); " K5 y9 F) g7 i
//=========Log=========================//
& N3 h' h8 H5 I2 V& C
& S" j+ S. A1 {) R$ q/ e; ~& fpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
- ?. z( r9 m/ U) J5 {" z8 ]pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);3 X: X' t, H- o
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);4 E6 S/ N  M+ B- ^3 b/ {3 h5 y
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);$ O/ |# w9 x) @1 q) E7 _
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);; k  e: v% A1 w$ A* `

) l3 _: t/ i1 o% T4 {1 Z& Y4 z0 X4 n0 o}% \, Y9 e+ Q& O( L
return TRUE;' [7 [4 k4 O0 @4 J
} , o( C1 ^; X; f% @/ H7 _8 Y+ b
% @1 ~+ t2 q" F1 O4 |. a5 J

  p9 ^5 X: d2 m! ]/ z& hLog.h (The header File):
5 L$ l( m- m  J, i* @4 g3 z! ]- a4 d# Y( p* z. |3 ?* F, C
#define WIN32_LEAN_AND_MEAN
1 w# v* m8 p3 |2 O7 x, c* J6 d4 _% ?; L
#ifndef _MAIN_H% }) D- t! Z8 d( A: t" ^: k- {
#define _MAIN_H
- F$ m) |! E1 H5 P5 y/ h9 @) f! `/ \' X( Y
char *GetDirectoryFile(char *filename);1 t8 P3 _# _: }' |2 p; A
void __cdecl add_log (const char * fmt, ...);
( b( _3 {5 ]  O, B+ B# ]#endif
# [! N  q6 l$ |: g6 w) ]: \
& U, _! U, O; XNow after you have built your wallhack you will be able 2 find it in :
2 [' S1 s8 \" }! B; N$ E/ |C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
' v5 `6 w( c7 D( ^2 Z" e1 i" @- G7 t% o8 j) b" g
Now I will show you how to make your wallhack undetected:/ s. `# d3 Z+ x. c; G% {- E
1. Download D3d hooks
3 D4 @  C- Z& ~0 o% C# Y/ W2. Open the file that says "create device code made by me.h": _# n% Z) `; W
3. You will need to make another header file in your project and then put name it create device and paste that code it.$ |: N% }/ Q1 _) s' y4 ~$ @
4. Your wallhack is now undetected.
2 q! X. g5 _. E/ B9 Y7 _; \' n6 U5 ?, v4 v9 F
Credits:! T/ N( H# u) g9 R3 b
1. ME FOR THE TUTURIAL. v+ s  g- r; _% C2 J5 p2 w
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
* T, f' ^9 z, D- P  @! C% L3. FATBOY88 FOR THE SOURCE CODE) ~5 d' i. T# r" ~1 y' M1 Z% @
4. THE INDIRECTX I JUST FOUND :P
9 u! Y! u* S: }8 N: X9 ]% J0 T
" D7 {* z+ g" F. x2 oAttachments:2 B7 J7 D' M' L: n$ |4 I6 M; s6 _
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5! Q! s& B2 R# G( U1 R# k( {# J
IndirectX: http://www.mediafire.com/?gimzgmeny11; @/ _- g" C/ f& x
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
1 v" g. T# K/ R6 }' d9 U, Y. i! gSEARCH THE LAST ONE UP
6 v* v; S$ m7 z: z__________________7 v# Y. D% Z1 o: l# d7 D  O

! A0 f0 n1 k1 A& ~ <---------- WALLHACKED

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2009-5-26 11:46 | 只看该作者
想请教一下,这个代理研究是什么概念?
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。
& w/ L( T5 y/ r6 j9 s1 D( |主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。- N3 W; q9 Z* B; _
这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。' l7 c, \! ~+ |4 g% z+ R
有个帖子,简单的说了一下,以后还会有大量资料放出来的。, u8 V( m7 S0 S4 Q! I6 p) r
https://www.chinaavg.com/read.php?tid=17190
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表