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

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

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

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

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

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

原文
6 O( l9 J  l5 hhttp://www.descipe.net/forum/sol ... -your-wallhack.html9 T" N; x+ V  N) }: d) t

+ u1 X! b: Z, W% M& e5 ]0 G7 X视频教学
' d7 t; l) }5 J9 a- m: H/ R+ ehttp://www.youtube.com/watch?v=6b5XMzT-b_U   
  }6 v% y7 {0 e  k) b
" O+ o, J& l# s8 R# C7 T  PHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch ; H$ ~2 s% n( n3 |# ]2 w/ E6 K* i
" m4 Q6 m* S% B% X/ _
Hello shane007,
1 `/ K9 U/ {$ z& NOur 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. 7 d8 }! \# l8 C" k
5 ?* X- m6 H' W5 m8 o5 L7 e
Why not start with your first post today and become an active part of DEScipe.net now! 6 K9 e* q- b- n1 v* j

. P2 ~/ E4 h7 G8 C: y: ~
. O: s, M0 g8 F9 G  ) Z& I+ J' v( p7 _, X  F& w0 _( D
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  
' _! A( u8 m. Q& d" F, ~! C) r# W How to make a wallhack and how to hook your wallhack!  
- T1 ^# v% U6 @- D1 k$ q Welcome, shane007.. H" A0 q$ Q& A" g
You last visited: Today at 03:55 2 b  B, `6 ?6 u% {
Private Messages: Unread 0, Total 0. 3 q0 q4 f6 O$ u. f/ ]; [% V% N
Credits: 200 [Check]  0 b( ~7 ]' m! ^+ t6 _, q+ ?

* g3 n; E4 |, k+ U$ n0 jHome User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
5 x. j. k: A, h7 [3 }* M9 ?1 p
/ l: e& A  y0 J4 w4 B6 ]5 [) _( i" d, o8 a3 P4 U4 O3 X1 S  z8 S2 }
- T% N; o; y6 E3 U
Search Forums 7 p4 K( {7 M: P& ^  [
      4 Y3 ?: p/ `) i+ O4 n/ p7 T+ G5 _

1 S/ {4 E$ ^/ |Show Threads   Show Posts  8 q# D' j; e' W  Y! _( g
Advanced Search
* H" r. g' @! z/ Q0 E1 CFind All Thanked Posts & K. ], Y. b; a; M5 o! t

; ?- \# l) e2 {4 w; kQuick Links ; ?6 M6 P- r- I; l! g# e/ n
Today's Posts
6 \1 w) C$ S3 hMark Forums Read - g) r& t/ |& o' X

/ n5 Y" g0 ]  U# L0 r( g% n: QUser Control Panel
( y1 X% F0 j+ C: eEdit Signature ; b$ @$ L' h2 }  p

1 J$ m- Z$ ]( P& ], s/ _Edit Options + e1 i% d; |+ F6 f, [2 j
Miscellaneous
. X7 Q7 S* i; C0 j1 t! f4 GPrivate Messages 9 k  z' |' z# M5 n& k! B
Subscribed Threads ; k6 R7 ?, n3 W* y; H$ w" v

. L4 G  J5 S( l) i' K* R) N% _+ SWho's Online ' V( [6 q" i/ G" B3 k( r( a1 [

9 u$ o5 h2 y1 s9 gGo to Page... ' M1 W# R- _$ a5 a% m. k
   
, j; ]6 R. W3 u0 J# F1 a4 G. CHow to make a wallhack and how to hook your wallhack!. W' }9 b1 ~- p. n; u- ]
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. ...
* X$ y' g; x$ }2 n
% \/ W! y* S. ]    Poll: Was this helpful?  2 K- o/ P/ d# c, t
Poll Options8 @9 ?* `8 F: `9 }. \% _
Was this helpful?. j0 m4 v$ i$ s8 `' {- g
Yes, I WILL press the thanks button
) h5 I# S& a, q* z: n0 i+ VNo, I am a failure
# g8 I7 ]9 S: {" K/ M+ ^View Poll Results   $ v0 R7 J- T! F) @+ y& L, }

9 P2 D: z; b2 ] Page 1 of 3 1 2 3 >   
  l& S2 h  G3 m' o9 ?
+ [" C- {4 @4 e$ N! I) f8 T View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   
, y, c1 D) s: s6 N8 {; g
' J( D5 S. P* H' O
3 K" v$ r' ^) l0 D/ D4 \7 J  
! A& }8 t' m8 C6 T/ s 05-02-2009, 20:49    #1  9 C% z2 @/ u- o; r
killax9 4 Q7 x  D! ]7 j* H
Punk7 p- u' Y3 T3 K% L$ u
* |3 p9 h5 g3 Z+ W2 d
7 p, P$ R. }/ M( z
7 M0 L8 v2 D! C

5 X8 t5 i6 a8 T% z( F+ j; OJoin Date: Jan 2008
, l. G0 V: @( Z& b8 `) i. _Credits: 2,701 [Donate]
8 _9 p3 A. q$ e$ dPosts: 103 : H7 C9 f' y! R2 B. p$ u
Thanks: 10
. t% O% J# K2 U) t+ g$ i3 [! A+ XThanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack!
1 O' W' [- Q0 }( [% a
' W! ?; Z: g9 `* ]' W--------------------------------------------------------------------------------
. H! |* }0 j% Q! B3 r/ x7 t0 r
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
+ X; \2 g2 z4 F5 k9 c$ nPossible Undetected Methods:/ S+ Y9 E( V5 U
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.+ h: P7 t) W# z- z( K4 J
2)another way **** it hack GG.
, l% w% _4 L  I0 K9 p2 Q, C3)breakpoint hooking;doesnt change memory... well changes debug registers.
3 W: ~/ W5 C  u% k+ b- S4 y! \% j4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
; ^( m/ u! b4 c+ h
+ o2 ]4 \. d' V, D0 Y: Y: ^$ {Vtable:
0 @2 N- O' F! Iit wont work for vista its not a vtable hook =)& b: s) K4 r) `# s$ d* k

% ^, v7 _+ |7 Z3 E, j, Hthe reason why my older version worked was cuz it hooked / M& ^' p/ u+ J0 k
Createdevice->pointers to the functions
8 V( K5 C6 o5 a+ G" h5 V, m, J! ~, U+ P
kinda like a class or a struct.
- K8 E( C8 x" h1 I& ^
7 y" J( b, [( ~( h4 v- Z7 |
' b7 s% m- b$ g& u+ xand 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.
/ c6 Z+ q" {+ g7 D. N+ J5 h5 y, ~
3rd maybe- some games recreate the device when a map loads...like BF1942./ F; o% X9 M& g! N8 f; _
) K' E5 o7 o2 l
Things needed to do this:" O# z+ z& Z& ^* u. V
1. Microsoft Visual C++ 2008% M+ V' @) R8 i, p
2. DirectX_SDK_(Summer 2004)
& V6 Q9 s+ A) W1 W$ U) g3. D3d_hooks4 T  C) N" {+ f
4. IndirectX
" |! |4 m- }. s7 k! V2 |I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
& t5 }, a6 X' p' T
" f1 y# D, h: R3 E/ |* MNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:9 L' F( H6 X7 Q; R4 R

0 T# k$ ?1 G2 d& O, y) eYouTube - How to Compile WallHack [Tutorial]  
( b& s: c5 Y0 z; j) F
6 R7 P' f  J2 m; Q: ~: j
+ ?+ I) Z/ d+ P5 R( _8 _$ A3 I5 V- A: c
Detected Source Code:
2 v2 k4 h8 x7 W2 W2 P
6 ?% M0 c) T% b8 ?8 k#include <windows.h>
! n! w, \' a: R# x#include <detours.h>3 y7 |3 j% {' U; p2 z: g
#include <d3d8.h>4 M$ m6 i7 l. m% ?
#include <d3dx8.h>- ^6 _+ m: A% M2 f
#include "log.h"
  H. N# @6 X" ]  i#include <fstream>$ |9 p# L2 N4 [5 S0 d: a% E. ?
#include <iostream>
3 U8 t" Z3 r" n  o#pragma comment(lib, "d3dx8.lib")6 e! L9 Z4 u2 X' ^- V! k1 }$ t: S/ k
#pragma comment(lib, "d3d8.lib")4 _0 v) J; z6 N) Z4 ?
using namespace std;
6 g, ^, J% r" b6 Q+ P4 K/ ystatic DWORD dwBeginScene = 0x6D9D9250;
2 @+ N  X; L' j/ E1 o6 `# }# Zstatic DWORD dwEndScene = 0x6d9d93a0;
* h2 S; j" O) J" H0 ^& }static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
- v# m9 t: ^0 u& z1 C. gstatic DWORD dwSetStreamSource = 0x6d9d6760;
4 n$ c+ g" r  y$ pstatic DWORD dwSetViewport = 0x6d9d5b90 ;
8 L* r/ z4 `) m
% S/ H) `$ v5 u/ p! {( C9 v% q6 \  x' K. R% v
int m_Stride;
! b" q; L, M# ?' N' ]- J6 |# wint texnum;
7 b- b0 s1 u: \3 Xint nNumVertices;
$ ]4 P8 o& x) M2 t- c/ ^; yint nPrimitiveCount;& p- j# u$ O' f  T$ e0 o
, n4 S/ E) O7 ~, ~! H1 y
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
' }* r; D+ Y: H% j$ J4 n- r, Gbool Color = true;( f" D7 p3 N! S9 N* g7 e3 L& r) Y- z
bool Logger = false;
- C2 l' B- |; n" @5 Tofstream ofile;
3 B+ Q1 f4 U1 s- G9 d. Cchar dlldir[320];; J' O) _$ G% D/ {- D; v" n
float ScreenCenterX = 0.0f;
* Z7 ^' V3 ]# j! \( H7 h+ @float ScreenCenterY = 0.0f;  C2 ~3 O- ]7 J: C8 v7 C
bool xhair = false;
; ]% b. a* u! J1 ]3 ubool WallHack = false;
8 C0 b$ k0 [6 v# m( a- u) rbool WallHack2 = false;- a" }; F* t3 L9 O) d" X
HANDLE hand1 =NULL;
6 f, @$ }  s* N$ w1 F* V8 pHANDLE hand2 =NULL;; r0 n# ]8 y+ Y: {/ o4 H6 U3 b
$ ?6 q+ g+ a7 b8 c+ _
DWORD bytes;% ?0 |- a5 h7 d# C7 q1 g. c
, J: E7 A4 U" C
//Logger4 y/ _5 a: G* n' W# Z; E% a
int texarray[1000]; ' N- R7 H2 I; k
int arraycounter;
; j9 r! s0 s" Tint delarray[500]; % E' `2 Y# l5 d/ B$ A' q$ ]" ~3 S/ Y
int dcount;
) P5 h5 n; a8 f; b5 Z1 iunsigned int arrc;$ w) F6 I% s. V
int i=0;
+ v' O# W$ O( [8 {6 p! p) s
  J$ X" ]5 I4 R. i4 ?5 M. a3 T+ z2 i* J2 y+ [+ a  C, E3 f. @/ C
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );  ?: A- P& B/ v! w

% z  L  [+ f, U  c; ^0 g) i+ S
7 E$ \8 p6 Q6 d! Bchar *GetDirectoryFile(char *filename)
6 V. d! j* @, s1 [# F{3 [7 j+ z6 ]5 S" A. n* n$ J
static char path[320];  X" P: f* Z, \& V
strcpy(path, dlldir);7 s$ w. H/ u# u$ X- o) c
strcat(path, filename);
, b2 q3 }. u) f8 L4 \return path;
1 ?7 V' k% L( ]}7 k% g) _2 U% q2 q% X! q8 T4 k

  x# c, I+ Z6 I6 Pvoid __cdecl add_log (const char *fmt, ...)
& W4 B% d+ B: o3 q' D{
  g- p- q( t4 S3 H1 w+ c3 o3 jif(ofile != NULL)
& N9 M1 K; |9 l1 S4 T8 U. K, B% L{
2 \, S; ?4 s9 ]if(!fmt) { return; }
" @! W& Q$ X( O8 i+ t! j9 w5 v" O
va_list va_alist;
! M( x$ x  N3 Tchar logbuf[256] = {0};
& d9 H0 u& n, O3 t# I+ \0 _* {
4 e# S3 ]! G$ Pva_start (va_alist, fmt);1 L; b' u, x  u3 t3 Z/ W
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
+ R& f* a4 p" Z1 |& Q% z  iva_end (va_alist);+ J2 `  @# c' q$ e
* R& L- v- u1 B. I/ ^  \% A2 U; k
ofile << logbuf << endl;
: [, \, S; w# D5 P}
* Y0 e* F" `3 X, I+ F" o}
" O0 h( b2 X  s. j, V' C
; b  K8 i1 H  I+ HHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
3 F/ Q( a/ V# S' X# \# f' M8 Q0 g9 z& J{
2 N1 d( A& r! \& N. X# \# ^, T, v0 Pif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
7 M, \/ B/ z5 T9 G, p. @return E_FAIL;
+ j: l$ I% G% F  G! t/ Z. ?% V% x- ~/ Q# `0 j* B
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)% B% L' A; ^! O0 [8 d$ h% Q$ G
|(WORD)(((colour32>>20)&0xF)<<8), i% ]  P1 J. C. t9 r
|(WORD)(((colour32>>12)&0xF)<<4)3 c3 K+ v+ o' A  O% g: l1 u# F/ H8 C
|(WORD)(((colour32>>4)&0xF)<<0);
/ `$ Z% C5 B6 m9 n* g5 S8 D
2 [- }% X6 B7 X! q, g0 z3 PD3DLOCKED_RECT d3dlr;
8 C4 E4 V2 j, n2 L5 a; Z2 F(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);6 Z# Q# F, W/ `7 x& }
WORD *pDst16 = (WORD*)d3dlr.pBits;& K# z: v: z( s2 f4 P! r) f
/ k& V9 B4 s; ~  y, X9 L8 Y( A, |& ^
for(int xy=0; xy < 8*8; xy++)
" p8 N- ?- O& T$ p, {/ {/ [. g" n*pDst16++ = colour16;
# O+ w5 F& @. ]3 ]- D* C! c0 h! R$ q. B# h3 Y% z- }1 {3 ^! m
(*ppD3Dtex)->UnlockRect(0);% Y( R. N; s) \% p6 W
  [4 C6 \8 d/ e0 ^1 T
return S_OK;1 Z" H) }+ `3 p+ g
}
! o3 R& y7 X/ ]) z* I1 C1 B! k* \
0 {6 Q1 G3 F7 p/ R4 g$ {
& a% ^+ z  W* P( A; k$ T//=================================EndScene_Start=== ================================================== ============================//
5 r2 w/ V$ @" C) v* |typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );. |" t5 b  v$ }6 C. ^( q
oEndScene pEndScene;% q1 c2 h5 Q2 D1 ~

. _% ?  J: j/ XHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
/ U! T7 n, D# Y9 H2 i2 ^{# V+ ~9 @$ Q8 w% h3 `- g
if(Color)
  Q+ Z3 z- [* X; e) H{
! G/ X$ n: V+ `. R& `9 \GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));# ~; m1 s9 E9 o9 R5 ~, }
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
+ k0 |8 Q; n$ a# P3 R- hGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
, g& d# A# `* v) u( e, R: N- AGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
) S4 d) {: ^9 W9 Q/ fGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));! a/ t2 x1 J0 K" x
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
4 ~. ?5 [. p7 HGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));# _% f/ {' f5 ~& d
Color=false;
% Q! r7 p% T5 j, h. I}5 l2 q+ ~; l! v( w
* ^) Z) o: ]9 Q7 @5 }! T* |3 m: v- Y
if(xhair)
9 n7 Y; n' h* I# e6 J: w) S{& u" Q3 n# ^5 i
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
1 b- ~; V: ^8 [+ O0 w) q. PD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};. f) j2 ]8 {9 d3 y6 H: U8 I
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);5 t/ v- Z8 }, v, K
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
8 D  P/ {% `5 y6 ?9 C; n5 d# `} ( O6 ]+ i1 c! ~
' F6 K1 P" R; A. ^) g
//=============================================UnHoo K_Start=========================================== ========//5 |' u, P4 A- _* O, q
8 s3 E4 |3 x3 G
if((GetAsyncKeyState(VK_F5)&1)) ) {' T* B7 K1 W7 U& e& c5 L
{ , T5 {) R6 B5 M& O3 Z
int end =NULL;( H/ U# I4 ]* |( b1 W
int dip =NULL;3 Z4 L$ Z! j% b+ b6 r: m6 ]
int svp =NULL;3 K1 Y6 v4 V, c' D
int sss =NULL;
* Y3 `9 \; M6 W% [' S$ ?  t- S
" b* }8 H" z' j9 j- H& W
, i6 O7 d- f5 h& c+ S2 A1 h, r. eBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.2 E* _( J* E; P- ^+ V8 Q8 N
hand1 = GetCurrentProcess();3 C, j  g, |, Q! D
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
2 P5 p" z" q2 }$ ]9 hend = 0x6d9d93a0;
7 X  u  b, V* f; D# c$ jdip = 0x6d9d73a0;% Y% e/ I# k; J& O' @0 {" y
svp = 0x6d9d5b90;
0 T$ Y3 H0 H/ L: b2 jsss = 0x6d9d6760;/ c" s" |& J. h  k! t

# l: F# I. ]& z5 U; ]% GWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);% I( L- B# O1 [1 y3 P& `
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);, J0 ^3 w# ^1 i! T4 d* A
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);1 g5 }; X/ y. E1 q
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);( l3 A: z+ |0 V. g! y, d
}
5 S- Q9 I# |8 Z6 h, J9 U//=========================================UnHook_En d================================================= ========//
. s, u/ }) Y6 [4 g5 s4 k2 R1 E5 B* J) B: M
if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} % T; j8 X& h- D7 G0 P
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
6 v( q7 n0 ?4 _. b) ?5 D5 Q" w6 V" T' D
return pEndScene(pDevice);
0 ^9 Z. J9 I2 Q+ V}
$ w" I9 \3 k! v2 r* @$ e5 g//====================================EndScene_End== ================================================== ========================//
5 p$ _* N4 v: m# A
$ }6 U, h. M8 v- N  d1 |( y& w7 R/ h& I& _( Q8 [

/ ~) ~2 D& |! B3 }2 k) B9 e! ^! x2 e) Y/ @& |0 _, B( Z
//=================================Dip_Start======== ================================================== ==================================//9 Y3 P; `/ I& `! M
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );8 ]) S. {! M+ W
oDrawIndexedPrimitive pDrawIndexedPrimitive;
  Y) z. |- S; O# ?2 X7 o) I4 |9 G, U6 V" P6 H2 i; i
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount): z2 ?: q. Z. Y6 r
{9 z+ X( A- r6 G( ]0 I
5 w5 k6 N* e: L4 B" I
# `  r: T5 b) m& T
$ [3 U. ^* P* i8 q# Y4 C

% F: q' Q' r; u( D! W3 U: {if(WallHack)3 U2 `9 I% ?& M( X
{- |0 D- k8 D+ e' A! O1 d& D9 q+ }
texnum = (nNumVertices*100000)+nPrimitiveCount; 1 ?# _/ c4 c: X0 n; C4 u- ]
if(m_Stride==40 &&
* S1 p9 e+ L1 \- @- T( A
& U8 c! w" U. N) o' w4 z(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||! r/ H  p  H: n) f; A
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
/ L6 h6 A1 ~4 ^4 A* ~(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||3 V3 C$ Q. ]: S5 ?3 b& l1 d
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
7 g. P% n. C( q. i1 f- `4 I(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||2 i, }7 k) ~3 h# V
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| 7 I7 ?* \( ~* N4 }
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 6 F7 B8 l# i% D3 B
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
% }( m9 Q& }! Q4 J2 \(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
% `4 a  ^  d, R(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| , a# Y( k' ?7 A! f; Y  U
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&% C" Z  w  c5 @/ K

$ X* o/ q4 e2 f: D- _. w+ e5 t- g% o
$ ?3 Y" I$ q/ f: j* R! Y; H" K8 R1 _
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
5 c. ~$ h; E% m% @7 p(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm 4 E1 V4 C+ j# m7 G! i
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
4 |0 O' u) |2 Y6 A/ n5 a7 @' X(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm , _$ k( {6 N8 S% F# R
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
; K+ u: _: \$ L& \: v1 [  m0 |: S//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
+ m& H. c8 }2 r(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
  b# l" ~3 N5 Q8 ^% Q7 v0 X(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
& Z! o) k' J1 p# A8 }8 J6 f(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
, Y! w6 Z" o! y6 a% b
7 f( P$ F7 e  h) e0 F( ~{
0 [5 g$ j- w& k5 npDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
' ]8 j3 z" M! I8 t5 c3 jpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
' C7 M$ ^* j5 P0 B6 x+ [$ J' WpDevice->SetTexture(0,Orange);6 H1 w6 t  O8 k
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
( C1 W. i  P5 u! B3 T  s) P- M# A# F: [7 h3 G, n3 e- [
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);8 c* d: U# D, E" Q4 c! b: ?  a
* N2 K/ |; \4 P6 m+ e5 V
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
2 f0 e( y5 h7 u8 R" W- G$ h8 S5 TpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);' |4 p- u: f3 C& ?$ Q
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
8 q0 u0 l  e% v/ J3 K3 g- i( GpDevice->SetTexture(0,Pink);) w1 [) ]9 h" `1 s* j
}
6 X* L4 @4 e( r- U2 V* m3 p/ T8 Z7 l8 g8 q: |4 {
if(m_Stride==40 && texnum== 21300174) . \1 t: @( s7 N  X" f- D
{
3 K% b0 ~& [0 C* g1 TpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
; C' k3 ]/ x: d; u$ [pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
' p0 d+ @6 _2 K0 x- CpDevice->SetTexture(0,Green);//GreenNade
0 D2 s) e1 d9 S! spDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
& a3 \! K+ S' S  b  H5 F. mpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
- o+ F; Z; t5 R8 D6 R% ?, H- p5 opDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
4 D2 }# s2 q. p& K' Q" W& k( ppDevice->SetTexture(0,Purple);
5 Q7 D9 R( A4 {# I, t} 4 `" i+ g4 L3 |4 N( T  v
9 O" R0 g- V  A" T0 k6 H; ?$ f
7 B9 O4 C7 a# E9 T# r8 Q; v
if(nNumVertices == 158 && nPrimitiveCount == 131)
$ w) k6 x6 B9 g+ t: i3 h" k{
/ e/ i# T" I/ ?pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);1 X( ~- [: s' H
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
0 p. z+ R% b  ^+ o( tpDevice->SetTexture(0,Red);//GreenNade* o# r. \7 u4 {6 H
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);: I7 _) N4 H0 V; u/ K' y
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);- q& T0 L1 b$ P  ]
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);  o9 y$ Q( `5 l
pDevice->SetTexture(0,Yellow);4 c- y* ^7 @) C/ ?/ F6 @5 Q3 ~
}# t8 ~' g7 S9 I. q! ~" @! Y  ^5 d

# R8 A4 j5 i% A+ Wif (nNumVertices == 171 && nPrimitiveCount == 143)1 j( Q6 t) K4 N( T- b/ n3 K
{
1 g) G1 w) j0 ~: H$ F$ l  `2 l9 Q3 x
( a- c& `. p1 f. J/ k# i4 ApDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);0 f/ \9 e; T: E8 _  A
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);) e4 G& f9 H4 l+ m$ a
pDevice->SetTexture(0,Red);//GreenNade0 e  R1 t- v7 J5 l
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);8 w7 M/ w' Z( N$ t8 [- Z) z, k
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);, O9 G5 Y+ _- ]
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
* P6 F) R' P3 V6 \9 p5 P1 zpDevice->SetTexture(0,Yellow);+ {/ X: z! P2 K0 j8 G# F
}
7 o. K  O3 l' i( k& H* U
& p/ q1 Q+ i. O2 W2 ?9 d9 P- ~9 Q2 o* y& Y+ Z7 Q

: C6 z9 p0 S4 Mif(m_Stride==40 &&//face,mask etc...5 E! A) V. c) t# }9 [3 g# ~  g, i
(texnum==36700612) ||
  M, [6 t( _# c(texnum==9600172 ) ||
( r9 }: Y4 j# y; F(texnum==14200236) ||5 Y/ n* K7 F; U8 E) s& y
(texnum==37800552) ||0 E* r# {! e  Z; R
(texnum==28100486) ||& `6 x+ O' N, I3 G! e! E$ A3 P
(texnum==35500568) ||2 d& l0 D9 _: v+ D' a
(texnum==2200024 ) ||
% h9 V; J" P3 `8 Q! D% y(texnum==16200243) ||/ F3 c1 u6 c0 q
(texnum==31900466) ||+ b$ E3 G: h- A1 I* d
(texnum==19300342) ||
4 n/ h4 u% O, u$ e7 K(texnum==36200604) ||
; Q$ P4 ]' l% s# k(texnum==21300290) ||
" q* Y. s+ V9 i# l: q& v: b/ r4 b! M5 S(texnum==35700558) ||
+ I/ w) D& D5 F+ F1 J! a2 |(texnum==22100396) ||
1 ~/ ^! ~  I9 k(texnum==36100604) ||3 E0 s' N5 F* X, d7 q7 P
(texnum==27100464) ||
& q' }" M0 B; ^1 \(texnum==11400180) ||
/ @' _, O( Q( [% O% Z(texnum==34900580) ||
% R% s; l$ b5 u1 @5 C- t(texnum==13200212) ||
) ?0 S9 y8 e% R, H(texnum==34700538) ||1 I( b/ R, S" D) o9 L
(texnum==19500352)&&
$ R( |5 V; i1 X) u9 c+ V3 [(nNumVertices == 448 && nPrimitiveCount == 776))
0 m0 M1 X$ p2 A9 f: X0 g% c
# E( m5 L' e3 M0 ]( T9 p{) A0 U& k1 f' l* e
pDevice->SetTexture(0,Blue);" c  Y  F! s8 F6 l' r+ |
}) d# C5 K0 u; n% i2 A

" u+ w; H& ~6 g, l
6 e7 s& g  l6 i{
" \9 t3 m; C! g& [5 _7 e: C' EpDevice->SetRenderState(D3DRS_FOGENABLE,false);
7 K- z+ J- x' m1 s) u}- d' G/ G- A6 F8 l# Y

! B) [# V3 A6 D2 D" U- w( [/*Logger
- s. f) [9 S* c$ Nif(m_Stride==40){# I  }" _! e2 m) l. z7 M
, g  Q2 n: P: m# P1 B
  S  I& q9 n* f
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray. Y" V! q& e5 E" W
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;$ c5 H( E# T1 A4 ~. C: I* Q
bool alrdy=false;
% C6 J/ R6 U; w! q2 Nbool inarr=false;
' T) L8 g1 ?2 x* @' ?- i/ J
8 R2 {5 @. P3 H% l' l. Sif(texarray[arrc]==texnum)
, D$ j# q  f7 d4 n, T/ V( ~if(delarray==texarray[arrc])
- [& M5 f) [) Q  malrdy=true;
9 U3 Q0 d9 Q6 g4 vfor(int i=0;i<dcount;i++) //sees if said texture is in delarray
$ b, J+ ~" Y/ P6 ?if(delarray==texnum)2 x: @# c! ^$ n% h, m1 T
inarr=true;
3 J; k' t6 {+ \- j% @3 t6 s8 kif(texarray[arrc]==texnum || inarr){ //If true, color model differently' m- g' S2 B0 j5 M9 G9 X1 J* E
LPDIRECT3DTEXTURE8 texCol;
; {6 W( S3 u8 {DWORD dwOldZEnable = D3DZB_TRUE;
* z: K( |- |( lpDevice->SetTexture(0, NULL);
% D4 O9 ?+ g1 _" L+ y( f1 Z* XpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); - F* l- @6 x/ T8 p5 V' h* _6 v& |. ?& m
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
' g; Q9 ?5 h3 t* b8 \, o+ k# m9 U8 xif(alrdy) //Different colors for selected models that are already being logged (For removal from array)
4 f. ]' P8 Y4 S& C3 v2 @texCol=Blue;. j  a: q, A: u4 |8 X- s( s
else4 a' O- ^- a2 p  O$ ~
texCol=Red;. c% c/ E2 M8 t9 v
pDevice->SetTexture(0, texCol);; v* {& O6 F$ v  N: t% Z' `
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);. g3 q6 V9 O) {6 Z8 B6 f* B
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);- f* F1 D2 V4 j$ F5 q
2 n5 s- T. d2 ]0 ?, h; D
}
2 f: R0 `5 l' h$ Z}: V. y5 P& o# G5 v* {8 k
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile! t( y  A# b( I9 V/ w5 f; T  \. n
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array$ P0 q1 j9 h8 w1 l8 [
bool inarr=true;
/ G& q; z. R8 A' [3 \for(int k=0;k<dcount;k++){  K' `- _, X8 Y* A
if(delarray[k]==texarray[arrc])
1 {1 u* G% Z4 g4 v4 P{
: W: ^7 G8 c( O- ]7 E6 Sinarr=false;//Found selected texture to already exist
  l1 {2 V/ U- Y9 U* c- ~delarray[k]=0;//Delete texture
. s/ N5 K$ r4 \# O, }$ xbreak;//Cancel loop
5 b' A+ Q: o% S/ i2 D& ?}  a" s; T4 ~  J" F8 z) X4 T) c
}
* _; y4 D; H3 I! r) Cif(inarr==true)4 [/ f8 B5 i: G1 f' }* N
{) h! x& a" e8 G# O+ G8 D. ?9 P
delarray[dcount]=texarray[arrc];//Add texture3 X( s$ ^4 a% I/ @( ~6 C2 I6 E
dcount++;
# X% o. i1 P% m" ?3 V}7 j2 @2 q5 B' a5 i. \
}( O$ C' \$ J: p
if(GetAsyncKeyState(VK_F7)&1){
1 s( s- [% H2 F( }, w! S! S1 Hint total=1;
7 |, e1 k6 [' O; S7 Y! j7 @add_log("omfg values?!? {");: ]9 p' a, d2 A) W3 \6 G
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
+ M# o3 s* |9 w) a  Pif(delarray[x]){5 _1 J$ W1 c  }" f3 y* H, _1 w7 d2 F
add_log("%i,",delarray[x]); //add_log2==add_log but without endl% w, k/ {+ B2 ~3 H
total++;. r3 x/ w6 j. R
}, z; _' J) m3 l% q5 g/ N
add_log("}; %i variables in array",total);
' R& k8 j" x, X/ Z3 l5 u}
, k" n3 M8 g, R' \+ [/ L. `bool found = false; //THIS PART CREDITS TO KRYPTEC
, ^4 T9 S+ _, s" o& Dfor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
, V9 s$ ~5 Z0 O8 d3 V{: ]6 @. L7 F0 U) E. `
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT0 W4 c- b+ Q- p
}; i0 v( Y0 M- w
if(!found && arraycounter < 1000)
# Y9 G3 ?) t2 B- N( R6 O{
. x9 D2 f! g4 jtexarray[arraycounter]=texnum;
! M  H$ x8 }  N8 C$ x' Barraycounter++;
( s3 g: P* Z+ L; L# w( U5 v}*/
; A# K! {. T; m; y4 O/ A  `
7 o4 r1 p) K% \% `2 u% v4 E. S
}: T. F. W  `" k7 H0 y
return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);* z2 @, ~, \3 Q& f( h' u2 c
}' \, F" I6 ?  r. I. n! x
//=====================================Dip_End====== ================================================== ===================//
- y7 e* g/ Y  v- w+ |+ f3 j/ j! Y8 Y6 b9 u! b  J; x# }

- h2 e0 g. u5 _& R: j( y8 s1 i( D//=====================================Sss_Start==== ================================================== ====================//% x% z, P# N, f0 T; \+ }
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
+ c4 Q2 M3 B  G9 F( N; hoSetStreamSource pSetStreamSource;6 m5 D* T6 V3 f2 i

, z3 s% V; B6 r4 jHRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
2 |  s" `& w- F+ l; m7 |8 ^* F{
9 [# h  v5 Q4 e8 \. w, A  nif(nStreamNumber==0)
2 J+ K; G) P/ m! \# r8 Xm_Stride = nStride;# R- Q$ L; I  s2 R' Q
2 G9 m4 D- ]2 d3 l0 i) c
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
/ L/ x; V+ ]4 r+ c}
1 M9 e& T5 P1 \' ]+ O//====================================Sss_End======= ================================================== ===================//
7 u9 {8 N- |  }/ P8 w& l5 Z
% w. d2 n( w$ L9 G3 i3 K6 k. u//====================================Svp_Start===== ================================================== ===================/// L- i+ w8 @/ Y  y/ u6 {( Y
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);8 Z" u) {. o6 `7 r; J1 N6 g
oSetViewport pSetViewport;
' `& a- E4 u: r- ~# u3 a4 O7 G2 r1 m
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)  T1 O  y( z0 X$ f% a6 K7 |
{
& q+ m( K* M7 \. NScreenCenterX = ( float )pViewport->Width / 2;
; E3 i1 _, e: |- O: N& VScreenCenterY = ( float )pViewport->Height / 2; . t0 a- d; p) U6 e* K- \

: b8 k5 F% W9 U4 ~/ z  j' Treturn pSetViewport(pDevice,pViewport);8 H' V: C: R' s4 Y% B
}
% a* U+ u- x7 C9 t$ N7 ]//===================================Svp_End======== ================================================== ===================//
, G9 I3 J# ^# G# j3 n
3 _- B/ n, E9 C8 `! ]  Gtypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
9 Z$ o+ x/ o- _0 toBeginScene pBeginScene;4 ~9 X$ r( D" Q' \  S5 T) E
* o  ]( @4 U% K" }8 z) C
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
* O9 y) T% V0 O* ^9 k# M1 z7 [{# B# Y  {; V$ S0 t1 ]3 R# k
if((GetAsyncKeyState(VK_F6)&1))
, m5 D! Y& D% }+ [{! D- {& q& a* n$ [/ W, s
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
8 |! `+ |2 \* l$ m4 D; FpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);9 Z+ @. V) i7 d  X* Q$ Q: L4 V, }: d  P+ @
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);" H$ \1 F  l0 I5 y5 }& G
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);. x- E5 o/ E. D1 y
}
0 `& `- T) F* ^2 h: d$ u( Z% q
  A0 K. P# x8 rreturn pBeginScene(pDevice);' y" y* H0 x$ R
}  v9 z$ h. t7 A6 k7 x9 B

! Z( z5 Y1 n* T) k* e! @( Q. c' w8 j+ X
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
4 H+ J0 I- A. ~8 _. s{, x. D! k- @9 E& p
DisableThreadLibraryCalls(hModule);
5 J5 b. n% b' P; ]$ M4 x& q
, I+ t' p1 F; w$ |, B+ Q4 Xif ( dwReason == DLL_PROCESS_ATTACH )- j5 L( ?, Z5 t5 Z- i) T
{
6 b& h! @/ @' ]6 i" r* C1 K6 ]
//=========Log==========================//
9 L4 `( |7 d- d1 C5 x: _, @GetModuleFileName(hModule, dlldir, 512);
' m: c; Z5 D, G' B5 ]9 k6 Y1 Bfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
9 k4 O: s, f5 _! I% \ofile.open(GetDirectoryFile("log.txt"), ios::app); 6 f9 m# T+ N  j: o( m" G
//=========Log=========================//
9 I7 r$ b8 A" \5 E( @3 ?4 P, G9 q" @; c
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
' L% a9 X/ g/ b: z. P0 |. j: LpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
  p" m0 ~9 l( a& m0 w9 m8 V" HpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
  c# ?9 R. q% w0 y" dpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
( K8 a$ x5 k8 R0 vpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);8 h/ y+ ?+ p  t' q, O

; F. h/ L, i0 }( \* w% \}
2 a, k$ u  A/ Q! ], Lreturn TRUE;
0 B5 K  i3 @& ^4 `} 2 Q9 ~' d1 _/ [+ p5 A

8 O% m2 ^( ~; K. ~/ F. B) p7 ?) x
Log.h (The header File):
3 i9 k9 B8 H* H  F" _8 E  [/ c9 ^. ~% g/ i- f$ R
#define WIN32_LEAN_AND_MEAN
$ N; }. V) o2 N1 v/ v
$ I2 d8 r4 w/ C8 B, e9 D#ifndef _MAIN_H! ?6 T* C4 P& M6 o9 c! ^  q  e
#define _MAIN_H
% D% C/ ^& s" L% p( R- g4 k
$ s" n- Q# ^' \# n4 o" m2 echar *GetDirectoryFile(char *filename);
) Q2 V; S$ c, `/ y7 b& i  b; s' gvoid __cdecl add_log (const char * fmt, ...);
8 f$ s2 N3 S/ m3 Y9 u! y#endif
. g( D7 n5 V6 b/ c! e  {; a! O6 @( C5 }
Now after you have built your wallhack you will be able 2 find it in :* K& c3 q" i5 p
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
$ }- @  o' X: t# G. u
' a5 }+ N: f. r* I; i2 b% V1 |1 BNow I will show you how to make your wallhack undetected:; R+ J: x/ G' B. s
1. Download D3d hooks
: [4 Q  v; |/ A- F/ b, n6 b4 M" p( n2. Open the file that says "create device code made by me.h"9 I& E+ u- e- G
3. You will need to make another header file in your project and then put name it create device and paste that code it.
8 u8 a- D9 C. G4 L& F4. Your wallhack is now undetected.
7 d1 Z! [8 b3 [( S
2 D# `& s5 e3 Q3 g& LCredits:
4 V$ d0 Q. K* T/ I$ a8 n1. ME FOR THE TUTURIAL
/ H9 G8 m: T+ K9 O. l1 u( Q2 M7 a3 h# K2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
. \; [/ H$ Q9 a" i7 _0 i3. FATBOY88 FOR THE SOURCE CODE7 O6 T& S& A& B+ M
4. THE INDIRECTX I JUST FOUND :P" ~6 @7 Y1 z: r& Q" }# i( Z
! o; ^  _9 {/ Z5 w' s: j$ Z/ C
Attachments:
) P" \0 B9 x! S: H' c3 [4 J5 qD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj52 D5 p( J1 u* L
IndirectX: http://www.mediafire.com/?gimzgmeny11: c0 ?; w2 H# [+ x
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
5 B2 b/ `* \% Z( ?SEARCH THE LAST ONE UP
3 G! M6 T% M$ |# p- k6 l, R4 a__________________: F) o, w- Y& J$ x+ h5 [9 @
0 s0 }2 f+ }6 r0 }
<---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。
; d" [# ~+ @% ?主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。( }% S4 d2 Q7 A  |$ F  q, S6 |7 |% C
这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。' }3 _4 T+ V% `9 ~' i8 m  v6 G; m
有个帖子,简单的说了一下,以后还会有大量资料放出来的。& }# Q. {) R" e
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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