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

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

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

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

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

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

原文
6 i8 |8 A  T  p5 k" P. ^http://www.descipe.net/forum/sol ... -your-wallhack.html" x% v2 e2 f6 J$ \
9 E' a, ]4 c- W/ o& ]6 v1 z  _4 x
视频教学
# ~( Z" z" }& ]: Dhttp://www.youtube.com/watch?v=6b5XMzT-b_U   
* q0 e# M" _* w% o$ Y# f+ r
5 c! K* r' _- t4 h9 P/ Z7 EHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
6 Y4 m) @2 X( w6 ~) `* L6 ~
- ^4 y, A/ G3 V# f Hello shane007,
  p5 F5 b, y7 j0 J$ kOur 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.
" U) j/ D7 T- l+ A+ Z3 w* N3 v$ `" F" T3 o% W2 Z& r
Why not start with your first post today and become an active part of DEScipe.net now! 6 S. k6 H% u% ]) d$ [$ Z

! U/ G' C5 Q" s$ d0 u2 w3 A
- O; T8 l% o$ k/ e( W7 v! ~' z  ; o- ^* ]5 F8 \! H5 k8 ]% D
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  9 W9 x2 G0 K0 @+ p6 q
How to make a wallhack and how to hook your wallhack!  - x9 M( L. q8 s
Welcome, shane007.
! z% S, d: d% m6 ~5 c! p# IYou last visited: Today at 03:55
) C7 H  p  T" F0 Z2 \0 w- J5 sPrivate Messages: Unread 0, Total 0.
; N4 l4 i$ _( D! x( J6 MCredits: 200 [Check]  
+ I6 g4 H$ h, t8 Z) P9 R6 m) k$ d
Home User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
- M  w# Z5 ]: l/ B( u7 y7 C5 v. K! a2 U% s( G; t; b
3 F7 D; c% E9 z* R

0 `. S# H" g9 H, k( ySearch Forums
1 d( I0 v( S( }  o      % m; K/ R; c4 m  ~- {

9 Y" I: R  x$ |: DShow Threads   Show Posts  ) b0 E6 J$ d* B$ R5 O
Advanced Search 5 {2 q% J) n0 }4 E8 c* S  k
Find All Thanked Posts
% ]* H! Q1 f0 B3 s1 Z8 X2 L, D
( Y& j" x1 Q* nQuick Links 8 I# P! s1 X6 _. Q' q- o! i
Today's Posts
/ V' g% ^; R  hMark Forums Read
5 g2 p9 q, p' u " |7 l: d+ E  }
User Control Panel
* K6 r7 L- q% W' L6 fEdit Signature " I& g3 f$ v2 J1 F2 d% Y7 s
" E* C9 W, [3 S6 m; X4 f
Edit Options # A& t+ z' X% Y" p- X9 a6 B9 {3 Z
Miscellaneous 1 b5 Y  m9 d" j$ G$ C4 B  }5 c
Private Messages 1 u' _, x. n# C3 ~% {; _( [( S
Subscribed Threads
  D" E9 P3 q: V2 r4 I
2 M  K/ X0 F/ t- bWho's Online 9 z1 L" T/ q' j9 [' R/ ?/ s
1 P7 j# D! b+ O5 l* d
Go to Page...
# z# d. Y! o$ o. V7 A& v0 m   + @* j8 g* K1 S
How to make a wallhack and how to hook your wallhack!# w' |" m5 C5 P0 ?/ p, ]
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. ... % ?% B6 {, n0 a- B% p' P

  x0 R  d7 S1 ^, U- \    Poll: Was this helpful?  
6 |, y- d1 z( a' f. b/ L% B3 l* hPoll Options* f4 _$ l& ~, u$ P
Was this helpful?
# P  a2 E) j7 t3 z6 n7 |Yes, I WILL press the thanks button. X+ u5 `; x# D0 j0 M3 @
No, I am a failure * h( j+ o0 B% A2 P" j7 N( f7 {3 m
View Poll Results   
/ B6 a0 R8 x& i8 C2 N) ~0 n7 L( i8 E
Page 1 of 3 1 2 3 >   + U. I* |' y) A/ Q' A% B6 S) F* n

5 ]9 v+ J$ g+ \- O+ h0 k6 m1 q7 |" M View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   - \& F2 w3 r8 T- O5 Y! e# |
) s7 A8 t! u/ ?! O& L
/ i' W- |- P; L) B" @
  
' J% a  [# t2 u1 s2 Q( Z1 { 05-02-2009, 20:49    #1  
  }4 J% ^4 b. k) skillax9 - w; G0 Y7 ~# l; c2 @1 X: T) z
Punk
$ [5 ~, h( B4 g % I+ G# \* z% P& D" m% D

7 z8 H! e& x3 D7 c) g
4 g4 T8 D) W0 H" ]2 j6 n: K" ^( B9 K2 l! w- [% C
Join Date: Jan 2008
* D% g! f9 d6 z( p/ U9 }; BCredits: 2,701 [Donate] 5 C: h2 k2 W# n/ a$ M* |; V
Posts: 103 ' c  b4 E5 N' u9 i4 ~) S
Thanks: 10
6 o+ b9 ~9 n+ H& P4 N8 CThanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack! # Y4 {# s5 k6 s6 p

8 S9 i% _8 f: ~* U& q--------------------------------------------------------------------------------* K5 `4 U, \3 }
' z5 Z8 b* S. y* f9 ]6 y
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
+ a9 A& N( B& q- w3 [Possible Undetected Methods:
# a- o4 x& P! e* a0 K1)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.6 b/ U8 Z/ Z- [9 y% i/ z, u6 w2 B: c
2)another way **** it hack GG.
+ Y  Z6 L& ?5 U1 ^1 t1 J3)breakpoint hooking;doesnt change memory... well changes debug registers.
9 G1 l, ^8 {7 D0 Z/ ^6 {4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
! z: l) M, c& Q. r6 L* M; X5 G: G. g9 ]( T; I' C; I
Vtable:
9 T6 U* N0 l4 K% I  yit wont work for vista its not a vtable hook =)
; T6 V5 B% }4 D4 S! w
  j) V3 a9 ?& {1 L4 A; Ethe reason why my older version worked was cuz it hooked ! R% t  Y* q6 d7 t/ o) X7 e( G, w
Createdevice->pointers to the functions, b- n" l1 [4 U5 K
  {6 @/ C- I. j
kinda like a class or a struct.
' h. }  e7 {& M! l7 @- \2 C/ `9 h- S6 s

9 m" z. v8 z& [/ h* m3 {9 d. ~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.
' ^( p4 _+ S: t6 _0 X$ |4 I3 v$ T/ N! N; q) t7 ]
3rd maybe- some games recreate the device when a map loads...like BF1942.
9 l+ }0 y1 [$ I5 m4 c8 E0 m
" u( O0 ?2 R! J8 C0 ^% J: n( X% l& XThings needed to do this:
6 F/ Q. u% j1 x3 Z* ?/ d7 F) X1. Microsoft Visual C++ 2008
# h/ r1 c, W" I% a5 M- q2. DirectX_SDK_(Summer 2004)
/ k, Q' k4 s; C5 q1 g; t! t3. D3d_hooks: L7 M: W/ x& @5 Z) P
4. IndirectX5 G0 e, N) Q. h; A# U( }
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
/ v! b6 {# \) t) Q0 d" p! h. @
+ z) D4 V! c! g  GNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:6 p* @5 }$ `- i0 j" g4 p

. F  U9 M0 q! E3 ?, F& p( PYouTube - How to Compile WallHack [Tutorial]  6 [2 r$ V. l5 k8 d  w

- D5 i% A, Q5 h- }5 |  K  Q3 ^# T- O  `. b1 B7 c; l

7 U  m' B, L+ ^" pDetected Source Code:
4 h, }. R7 r7 m( [4 }% X9 n1 P+ J/ _
#include <windows.h>
5 s# R' i" {) S4 S! [#include <detours.h>
+ @: [4 y$ C( i, @#include <d3d8.h>
; `) `6 e7 s, x/ ^, G: F& n#include <d3dx8.h>1 ^3 h% y. y6 u7 z. c
#include "log.h"
. }; ?3 ^* u' p7 T#include <fstream>* Y2 o! f" P+ V2 ?; G
#include <iostream>% M3 H. ~/ a0 E
#pragma comment(lib, "d3dx8.lib")
* V9 S, j: k3 D' B#pragma comment(lib, "d3d8.lib")7 z+ y2 G* }) ], V0 m9 ^
using namespace std;
/ I  q# x0 S2 O. E* ?static DWORD dwBeginScene = 0x6D9D9250;- ]9 B! l6 r' M0 y' Z
static DWORD dwEndScene = 0x6d9d93a0;6 l1 g4 w! |* y, P' E- g
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;1 J* V' o7 h' U- |% l) t
static DWORD dwSetStreamSource = 0x6d9d6760;
! N: N( @% p! |$ v5 ?static DWORD dwSetViewport = 0x6d9d5b90 ;
0 d# S/ {8 P4 t' \- d, @7 q
; _* \2 h0 ?( P0 H* t! L$ q3 o$ c- K; l
int m_Stride;+ e8 C" s0 b9 Q/ z3 ?7 n3 K' M
int texnum;+ I. g5 c/ W& `5 h0 n) I
int nNumVertices;3 d7 o7 h  c( Z4 L, h4 x
int nPrimitiveCount;8 B  e' g& s+ D, S
. l1 h; t  b( f4 J8 d/ b0 P- E  Z
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
1 o! w. v) H5 d! y& Wbool Color = true;9 \+ k: H% S3 _, f& @+ ~
bool Logger = false;+ E" q* V: \& J0 k
ofstream ofile;
4 s6 p( L; L5 x+ ^* Qchar dlldir[320];5 f( x1 |" D5 k2 @4 Z" G! M$ }
float ScreenCenterX = 0.0f;4 j. N9 m2 k$ X& Z* K, F# B
float ScreenCenterY = 0.0f;
: y# [/ T+ c  \1 V; Gbool xhair = false;) S: _- t. c  ^" T6 k
bool WallHack = false;
7 N( N2 X" w4 B/ |; F! mbool WallHack2 = false;
6 }- j, x% C  VHANDLE hand1 =NULL;, |# P5 _0 j# M( B
HANDLE hand2 =NULL;
4 d$ _3 J/ c: Q$ G  v5 w; {$ P' j* n; n. _/ N
DWORD bytes;
8 n+ F! s1 q! e7 S  f
' j2 F4 z3 S9 a8 r; Y3 d* E//Logger+ V4 j. f8 z; t2 W: t% V' j% w
int texarray[1000];
* J; O( b% g+ `* p9 Kint arraycounter; 7 l( p9 ?* K& C5 }) p+ v
int delarray[500];
6 w5 q8 y) d3 f) h) Y# h; i5 _7 S( b  rint dcount;
) q& |; R/ q* e/ S/ Dunsigned int arrc;
% i  L% ~/ d. r3 Rint i=0;7 |- U7 }: y: m# m6 ?
5 K3 v: J" J9 H( p: ?
5 z" N% _0 x( v! {
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
6 x8 J$ g) K/ u1 \
0 m  g/ `( T8 m9 L* x7 O. e5 K1 I9 }" }6 }/ u
char *GetDirectoryFile(char *filename)
, ^( `1 d& g# O% r# y' k# _& h{) q5 [% \) h% V% d# J, ^
static char path[320];3 i1 v* P4 w, [) Q/ g
strcpy(path, dlldir);
0 F: K, r6 ^6 y2 y# Kstrcat(path, filename);2 s0 Q% D1 ?) ]4 v: a* E, T( R- S
return path;) @' [2 o" `) k( d0 `% r8 J
}
) u7 C+ Z# S" W& h7 k0 b0 R7 }5 u
9 s  z* @! N  E' x( M- Tvoid __cdecl add_log (const char *fmt, ...)- a) X' m3 O* q8 t& \0 s3 T
{5 z( w- m- K; G/ b$ x6 n: z5 l
if(ofile != NULL), e( C6 _2 {# j* B, q) Z2 p
{
5 }, J3 f% {1 l5 w0 Z8 C& Cif(!fmt) { return; }
" m# T8 H* F9 }3 L* D! U
# k$ Y  L- @/ b7 z  Y! ova_list va_alist;3 A2 o' q9 E' U  Z/ R. C( K4 t
char logbuf[256] = {0};
8 G: O2 _2 d0 P4 A* l; w8 x+ _/ C! d2 O$ Q5 l+ {
va_start (va_alist, fmt);
0 M4 ?" X# t7 N8 ~_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
" H8 Y7 K+ p8 b  W- ?6 ~va_end (va_alist);7 ], _8 [; V- u7 H$ `
& @; f1 X7 U# X% ]' p
ofile << logbuf << endl;4 l. t4 A. f1 e
}
2 ]4 N0 R5 @0 i}
4 Q! g4 ~% t9 T; D* O. m2 k( M: T2 r( l' ?  @- o
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)# S4 `) M% ]. a  q* N
{
7 u' k. G' `, F/ zif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )+ t$ v% j2 h2 |* U9 U6 s/ l6 r9 e
return E_FAIL;- R7 y- U4 R- _, g5 z8 c% z4 A

: C7 g( {8 G* N) s# z4 ]WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
5 k5 l0 Z/ u7 Q" {|(WORD)(((colour32>>20)&0xF)<<8)) `4 n6 i( w: q( d* |, y
|(WORD)(((colour32>>12)&0xF)<<4)+ e& c" j* q0 }, \  s1 F" X4 g
|(WORD)(((colour32>>4)&0xF)<<0);0 i- Y7 [6 k' i0 h1 n
: A$ S5 w  f' Q  J+ n5 ?
D3DLOCKED_RECT d3dlr;
. Z" y; V$ O# k% e2 Q1 K+ K(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
, x. {* q9 E+ }4 z, JWORD *pDst16 = (WORD*)d3dlr.pBits;
( b5 [& y" Z4 J. B
* e0 p* {) u9 J0 N3 efor(int xy=0; xy < 8*8; xy++)
2 f" m, K$ d* M4 ?) y& J*pDst16++ = colour16;
: U* Z  G1 I! `/ b) l" V3 P7 V6 `- o1 q
(*ppD3Dtex)->UnlockRect(0);
7 L0 |; w  |/ D! |
6 D9 U  ?# b+ `) i# Zreturn S_OK;4 o/ B7 y* K1 {3 i; M9 I- z' Y
}
. o0 v4 m$ h" ]9 j8 k& H: ^% V
" H& k5 c( X6 K4 k0 v2 H7 M
5 p6 f  B/ v- ^//=================================EndScene_Start=== ================================================== ============================//
! O* ?, x9 f* t" R3 ~! L$ \; Ltypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );7 Q$ w: E; l) W8 `. s/ P5 a3 N( p
oEndScene pEndScene;
8 e; O$ [  p3 x, U9 @4 S- j" N6 b! h: p/ R- G9 z# ^
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
3 M  B" w( a1 R' y' P" @{
; L7 x: ?, i: k1 ^7 N1 sif(Color)
1 y  b( m; Z# Q5 `$ ?{
7 S; k. X6 h7 M8 {) G. hGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));9 W5 O! |1 P. e) D7 X: `9 `
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));$ m! t6 D. k; D0 u! t1 |! r7 c
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));& V9 ]) \' b# @% T; P: L8 @
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
* m% c- k. S, C; A( wGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));" @. |% F9 g" c: S4 l. x, f
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));1 \3 B0 t# m9 g5 C8 ?* R/ [1 W
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));- c4 s& b5 b# B& D
Color=false; $ r  F/ X7 y, y! t
}
- P" D3 e) b( c6 o* V
1 o9 Z/ M- }( `, J1 u; I% Vif(xhair)
7 d, i! i, H$ L2 u{2 V6 Y; o% j, g6 h( s8 b8 W) T3 C
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
# z4 X  ]* ]. `, n! U, z: E" ND3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};0 f+ m2 h! m6 p+ L& D: A. J
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
1 g1 @/ O+ {" p/ P' KpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
6 x; |3 c5 ]: I* m  G}
' r+ e, C& v" I- p
8 K5 e7 @# n0 ]//=============================================UnHoo K_Start=========================================== ========//+ V, X; [5 |; J) D2 w  Y

$ u$ V9 j3 V: L! k, Lif((GetAsyncKeyState(VK_F5)&1)) ' [3 f1 n; p9 f: b1 c
{ 8 P& v: f  y$ f& C# Y4 u
int end =NULL;9 X( }. {! O& m3 ~2 R; i! t
int dip =NULL;% o8 I% f' k+ w2 ]* }' B
int svp =NULL;
0 \2 C, Q" O) A4 r/ @, [7 B5 H- Rint sss =NULL;
" e6 W& l8 U3 n9 W8 u
* D- \+ S* v! _
) b, U& x4 ?- s5 o' N1 }BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
; \  I  k; g. B' y% U& a# phand1 = GetCurrentProcess();  o3 O6 N7 \& V2 y. r
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
# ^) }' @2 h' X% Z- K! ?) {end = 0x6d9d93a0;2 X/ E7 u- o6 V7 q8 y9 Q. a. ~9 F
dip = 0x6d9d73a0;6 U% W- T4 b& j' U  X5 r* y4 z
svp = 0x6d9d5b90;
! n: R5 {$ z1 W/ h8 hsss = 0x6d9d6760;% {$ g2 S* K' `' w1 W

4 L# P: K$ Z. H' a7 d$ eWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);) O7 k4 p- Y1 a; F
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
$ j5 A# m" y8 Q2 m" @$ ]3 cWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
$ c* I' r* F0 _" u* v$ J1 HWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);( F& s, q) n% l$ d
}
6 u) V# S& B6 q% b( r9 e//=========================================UnHook_En d================================================= ========//
5 Y5 |0 |, {( C: j& y  U. U, H+ J
( s/ z! o9 r! v9 W' j  vif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
( |# u' O. c3 E  m' ^# _if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
6 B0 ^0 b7 w& G( p" S/ {2 N5 n6 A2 s/ Z" p  w. i* t0 ]) Q
return pEndScene(pDevice);
7 P% n$ H6 R! @. r7 {# u/ P% {}
3 C: K" R( E$ w//====================================EndScene_End== ================================================== ========================//
1 [! C$ ^% s: T+ ~  L! N
! s! p' ?! g& i8 n3 m0 G
0 I* ^& }* z: J7 t9 F% t! r# y, w& X9 h6 T8 m
9 z2 S& W$ g2 C2 k' j, P
//=================================Dip_Start======== ================================================== ==================================//9 I# ^& _4 e. B- k- w- }
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
+ I/ X' Z; e/ z& V: R; [" a7 PoDrawIndexedPrimitive pDrawIndexedPrimitive;" M# E% b% d% R5 T
- e1 L3 C& f7 z/ T$ R4 K$ ~
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)3 B7 p% N: P: Z# F6 V, x; s% `- h
{
( N  z9 \* S& |9 H2 }$ i* S8 \- C6 J2 w0 d' V* g
9 H: H+ F/ Y5 S: ~: [' F
' ~$ _5 L5 F0 ~2 P4 y0 o) \
+ r1 G" ^* X% q! G
if(WallHack)# q4 W8 i5 [' H8 Z- u
{4 O8 L% r' X- A* F- }
texnum = (nNumVertices*100000)+nPrimitiveCount;
! e+ J9 q5 j. P" K- {if(m_Stride==40 &&
5 o9 d# s9 k8 Y4 u( W4 |3 ~. T- S
7 K+ C5 }2 J" n(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||' P& u: h% p* @" G0 l
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||' ]- J' ~  Y; y
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||
- T) i% z) q- u. h4 q(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||, k" H; V& K5 q
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||$ w7 Y" W- ^- C; y
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
4 H5 d$ [, G  A$ u; O; c(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
: R1 u6 ^; f+ j5 d(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| ) N, k6 s/ ^4 N% e1 I' x, y
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| / `8 {: b  ~) _& k2 Q4 N8 S
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| 4 Q3 r2 J; a. a5 o$ {
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
7 x! I  `! m. \! F
9 W+ d" u6 v' O6 ]0 P2 c: U5 a$ b+ v
5 h7 n0 u& f6 k' W) Y/ t$ Z( j' ?1 S
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot 5 E- G2 ^3 b" K1 {0 p
(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm 1 N8 U: I$ `1 h5 ?4 w8 \
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand " J2 j( z( Q/ b. F% d+ W
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
+ o0 y0 ]9 h9 M. n" I' m+ v(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)8 E* y* S( w) L% c
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head   g) e7 i4 Q! L, m! z/ g0 \1 b( K7 K
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item 0 d( V+ t& G7 r2 }+ [+ ]% h6 L7 q
(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
. \  P! s2 c0 o  V/ Q8 O$ Z% R(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants. |: R1 K  t9 c# A. R
. s6 k2 D9 e! a2 K4 `
{* C1 j7 A  f0 _6 z1 l) U
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);8 o* I$ E; ?4 C& Q: d0 q5 L% q
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);6 t# J& u1 W' h* z& l' J# W# P
pDevice->SetTexture(0,Orange);7 b% k# ]# v* ~2 R* B! A0 R  w4 N, X0 \
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
! `8 Q, Q* a7 K* }+ ^: \- p# V6 K# e
9 y* k$ M  `- s+ I; f8 _$ X+ zpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
2 n9 E9 j/ Y; s* J5 x
9 t6 `" ]" o. {( m0 G( D+ h//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );9 X( J  I! T" T
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);0 d/ ?8 |! e: B6 {
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
# p( O* X, F# b' NpDevice->SetTexture(0,Pink);! n* p% a% u# \- F; G+ P* F
}
7 a" B8 Y: p7 R! R7 Y0 `; f7 D4 I- Z1 P6 P
if(m_Stride==40 && texnum== 21300174) 9 R$ u' {+ \: n5 T4 b: R
{  P9 |2 C6 u" V! m6 |5 L4 b( x
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
# A$ e5 y  W* ?# {: @/ ppDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
) h0 _$ u0 }, P) g( r" @2 b$ mpDevice->SetTexture(0,Green);//GreenNade
8 o8 u/ s/ E. k6 gpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
' V$ V4 w7 {# N" h5 OpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
/ w, m, @+ x" ?/ g/ ypDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
. q$ ]+ }" T+ W! a6 VpDevice->SetTexture(0,Purple);0 w2 H9 \6 e7 h* C
} 0 W2 w. N, J2 f' K9 w. ~0 o
, f5 }! c) `* \7 s
4 B! h3 ^3 q* [& R" N
if(nNumVertices == 158 && nPrimitiveCount == 131)0 u5 w! d4 U3 ~6 K# _$ x) r
{
+ c  |: c" f& g  z% LpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);; ?4 t0 H  ]8 h1 ~! p1 P& T
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);5 q8 ]( l5 \: R6 Y5 ~( Y
pDevice->SetTexture(0,Red);//GreenNade  o; O+ }* l7 U0 u
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
9 L9 j4 h' ]# r6 j2 o2 }pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);4 ]3 s6 V- y. L' Q% ?3 ]
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);- ^5 J7 M; G6 D. c- V4 U1 O! ~
pDevice->SetTexture(0,Yellow);
. g- Q$ J; H. ~8 T* B7 b( ^" A}
6 Y/ f4 B0 N% x$ e6 ]$ C( ~! r  R( p7 i( O4 W* q+ j0 I& h! D( z
if (nNumVertices == 171 && nPrimitiveCount == 143)
# A! K! y" c' r; W' o: p' B7 S{
4 d& G+ W1 B, B: {* y1 U3 q' d: n3 }& D+ n) M
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
- @' k! Y- A& V* ~) q! G1 U8 h  u% jpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);9 Q9 q6 l/ T* D  M  \# |! ?
pDevice->SetTexture(0,Red);//GreenNade
2 y' v. p! \" K6 }9 [pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
, B# l* y( o2 M2 g2 V5 d5 IpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);' p& e2 O( ^/ \* G1 l. u
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
  v1 \, G5 @# i* K2 j& C- opDevice->SetTexture(0,Yellow);
' Q7 `1 z9 `: X6 t1 A  [7 B}6 T) g3 `2 ^# V# O% @( [& N. I% g1 P0 o
( \$ x) p; f6 m$ Q7 a, d( l
+ A. x) q- Q% n5 N% X/ A

8 A. U8 l: k1 M, \# o5 Q# @7 h* Kif(m_Stride==40 &&//face,mask etc...
. d# L1 x* {/ i* S$ E9 f(texnum==36700612) ||
5 e  g+ s$ f, }. W9 }(texnum==9600172 ) ||4 l2 V5 N, t& F, d: o4 E1 c
(texnum==14200236) ||
6 \1 W8 A; f- G# {1 s' F(texnum==37800552) ||$ h) b% w0 E5 `- }9 U, k- W; a
(texnum==28100486) ||
- F$ [3 @$ s  L3 r$ v(texnum==35500568) ||: `1 I  {/ J8 ^" J" l
(texnum==2200024 ) ||  T+ v/ z7 ^) C6 ^: H0 Z/ L( {
(texnum==16200243) ||. t4 g8 U* _3 V" M0 q: h
(texnum==31900466) ||
/ s2 h8 T6 X& i+ _3 F; ?(texnum==19300342) ||
9 T, N" q! \; o- J2 ^+ x(texnum==36200604) ||
  ?8 L5 i. |0 h) m, O, H9 ]! p* b(texnum==21300290) ||
2 r6 ^+ c5 h7 D& Q$ U& y(texnum==35700558) ||
! g% X2 K" |' y1 f/ m2 r+ x4 y(texnum==22100396) ||
1 n) W4 t# z3 I3 G  |; _' E8 l(texnum==36100604) ||& N3 x4 Y! Y% M$ R) q$ r$ e
(texnum==27100464) ||
) p! ]+ F3 I) X; N$ t(texnum==11400180) ||: M) i# }' ^+ \3 S
(texnum==34900580) ||# O3 c2 m/ V) |
(texnum==13200212) ||
4 L; ~( \! P0 }+ b1 G! w(texnum==34700538) ||5 `, o( y8 J+ l% C* A0 C
(texnum==19500352)&&
, Y) m* R0 i; U3 p' l(nNumVertices == 448 && nPrimitiveCount == 776))1 I3 v$ }4 Q* z" g
8 E1 ^& z) H- X  @  N: A/ R
{! \6 ?$ M" K9 E6 {- R- b6 N6 ^
pDevice->SetTexture(0,Blue);
! C; R* ?0 m2 l5 y}
! n, y9 }7 ]+ S8 p0 u1 Y8 c/ L8 R; k5 V: @1 ^( m$ O/ k

! Z+ e2 Z/ m* H; U2 v{  g0 G6 T) V- E9 F
pDevice->SetRenderState(D3DRS_FOGENABLE,false);
  y/ f& k2 ~; ]( S9 X0 d( }}. l3 W7 r: p$ }/ I. ?3 q4 p' D
( k# \* u0 S! H, @9 c
/*Logger4 r4 ]) M( s; V; m7 K
if(m_Stride==40){1 b. M4 D: O. W# p  k

7 D; G, n8 N# B
. t9 T6 T% X+ o' q8 Iwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
  i& y3 b# q- _while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
( s* u. y# F; T9 w# |bool alrdy=false;' {1 q; y" d' ?
bool inarr=false;
: U$ U3 }' l0 C; v1 i7 s: a% \
' u0 v- I: S( M, c9 S3 c: t. _if(texarray[arrc]==texnum), U) _+ T% L, S
if(delarray==texarray[arrc])5 n$ ^) b: x! ~$ h
alrdy=true;
4 ]& {. Y  c/ X/ R, U! Ufor(int i=0;i<dcount;i++) //sees if said texture is in delarray6 q  o. i1 F* p6 N+ g' E/ g: a
if(delarray==texnum)' H6 X$ K6 y6 t& C: C
inarr=true;
- {' L7 T2 [- ]. Y. h% z3 Gif(texarray[arrc]==texnum || inarr){ //If true, color model differently" a: J& X5 E$ ^8 A+ C
LPDIRECT3DTEXTURE8 texCol;) w* m5 ?" ]3 a9 `$ G
DWORD dwOldZEnable = D3DZB_TRUE;
' h1 }* ?: ~# v: p' ^8 Y4 p& ]pDevice->SetTexture(0, NULL);
5 L/ Z0 _8 L1 HpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
' T6 b- @- i4 U2 G5 ]' rpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);2 `8 q( c6 l8 Y& K3 I
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
) A" f4 q* T. n% g2 qtexCol=Blue;& _- y# X4 S, D8 j$ B9 q" {
else
- ^2 z) V& p; r/ J1 P0 ~texCol=Red;8 A: O$ q$ ?) y
pDevice->SetTexture(0, texCol);
9 }4 M$ k- a! L5 J( ?/ DpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);  z0 F( {2 G1 k2 a3 R+ e+ d/ _
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
" |  x, o$ a2 L  ^  t" p0 s  H, ~" }$ t$ G+ d
}$ ]9 S# S+ B7 ]! s
}7 f. R- e% h7 v" [1 Q; T" o
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile2 e# D9 ?$ D3 G* B' J3 Z
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array7 Z; z' d1 l. f3 K0 ]2 e
bool inarr=true;
/ N# z8 ^. l& T8 u. Lfor(int k=0;k<dcount;k++){
+ U9 c+ ^" _6 m% T( b0 wif(delarray[k]==texarray[arrc])
7 `8 T* [9 m4 \) a( ]" r{
( S' x; s: ?6 I' _8 Winarr=false;//Found selected texture to already exist+ g3 M: ~# C  [  S8 ]0 k+ g! v
delarray[k]=0;//Delete texture! X! V8 d! Q7 |( |+ T1 w+ c
break;//Cancel loop5 [3 i' ?: o' z/ K  ]: r5 S' J
}% j1 ^( n: r" k) U# s
}  f3 l6 h8 s" F1 d* b7 `0 o
if(inarr==true)& y6 c1 t/ h9 L; Z% a0 S5 T9 P* D9 I
{' R, @% t$ E) k' d
delarray[dcount]=texarray[arrc];//Add texture
  M' }! l9 X2 A, G/ Vdcount++;
" A) ]8 B/ i% X+ C+ M}# }! u- X& T4 M( X- g( f
}
' z" g: j5 h, j) Dif(GetAsyncKeyState(VK_F7)&1){
9 w' G7 ~9 G& `) p  E( _int total=1;& }7 ~, P' Y: ]
add_log("omfg values?!? {");
6 ]$ [- u* L3 j- Zfor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format: V% E6 Z0 C0 {3 z1 Z9 i# E
if(delarray[x]){
8 L$ t6 [0 I/ n* jadd_log("%i,",delarray[x]); //add_log2==add_log but without endl
( G& X1 L2 ^% M" Jtotal++;
2 @1 d- N, W+ S/ x6 H1 R}
( t% b" a9 @. }# O! o5 P, [. `# oadd_log("}; %i variables in array",total);
' ^/ O& {) K9 l0 m: \$ }; l. K}
+ s3 {0 A8 O$ E2 vbool found = false; //THIS PART CREDITS TO KRYPTEC3 |) Q6 D: L+ Z9 K& H* w
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
* a1 J% }. M+ T4 A; a{
5 P6 d# T/ T6 ~1 Bif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
) K5 o  M9 M3 Z}
( ^6 C0 X6 c2 w% h6 jif(!found && arraycounter < 1000)3 \  M0 N6 A9 O- u( x6 d4 N  B
{6 A! J$ |' e) G. Q4 c# m' C; f: Q
texarray[arraycounter]=texnum;9 W# |! k" Z, @1 H
arraycounter++;
# Q6 D& y% O; G& b" M}*/
/ n! J3 m3 v' |7 c7 x1 e' C% R0 ^0 y8 q6 M! x4 Q

5 G$ Y* a: \: X7 N  M}9 v0 m) `2 x  N  d- `. ?# N
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);7 L: J8 \- @1 A$ r; n2 h
}
4 R: H0 x  W' g//=====================================Dip_End====== ================================================== ===================//0 x7 O4 R( N! q8 W. P: h" Z
9 h; w  D1 r% E0 _' Y6 N$ ]

) X# K9 ~( g; G5 A' r  N//=====================================Sss_Start==== ================================================== ====================//
1 p* N" l; f! G/ Ptypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
; m9 z0 D- c7 d! {% hoSetStreamSource pSetStreamSource;
( y! V( D& k$ e1 ~+ u
1 y* y7 D0 `; JHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)& I+ X( M% ]7 Z! c) `0 P3 Q
{
4 }- V) Q& W& ]' M2 u, nif(nStreamNumber==0)
7 U2 B3 A( L/ j+ @2 [m_Stride = nStride;
; ]  D) H7 F' p- P! \, u1 |9 j% n# ?+ S& _; S
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);5 R2 m! u5 @3 D' v8 G
}! X( I; y+ I* a7 }, T3 `
//====================================Sss_End======= ================================================== ===================//, `- a; G/ r, K- `1 o

# z+ U6 q% ^% z, k" L, J, u//====================================Svp_Start===== ================================================== ===================/// N; h: s" {7 n0 Z4 ^
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);2 T& v: ^7 Q; `7 e- A) N
oSetViewport pSetViewport;9 G" f  M0 Y7 b( ]
& y& p2 r# w: ]  k
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
- `) I) k2 z, `0 x4 V6 t{1 k3 ^8 R8 v/ S& w
ScreenCenterX = ( float )pViewport->Width / 2;
4 `; U$ n5 I1 I& e" EScreenCenterY = ( float )pViewport->Height / 2; ) X/ L4 n) k* r# Y9 P

, v* L3 E/ a5 oreturn pSetViewport(pDevice,pViewport);/ }1 T- }6 W; Q2 p( y! x* Q
}' X$ X) c! {" U1 e8 @
//===================================Svp_End======== ================================================== ===================//6 j( v  M: M2 f9 L7 t" K

+ Q8 `5 ?3 Q3 k" ctypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );0 g0 s! _) g. y9 ?% ~
oBeginScene pBeginScene;
: B, r+ L! N" `( y3 M
' [8 A6 _; t( Z7 r2 ?HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
5 b; B; }* z; i: V7 e0 @{3 W; |* ~% D2 L2 ^
if((GetAsyncKeyState(VK_F6)&1))
- L) k* N$ q0 P2 W{1 h' i! Y3 x2 O5 l% f
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
' y  b6 Y8 g/ d6 C  ]6 bpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
6 N* F6 K2 G- Q1 B8 I6 C" v8 wpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
  K$ W1 s' T7 |% E% k; a& BpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);$ H" k  e% s& t: k
}4 ^  ]/ U) u. P. j/ {! L
# E8 U' {3 ^) A; n' R6 H
return pBeginScene(pDevice);% _+ A; k1 n' h  S( B+ ]4 q; W4 l' B
}+ }- M/ I7 _) f; p( v

- U. P7 @/ c3 |- r4 \- Q
9 @7 H4 m3 w. J7 b$ U& f6 |0 tBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )  `: h0 d  P2 }5 }
{8 \# b" X8 [5 i! [. w
DisableThreadLibraryCalls(hModule);0 |" S# @( o0 I3 P
. |; H6 I5 ~% s; `
if ( dwReason == DLL_PROCESS_ATTACH )
6 k- r" _! `3 j9 Y{5 O% {* t6 [' [  Y3 m1 x8 }

7 I. x0 L* G, x* e9 Q//=========Log==========================//0 p& X) B8 u& J# A6 C
GetModuleFileName(hModule, dlldir, 512);3 w2 r: [% {# p; E" r
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
- `8 X$ H/ O; C4 D, ~$ B$ Y; hofile.open(GetDirectoryFile("log.txt"), ios::app);
2 N# l. i: t% Y8 b5 C//=========Log=========================//& J, J; Y2 o! E5 M0 U1 ?' x/ P

8 L: j9 }( ~4 V! r* zpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
7 e  c" a8 c9 H: V. ~. M9 W+ z7 OpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);( C  F) m6 f$ ~6 o
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
. a+ f3 r* E! e% F& Q+ Z7 g/ {pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
0 F5 F* Z! d0 Y$ U6 b, X: j9 dpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);& q' B) @  B# w

) ^, T! h# E" U5 L. a' l: R}( Z6 c. Q2 m  D9 U1 v
return TRUE;
% z* g( G+ e: z} 7 ]0 J. t. G5 k" B! Q
. }4 g" y/ U* B$ {
+ b( [* F$ P( b: F8 T
Log.h (The header File):
: q1 d6 I) z& d  v
$ L% O, h' i$ o/ ?#define WIN32_LEAN_AND_MEAN) u( s6 f* a2 r

$ s) Z/ c* Z5 }- M0 i, o#ifndef _MAIN_H$ M9 N5 R& n* U: x; l/ Z
#define _MAIN_H
) v$ R. z; y1 v& a  u5 L; e9 r
- k) K4 {& E0 U+ ^char *GetDirectoryFile(char *filename);
( {# B% |; j+ z- o+ M' Xvoid __cdecl add_log (const char * fmt, ...);
) E2 R0 i0 D' M+ A#endif + i( d+ V0 O! h) @' ^6 \

1 O  ~6 j9 H- I, u5 }! C8 l+ ONow after you have built your wallhack you will be able 2 find it in :
/ X8 t+ j% v; c7 X7 r" hC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
8 v& ]& N, O" r4 g( U& h0 j5 P2 D9 z1 F0 E3 ?3 E5 @1 N- z' t
Now I will show you how to make your wallhack undetected:
' J: X1 u7 B; b2 D/ A6 t7 ]1. Download D3d hooks2 ~% K0 b1 T9 a: z! G
2. Open the file that says "create device code made by me.h", g' j. c( V# M( S% 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.6 i) F9 X$ G/ |: Q( f9 K7 L( V: h
4. Your wallhack is now undetected.
) A. y* z1 E% O% o" u) N4 C3 U& e. h" ^( a# C. H+ I/ K. h) Y
Credits:& I0 M' _" S& m6 n% E& \3 r, P; q
1. ME FOR THE TUTURIAL
9 O9 @; J* k# e" h. X! [2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
% S/ b) @7 u+ ?/ p3. FATBOY88 FOR THE SOURCE CODE
* ~& u8 q' K0 `' g4. THE INDIRECTX I JUST FOUND :P! j$ p/ r- `- y( W2 }9 c" v

+ f+ d  Z4 f" j! @8 u/ G4 h9 VAttachments:6 n- G4 B: S0 m, ]
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5# F9 n. i, E$ b" Q7 L
IndirectX: http://www.mediafire.com/?gimzgmeny11( \9 f, j7 W% o! w: u. |) b
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5* q" c% T5 G1 S! j/ }
SEARCH THE LAST ONE UP: o5 x0 A" l. j8 M. U
__________________
. h, D* z. k/ y. ?2 y
0 _0 `0 m- B! h9 Z6 ]1 N& P <---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。
5 c7 e& F1 t# x( }主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。
5 W# R5 ?% m4 ~/ t$ K这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。
0 i* y' H* b5 Z( N有个帖子,简单的说了一下,以后还会有大量资料放出来的。
4 V' b7 P8 e2 c, @/ A$ Rhttps://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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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