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

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

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

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

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

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

原文
7 m; |8 c2 O5 c' A: v& M; [http://www.descipe.net/forum/sol ... -your-wallhack.html
2 r- S& M* \$ O. j
2 E! I  S% ~. z  u视频教学
  G# T$ ?. c( qhttp://www.youtube.com/watch?v=6b5XMzT-b_U   
0 {" g) r+ ?% N# q( G6 t7 A' t" J! @
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch ) _2 R! g0 _: K! Z$ p0 \/ ?

  r: H' R  v( g) j8 o Hello shane007,
+ H% q& X; L* a/ w9 ^+ hOur records indicate that you have never posted to our site before! Why not make your first post today by saying hello to our community in our Introductions forum.
% S/ v1 |7 L+ J" n. x% c; [% p. X8 X* w  F$ A: Y
Why not start with your first post today and become an active part of DEScipe.net now! ( B/ i+ M" s+ ]1 X

8 @* n& S& n% D3 M) o) ]
: T, ^. b5 f! J9 A7 j! Z3 g! V  2 H9 C' t& Z6 X+ s8 P
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  
5 [" e; Z' Q2 q. P# z& G How to make a wallhack and how to hook your wallhack!  + ?3 V; z: F$ o- k# e7 R
Welcome, shane007.
' y& }/ k, h  @You last visited: Today at 03:55 6 d7 R8 E. E2 V
Private Messages: Unread 0, Total 0.
  T* x2 ~" e; p# _% \Credits: 200 [Check]  , u# j4 [5 v1 _8 V& l

5 q. y+ m; e; }$ A4 B5 eHome User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
- I6 }) B7 U5 a' Y8 Y  s( |
7 T: r+ A% p( c" n- d1 F7 a3 Z' C: X8 ~( U

0 I( s- g7 W$ b: b$ ^4 q; q$ eSearch Forums
7 w3 X; U7 K/ B. c  Q8 b      % ]$ V/ a# {  Y. D# `9 P# R

5 P* `* `0 S. `$ G$ KShow Threads   Show Posts  
6 _  n6 I: b% b) y8 l1 `- |Advanced Search ; d" D$ j2 a( P% i6 Q
Find All Thanked Posts
$ p, Z- f6 z# w) X
7 Z/ K. ~9 n+ {/ Z: ^! V: P# sQuick Links
# @1 S+ g+ H) r- W4 aToday's Posts
& M* p9 r+ T/ K7 O8 R& TMark Forums Read
0 N9 M8 o7 E+ _; i' n; k" ` ' }, n; `% \0 K. E* f' T6 n) H+ F
User Control Panel 3 r  s% X8 f3 z
Edit Signature ( c8 _6 `" ^1 i0 \0 f  C

& Q2 L: l+ g7 W8 Q; {3 AEdit Options
8 Q2 W( b2 i5 Q2 l- D% H( z0 mMiscellaneous ( ^. v7 S# ], I0 @' Y, Y
Private Messages % [6 @, k$ l7 ~" T; D
Subscribed Threads 4 Y' a" G: e) B
3 f$ Y2 G' K$ S7 C) \1 r9 F
Who's Online
  X2 c% P  B/ N! I, g6 I
+ b! L+ P* j7 @* h3 \$ ^9 H' U/ cGo to Page...
$ `# |& T; s( C% o3 F( C; t9 A   
: R4 M9 S  T' q* W- _, Z; iHow to make a wallhack and how to hook your wallhack!
# H" `7 V- w. e% ^5 f$ r; V( UThis 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. ... 0 z1 f- z  p" S
; t7 D# l# H" R& w: o
    Poll: Was this helpful?  
: N5 ~/ G! a% f7 E* S" E7 oPoll Options2 I4 ]* B& {" j+ b
Was this helpful?
1 N& X  Y4 ~3 KYes, I WILL press the thanks button- v) _5 ~# F# R# _. h
No, I am a failure
# _8 n. S5 _6 l1 t9 L  i' p1 `View Poll Results   9 o0 k  r( G4 s. N' G4 g5 o

% t* R# y6 ^$ V( v$ U Page 1 of 3 1 2 3 >   
- X! i& K( y, Y: [ , p* B3 \5 V+ F; z" v$ n6 O& V
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   
; S& }9 B/ p3 Y6 M- w, {' u9 S' ]( _& h
$ q" n3 U% j: J
  
7 T/ [5 E  s  f' d 05-02-2009, 20:49    #1  $ ?) }) v: s. W/ p& H+ W( o
killax9 6 g) l/ h0 P/ [: N7 a/ h$ `
Punk+ ^# `% ]# S3 P5 b+ E/ }& d" |) G
0 O( M6 s5 j; P
8 I+ I3 J, |3 V# f
7 e3 W# W* {. A

( a  t" q3 k8 |8 ?. W( ?Join Date: Jan 2008
% y' U  I% F5 j( q. k: J- dCredits: 2,701 [Donate] / ?. `5 w( |  x% C& I3 u" \1 ^6 u7 A/ C
Posts: 103
8 i( ]. S3 |( X+ n& Q* [) NThanks: 10
' D, k# u. P) M; b1 D2 |( x. k/ TThanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack!
  v! s4 K1 `. ?% j; r! F- W0 L0 A- K& y: k9 f% ~1 p6 M$ e( Q$ q
--------------------------------------------------------------------------------
4 v" J" f+ Q/ {" _) r/ M) g% Z2 u+ [- Q2 ?
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.( ]# H0 v7 D) U
Possible Undetected Methods:5 \1 |4 x8 ?/ C  e/ w% `/ E4 H+ `, w# Z
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.
/ L7 Q. {' X. n$ B2 r  }# o, y2)another way **** it hack GG.
6 I" j; T# K% E( M  h% A' ?6 x4 Q: j; ~3)breakpoint hooking;doesnt change memory... well changes debug registers.' T+ r) O. A4 n( [
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
# a* R8 c3 e0 \1 v. D+ ~
6 Y$ i2 [0 P3 Y6 i. H: |Vtable:7 Q2 {% R* H2 p2 t* `
it wont work for vista its not a vtable hook =)
7 c. Q( ~5 i$ M& Q# a6 \& z7 X; y9 J, g% m; e9 F6 h
the reason why my older version worked was cuz it hooked . i# T- {( `4 q0 h) i
Createdevice->pointers to the functions8 @2 d* d+ w+ o2 s6 l4 X& Y
- ^* |+ ~9 L1 b+ U
kinda like a class or a struct.
8 l& V. b7 L+ G+ N) R
7 ^8 Y: R2 H# N, u; ^- h& a! z9 r& l* P6 s; M/ X6 d. k/ w
and GG scans createdevice right off the back and the only way u can hook it is a few ways {DETECTED}either when d3d8.dll loaded in....{Undetected}or reversing to internal call inside the game[0x00000] pointer.
5 Z* y0 z' ~" O' `& @/ w) b8 k) L+ g7 ~% `- b
3rd maybe- some games recreate the device when a map loads...like BF1942.
: g# E( q/ i9 }3 Q0 Q5 N9 i% W5 u+ k$ H6 s# ?& T# `
Things needed to do this:" A; N9 m6 Y9 ^- O9 |# e
1. Microsoft Visual C++ 2008
% o/ i! M6 E% X+ N2. DirectX_SDK_(Summer 2004)2 a& ~. t" [: S: o
3. D3d_hooks
( Q& i7 M# F" x5 j$ t3 D4. IndirectX* ^& t& T) ^& ~* o
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM; y8 }" J' Q; m; y, D( ]
' y- ^6 _/ F9 ?
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:8 p  S" S1 W( w- C4 \! Y, d1 X/ A

6 P/ B+ @; d1 i9 w3 p7 pYouTube - How to Compile WallHack [Tutorial]  / ?: |7 j0 r9 l% {9 w- M

1 @8 m; I  m2 M& l: k# y" h0 i/ D/ X1 K, `' U

  O! l0 a0 A2 W/ T  q" o& ~  E) Y+ oDetected Source Code:# K9 q7 U, m9 h. ^3 X! `
3 n4 X' v& k9 R3 \% M$ B5 g* j
#include <windows.h>/ u2 F; j. g; t8 y! {
#include <detours.h>
7 W9 `' d% i  B/ |+ m. Y* C2 U#include <d3d8.h>4 M. X/ f. L" q2 Q* K4 x1 O1 e% O
#include <d3dx8.h>
" w- }& x4 O0 s& l2 O#include "log.h"$ F2 W, I& r: i1 W
#include <fstream>
4 b; z5 s& [" R# u$ Y  i#include <iostream>  ~! {6 R& _8 x: M
#pragma comment(lib, "d3dx8.lib")- C1 Z4 a. K" w  h9 E3 u
#pragma comment(lib, "d3d8.lib")* h. a# d: L8 E9 s3 _
using namespace std;# g# N$ U; O  ]: ?: `" u1 ]% i
static DWORD dwBeginScene = 0x6D9D9250;
# o! s2 a! [$ E! [# Mstatic DWORD dwEndScene = 0x6d9d93a0;
  q$ Z; A. E! t4 N' b; p' qstatic DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;: M, s0 ]5 y! V+ X; ?5 J
static DWORD dwSetStreamSource = 0x6d9d6760;5 L, t5 [6 q$ f$ A" K
static DWORD dwSetViewport = 0x6d9d5b90 ;7 a8 {" R* n! ?- x% G" Q& @
/ A8 q) }& K0 ]0 x; s: N' z1 ?, G& W
6 z2 T: P8 g$ D. h; s- r  I6 @7 N: X
int m_Stride;; t) a; z. Y1 U3 s! J
int texnum;+ ~- ^: c/ r5 c5 O" K7 e* u' F& S
int nNumVertices;8 _* r: l1 d& j% i3 A6 n' A, c; I
int nPrimitiveCount;* R( @, O3 ^; Z" J

- q5 e2 ~' C* j/ MLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
  U0 _% f$ e5 x# n  x9 }2 y% }bool Color = true;8 G6 c+ h3 I( O
bool Logger = false;0 `! |1 D' H/ g( S7 E" h
ofstream ofile; 0 ?: G$ Z0 j4 {. A  Q" t! W
char dlldir[320];  @+ B: l% U' T2 F# l
float ScreenCenterX = 0.0f;
& b3 l, u) y: z6 e- j; [float ScreenCenterY = 0.0f;% Z; V! {( O' m- X$ r* p
bool xhair = false;+ M" {/ M) g2 h+ q
bool WallHack = false;
$ ]7 W) }3 j( x; j7 x0 H; R. Hbool WallHack2 = false;
2 Y- G3 K% g8 A& u1 a' y6 [8 SHANDLE hand1 =NULL;
% m6 J3 }* M; U) M) G) nHANDLE hand2 =NULL;
5 _; {$ U& M( Z8 i6 n* H6 _' t7 D" q+ T7 a$ f3 s% e9 Q
DWORD bytes;6 Y  w; B9 |; y* B$ K

8 w4 h6 g% ^$ a* B  [//Logger
2 Y1 C& g9 Y0 B: t* z( M, Qint texarray[1000];
8 E; B& R, R( W* }1 X6 qint arraycounter;
3 G$ M4 q5 E7 i; o5 M+ J7 k6 Lint delarray[500]; 0 {) u' K  l; q  w! l
int dcount;
2 x2 l/ A$ s6 F1 Q. z9 E$ M& M! x3 ?7 xunsigned int arrc;
  X6 O! R, F+ W  O+ u" Aint i=0;
- Y+ a. \; O  d' w9 k1 {8 I' e; H3 B& |
; z9 x( I9 p& Y  h: m  x: y0 X
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );+ V; f! ~: N8 y' e4 z! }1 Y

1 k3 u7 W$ P/ M0 K) q8 y$ Z4 l' l- A2 F; Z' P2 [5 p; R& {
char *GetDirectoryFile(char *filename)/ _3 E8 p4 _( T  ?
{, V; M7 s* o. ]' G/ f
static char path[320];
% C; }2 r( J. G2 Y/ P2 h1 B% Pstrcpy(path, dlldir);4 F4 p5 r3 t) y9 C8 A$ x$ e. C
strcat(path, filename);
4 p, ]; h; I4 sreturn path;, O* q- l; d; ^+ S. K9 @% _5 f
}
" u0 d! X; \+ `3 E$ Q* O* N0 [
- `+ H; M, h$ bvoid __cdecl add_log (const char *fmt, ...)- k) i- Y0 o! R* v# q
{* N- N: a' D' p& ?& `3 z
if(ofile != NULL)
0 x# K" I. y, l) D' k{3 t- _+ L- x6 w" K! E: ~
if(!fmt) { return; }% H0 H, X" ~+ V
* n% }& g% y, y2 Q2 w
va_list va_alist;: j! Z  s, m8 g0 E
char logbuf[256] = {0};. J/ ~2 |, i* H+ m+ `' {7 f9 E1 X
+ X! E* n, w% m* c: h6 n
va_start (va_alist, fmt);
+ r! q8 F' R( J2 W# ?2 Q_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);6 P$ ~% T/ g5 i) R/ |- B
va_end (va_alist);6 u( B* D- v2 d8 }# R

  J! X! o! U  @: U' nofile << logbuf << endl;
. A: z( m% F( g# d6 E, f}8 Z( J/ Y4 r9 M1 p) Q( [
}
7 F. G8 Y+ Q1 c3 ?# W6 w  e7 D! T& p3 o# d
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
, S. J# S' i6 S) ]2 r& V/ ]{' k( y1 M- h1 _
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
( d/ c! U$ q4 X2 T. Sreturn E_FAIL;
6 x8 O* a/ z2 E' R
+ O& E& U7 I5 |7 iWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
6 S7 [2 ?# t" p8 O9 Y% {3 V|(WORD)(((colour32>>20)&0xF)<<8)
$ a4 C1 e. M0 M+ h|(WORD)(((colour32>>12)&0xF)<<4)( [% A! E9 q3 D- u' X
|(WORD)(((colour32>>4)&0xF)<<0);
0 y% t7 }6 r+ `" {2 z
: c; l1 p5 r1 w$ _' WD3DLOCKED_RECT d3dlr;
" U6 L0 N3 R; @7 t(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
/ q" Y  Y, i: u) n% p# `WORD *pDst16 = (WORD*)d3dlr.pBits;; v% ~; Q4 W& h( B3 ]$ C

7 K$ S8 F* Y1 T8 X) gfor(int xy=0; xy < 8*8; xy++)* o; }  ^$ ]7 ?4 M' T. P
*pDst16++ = colour16;
8 A( ?8 _# L6 `8 p  p/ \% A2 \& p: p9 o& O/ n* w% q0 L4 D! m; u; |
(*ppD3Dtex)->UnlockRect(0);$ l0 \# @3 r* f7 r/ c$ s
' F( V: M) x, Y- T. d
return S_OK;
: M0 s# J; r5 |. {1 B7 q}) \! R1 r0 u2 X3 y9 _$ i3 ~

/ e2 D3 R: a% K
; A$ b* K% |% h- c" ^//=================================EndScene_Start=== ================================================== ============================//
) I( C( u8 r! [7 Atypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );3 ^, S( ?2 f8 M( J0 K+ @
oEndScene pEndScene;
! X# B6 `! E6 ?9 _/ ?8 r
7 d( a1 `7 H+ g; y, E: NHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
& U6 S2 o) B4 c7 W9 y{" ^7 x. \! l; L. n0 N# z$ Q8 F
if(Color)
1 d6 a5 h; J6 z0 |& X  X( L- C{
) P' V- }( ]5 V+ q: n  r  eGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
4 z( ]  e" l( H& m  D) q6 @/ @9 p# zGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));( G: x9 e# E% G  b  J1 g; W
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
0 K6 W- b6 S' o; \/ KGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));: _. C9 n; I/ \) C) y! W9 C8 ]" o( T
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));7 s' E; [7 U% k7 R% `
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));5 Z7 h: N5 H% r* |' y
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));% v9 r# W% z# Z5 \  D
Color=false;
# h# ^, H* z1 Q/ j; c9 s; r}# Z4 j+ s% D2 C
& q; R; \& A! K) J/ Y2 [4 V
if(xhair)
; z0 H2 }$ G  t% G( Z$ ]4 U) z{
* i- L4 a+ N0 A3 J4 ^' Y5 gD3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
5 j1 `% c- S7 rD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};" C$ e: }" S3 {) N
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
' i' L# e2 [5 G1 U  xpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);" a. d+ ~# l) v( }, j7 I
} 2 S6 Z! ^5 ?) S5 `2 L" g
( U7 O$ y# [' |/ {
//=============================================UnHoo K_Start=========================================== ========//; _4 D. s) |8 p/ s& s

0 F+ h3 Y1 z: K# Bif((GetAsyncKeyState(VK_F5)&1)) ) D% c( q2 q* Y. b
{
0 [  [+ }8 W. a% ~+ _8 X1 xint end =NULL;
/ J9 _' p1 f" q$ i, ?: K  mint dip =NULL;* |7 a* {7 x3 ^6 w
int svp =NULL;+ h  A! w6 e, V7 |8 P
int sss =NULL;) P4 `% u$ f) b( U+ O9 ]* O0 p; s
  Q9 a9 ^* m" `: [& ?

& W3 F& [. s5 [! b: G. E& D; z& zBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
) l; |) K! h6 j4 vhand1 = GetCurrentProcess();& c! N8 }  d- a1 J7 H2 H/ W( a
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");, J3 e( F' Q) v/ G+ q% c
end = 0x6d9d93a0;
  {0 N1 L6 x5 F. t% Y2 {6 N6 tdip = 0x6d9d73a0;8 \, W$ a! D" Y& w0 K  [
svp = 0x6d9d5b90;
% w1 W4 e; T# vsss = 0x6d9d6760;
$ r2 e2 M: c- t# `, W% Z; c- w: A8 P2 b" ]
WriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);; L4 c& |( w' q. W  S+ A- s& N! o: p* T
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
( g0 y1 Y2 \% u& Q7 d/ p0 M+ m! v4 v8 _# @WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);7 j* }5 W/ I( K9 D5 z4 A! J6 B4 U, F
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);/ W: Q$ A. A# X) P) {
} 9 f/ |4 R4 f/ d& \' J. ~  _
//=========================================UnHook_En d================================================= ========//5 b3 C! h" O3 b* E8 H* v6 e' |

+ @+ N! H9 n3 C- U6 A; uif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
+ Y. t/ b5 H: J/ {* @if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
* X* D/ _( w8 F0 ]  [$ T6 b
/ J, r7 c$ x6 I3 \; Nreturn pEndScene(pDevice);: ]% \4 t/ _8 z8 f5 `, T7 R1 Q7 w
}
* i, F0 a2 c8 |6 ]) I3 |0 n//====================================EndScene_End== ================================================== ========================//
8 g; j; @  Y4 g: m% \: X' f9 J9 [2 M+ X

# L9 H" j% x8 k/ Q9 P- d; W! R0 V

+ e7 f, S0 N5 i3 r7 d2 t( Z//=================================Dip_Start======== ================================================== ==================================//1 L) [6 o* P# D. w: r$ R" `
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
  _8 Y" u1 W% E' LoDrawIndexedPrimitive pDrawIndexedPrimitive;
  I' `: T2 c8 i' X9 c
6 @) B  n* k5 Q. t3 W& c, r  RHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
2 E. ?- a* v9 O/ {  g( t4 u{6 }: p0 c3 A' i9 B4 T8 |6 P

/ t- ~- J6 y6 E2 t" x& D/ S, t' m- ~% U

0 K& M) C# Z$ ^; W; P; S) u- V" v" ^5 j( e! j; g1 J0 ]
if(WallHack): U) V. _2 q; M" |
{
) E+ }% w; C' c9 _, qtexnum = (nNumVertices*100000)+nPrimitiveCount;
( C( @- h: z( A. u1 k/ @if(m_Stride==40 &&
7 i+ ]! g% J" z' r5 p: E( A& {; t- o, ~3 X4 h
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||9 I2 }  h: T/ d; z6 \. p, B7 d
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
/ j( b: D6 B) F' B* F(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||
9 V) [( `, `2 O" t3 D$ A3 ~/ ](texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||, q7 Y5 f! Q1 n5 ]
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
/ M7 b: l2 O- g( O2 r(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
5 ^( C- ?7 Z- P4 H(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 7 Z. l4 s- w8 q# {$ Z5 x
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| . {( ^/ C/ @  V" _" z' g* a! x
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
' x# f, q* X" m" z/ I(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
# `9 _1 z7 A. _0 T& l(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
& S' x, l) U7 J; j  ^9 t, \
2 G$ r4 b- `( @! O5 s- U
4 q8 C$ V+ g# T) G( X# \+ j. Z
) X/ u$ o# \  \' W* j5 L(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
8 V. m& i1 P+ S* E+ O' o(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
1 m; p3 a, Q% i. o0 b* O( D(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
9 g- N* p0 I' W" y' _4 n; ]; w(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm ; _4 ?3 w9 T! ~) n7 J8 h4 Z1 B
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
# j. k7 R& @1 Z; @- B" ^//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
5 V1 j, S7 L  R  h6 `(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
* b8 s' M1 U. A5 X- L' ](nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
3 i& I( o9 Q8 k( C3 `2 ?(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants0 n3 G4 t# ]: Z. f5 ?* l( y
$ h8 `) \& d/ Q% s/ x; d
{- _2 I. G  o. L
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
" V# w- ]. z; Q2 T" J: [1 D6 xpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);3 g8 ^1 e9 Y$ v+ Y6 q: Y
pDevice->SetTexture(0,Orange);. ]9 Q; r& X2 J& d0 V$ ~% g
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
. G% O4 S% K9 R- p- N0 {: U; s/ m
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
- }$ z6 p; i  n) e, r, r1 M
2 d, ~2 U* b2 Y; ]- Q! N- Y//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );4 S( g) O- q9 m* A9 U, h+ E
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
2 ~! o% g2 g2 r7 o( V8 ApDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);  X3 [$ p; H7 r: A
pDevice->SetTexture(0,Pink);
# q. C) ^% a8 [5 E0 T' G}
! i; L# C# J+ V( D+ X% G& b
9 s- L$ |* z/ S2 Y* nif(m_Stride==40 && texnum== 21300174) 9 G1 A" @9 ~/ i# b
{
: t" p  w/ Q+ |% F& @( d2 rpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
1 }" K# G7 t( A9 l+ gpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
4 Z: F5 ^5 Z' f4 D. YpDevice->SetTexture(0,Green);//GreenNade4 g9 z+ ?1 f! p- B# L; `
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
. c# v9 V, t: ?# H- A+ TpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);3 @2 M7 ?% a( \
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);8 E; X: |  H3 r, c
pDevice->SetTexture(0,Purple);* H- m: M7 }( R# f, L& N
}
0 `5 d9 c. b1 q0 d
8 v- k) V# r0 g& j) P
8 |; `, C" C. [9 e4 C/ _if(nNumVertices == 158 && nPrimitiveCount == 131)' G0 L+ k( P8 M! F
{
6 c3 U) e; @# ]1 K) s% YpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);% ~' B4 M) x$ D+ W3 M
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);! i2 q& Z0 r% y. {: w5 c
pDevice->SetTexture(0,Red);//GreenNade
$ B3 a/ P) H1 G6 ^0 M- BpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);; X$ b  t5 S* m, V2 p3 T3 f  A
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
6 z& n* p- R% ipDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);  Z. o9 H9 ~: t( f. E% r! P
pDevice->SetTexture(0,Yellow);
! }( S$ y# m" H; D# n+ J}
; ^! E9 W$ D7 e* _" a
5 _+ {4 u( _2 L7 nif (nNumVertices == 171 && nPrimitiveCount == 143)# f5 |! e* u! R0 M/ }* E  c6 b
{
4 D0 h  n' y4 C5 b
5 Y5 @  k) n3 c; Y1 EpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
& m  g! v9 I/ Y" X) ZpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
2 \. r4 y. e0 G3 H: S4 }6 opDevice->SetTexture(0,Red);//GreenNade* @( z, g, q- s& p4 E. y0 f
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
. t; ]* h, P+ z  M) q. q. FpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);2 f) Z* R+ `% C  z* G
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);, y% [0 ?5 k5 b& P
pDevice->SetTexture(0,Yellow);
) s. h$ U9 W. A/ \! K9 P9 z}; i5 N* Q9 I2 o# L
0 o* z+ h7 ]6 a) X( G+ {
) ?: ~6 W* V% e0 z0 o; `3 p7 O
( d/ \0 L" v4 u% Q3 ]5 q
if(m_Stride==40 &&//face,mask etc...
! }/ C( U* B3 g0 d# q(texnum==36700612) ||
" t+ G  G" w" \) ?4 P, d(texnum==9600172 ) ||
9 q" O' z4 ]# i(texnum==14200236) ||+ X1 @4 U+ u/ p3 H! \# |- b1 d. {
(texnum==37800552) ||; `, t8 P- I9 n3 N" s. n6 p
(texnum==28100486) ||
' X0 s7 M- r, F' q0 p(texnum==35500568) ||) {& c8 [8 r2 j! X" [
(texnum==2200024 ) ||
0 F" o1 R, W( T4 E& g5 Z(texnum==16200243) ||6 ?' s* y5 p/ o# o( T, t+ z6 ]
(texnum==31900466) ||
8 p1 K7 {) c1 A(texnum==19300342) ||1 O) {/ z& S& e  c, R+ R/ G
(texnum==36200604) ||
7 A7 c6 F' n$ E* J" G(texnum==21300290) ||
; p/ b: G; u& u$ J(texnum==35700558) ||
+ Q+ `6 T7 L3 V4 |(texnum==22100396) ||% S: n, K0 A( \5 X$ v& \$ P
(texnum==36100604) ||
* g+ [6 y. `- N% {; w(texnum==27100464) ||& Y" G* o; D) q2 J, A$ `; C  M8 g$ O
(texnum==11400180) ||
1 M  h' x: X( K4 [(texnum==34900580) ||! P& z  m# |% H, q( f
(texnum==13200212) ||
9 f% t; R5 u9 F4 ?/ }  Z+ O(texnum==34700538) ||* A6 ]7 i- F$ \- q# m* J8 e! b
(texnum==19500352)&&
+ a0 ~( P9 p: S* h/ o  D(nNumVertices == 448 && nPrimitiveCount == 776))" L; x, K3 n2 B' D/ z/ n- c2 g
7 c* L& L. t2 p7 o  I
{. T1 u! ~4 Q5 [0 I) ~: y
pDevice->SetTexture(0,Blue);4 T# S* o1 i9 E1 X/ Y
}' |- d$ M/ r) f8 C; T6 W" l) o

- Z/ _6 K$ u1 H7 N' {- }$ N3 I* e" I; S/ r. d/ z0 n
{
) I+ A1 }5 q0 e; k# ~! rpDevice->SetRenderState(D3DRS_FOGENABLE,false);3 x+ K, ^0 _" p8 i
}. U2 L% d) {7 Y" I

+ x& }# y2 Q9 y- o- M/*Logger' P0 b7 U, J# g$ |2 M) n# ?
if(m_Stride==40){
. p% m3 X6 d+ Y+ |( Q) Z1 W  k7 b" U& t% i) i
7 a9 M4 B  v( g
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray( n: a) |% P: R6 v7 Z' p: `
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;5 K  s) \' N+ q8 d6 L0 m+ l
bool alrdy=false;) {1 N$ M& J, ?+ u1 G' Y' {
bool inarr=false;9 \8 ^3 b6 j' J" G/ ~! Z, F
! r0 F# C3 K2 x& q4 f3 e1 i
if(texarray[arrc]==texnum)+ b3 j: A* X  M" m
if(delarray==texarray[arrc])
7 r( i$ j: E  g3 n- o! t& dalrdy=true;4 [. G0 h7 I3 \: S7 _+ v' i% `/ q
for(int i=0;i<dcount;i++) //sees if said texture is in delarray
3 I" S' I( @4 y8 _# t1 q6 G5 C% lif(delarray==texnum); o8 |; L' u# o" B
inarr=true;. f" U" @; Y* g- r: ?/ `
if(texarray[arrc]==texnum || inarr){ //If true, color model differently
4 F! L  c: j/ S% K( E5 X3 O: TLPDIRECT3DTEXTURE8 texCol;5 W3 a$ K! n, Q" |1 ]% i  U6 ^3 A
DWORD dwOldZEnable = D3DZB_TRUE;
, [% {& H6 s+ x. gpDevice->SetTexture(0, NULL);
. ~8 Z7 b( M7 i7 y8 @* M/ ~pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
# s/ p( ?2 _* G7 UpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
* j0 m6 h' e: D3 ~if(alrdy) //Different colors for selected models that are already being logged (For removal from array)" O/ ]$ R/ W: x, I* J9 b  i
texCol=Blue;) O& R8 O8 o) \, \) H! L
else" h! B, u  u4 |: j+ Z1 V
texCol=Red;
1 V4 X" \* ]6 j$ v9 QpDevice->SetTexture(0, texCol);
1 k  j  c0 j- {) Y3 lpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
1 k! m9 C+ c# G# P( D3 ]0 S6 t: BpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
4 C# V% t8 m1 U5 V4 l6 {  C- J7 M; c8 [3 ^$ C/ L+ D4 {
}' x% i& l) U) S* u
}3 S4 C6 n& _8 i* N
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile" n: d2 M# x* d/ a& T6 o# c: a$ I
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array% y% v! o# y1 m6 v; K5 {7 R
bool inarr=true;. C' q, \; U, Z/ Y8 v$ [
for(int k=0;k<dcount;k++){
/ r  A, ?% h% _- lif(delarray[k]==texarray[arrc])
( y6 _# q/ u6 c3 y+ s$ b6 P# D{6 J2 @+ R* C6 |5 u" i; N
inarr=false;//Found selected texture to already exist
+ i9 Y. a) b  y: A2 Rdelarray[k]=0;//Delete texture3 w4 C. s, F, O4 [2 Y* v' k
break;//Cancel loop
, a5 A) i9 U2 n' n}/ M9 c# L) i/ Q+ P  |0 R
}
0 L# e  Y; o' Y2 |+ W7 m9 U' Nif(inarr==true)
( T/ K, O/ s2 p8 n( V0 k& w{
) Y) B) h3 t" |+ `- X# F8 Edelarray[dcount]=texarray[arrc];//Add texture
7 L! D8 V, w$ h% A% M4 u+ m0 Bdcount++;
, j7 ?( C9 N2 [; l" y) r- g% P}
2 W7 u/ f( d: r& W}' D: c4 s% m; a4 u% o+ y
if(GetAsyncKeyState(VK_F7)&1){
  K" [7 r! C# S5 m5 g9 z- M+ K2 {int total=1;
+ X$ s6 u2 a5 E; c: Tadd_log("omfg values?!? {");
  ?9 z& A: c! j# N- r/ ]& ^# V# Ufor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format8 i- ?, h0 L- F8 x$ G- Z
if(delarray[x]){; x' r7 G7 w# ]7 k: q' g# D
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
* }# A4 ^5 n; n/ M$ btotal++;
8 U* v, F1 n7 _' [2 v- t4 C" z9 h}
1 ]1 U% f- q! Y: A: G' W3 Z) {add_log("}; %i variables in array",total);
. m, d. _6 _7 N2 e4 p}
. i$ C& H, x2 o3 W* ]# ebool found = false; //THIS PART CREDITS TO KRYPTEC
, b# _* `) |: J0 t7 k# vfor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION# X/ f  s, R; W* d0 q& S9 k! H( @- E
{/ V" R7 O. c$ y
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT/ ]3 |' R/ [. m/ N. A
}- t" e9 q0 V8 j) \2 R- h7 c. `
if(!found && arraycounter < 1000)8 M( j5 j9 Z( C" I; }  H
{6 G5 R' b3 I! t. t! _1 V' R
texarray[arraycounter]=texnum;$ }$ ]2 @1 K# {# e: E4 V0 v1 n
arraycounter++;
" H/ j) j* N. |8 w5 z! K}*/
4 Y7 ~% W1 W) C! L) z5 i, P3 E  s0 ~
- b4 z( [. R1 w' G( a% L
}
8 C( _4 `5 U+ Y# r9 u. zreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);  @$ I$ R' K* m, z+ Z
}
# N+ n2 a% z% n. n1 x5 B//=====================================Dip_End====== ================================================== ===================//% @4 S2 q8 C3 S* r
& j! a8 O# O; u+ C

; b  K* E* H6 x& H//=====================================Sss_Start==== ================================================== ====================//
2 |3 }- U9 V: Mtypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );- `! `. B5 `8 A
oSetStreamSource pSetStreamSource;
' Y1 U" N9 L5 ^7 [, [- u5 S! ~  k) ?- w- z3 H3 b5 D* Q( `
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
+ X2 q2 t. D+ A9 M; E{
* a# F0 Z5 v8 j" ^/ ]if(nStreamNumber==0)) E8 k  X& U$ w9 }3 [& c( R
m_Stride = nStride;+ c# Y9 J+ n( B, E- [

/ ?' j4 t$ {2 ?return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
  I. I! ~8 x" h, g/ ]* K* U}  z/ K0 V8 d6 A8 H4 ^
//====================================Sss_End======= ================================================== ===================//
, z+ g7 ?! ?# p* g9 v) J$ E, }6 M. D4 C' h: Y# C& d* O8 a8 Q
//====================================Svp_Start===== ================================================== ===================//8 e7 P5 A, q/ ^( _, P3 r+ W
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
2 E3 Y% g) i" g% JoSetViewport pSetViewport;
& l* [  c. t0 Z# m0 O' v( J  {  T7 A
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
  g) T9 K2 y6 z# ^1 s/ |; c6 o{, H; p+ [" G4 Z  g" p, n; t
ScreenCenterX = ( float )pViewport->Width / 2;
0 e+ z2 m8 Q( |* w4 sScreenCenterY = ( float )pViewport->Height / 2;
9 l( ]( D! _% o* y: o/ K& P1 Q  Z" z6 C, T4 K. ^! R
return pSetViewport(pDevice,pViewport);
" c7 F8 J7 J1 b8 S1 K}
  U# A# h+ `6 D//===================================Svp_End======== ================================================== ===================//3 Z; b; Z: m3 c) {, h0 g  @; K9 g* H

  b2 G3 [  J) l" o* Ttypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
6 G& d* ]1 `- d3 D8 A- `% RoBeginScene pBeginScene;$ _+ X4 W6 I* b8 Y% i% k

- f- I/ W4 q. P( L9 b: D3 e: uHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)8 O. z4 I- e" f/ ?  O, d9 P
{
; G; Y/ K# g' \" f- e7 Uif((GetAsyncKeyState(VK_F6)&1))
2 N; ?0 a5 p% y! d{
$ \3 ~( h0 Q9 J% ~. vpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
, ~9 C! N) T. K$ Q( lpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);  I0 X# |4 F1 R
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);2 S1 p& D- h0 b% ~7 \5 T- \
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);; U/ e# v6 x+ t# W
}
. W. i! v4 a, q' j6 n) x  E8 E0 w6 }. {0 L$ e( s# Z8 W! I
return pBeginScene(pDevice);4 y" r5 |  x# r, C7 ^( R8 M' u
}. C6 `# j7 i0 {/ |
$ M4 I% o7 M+ f# B1 Z3 z- `* u
; W" ]) }0 C' [1 q; F9 h- Z
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
; l7 ^2 Q, E7 ]{
) a$ ?  B7 m8 Q1 v! sDisableThreadLibraryCalls(hModule);
7 C  F+ y; {) N7 m) U1 z& R
1 ]+ C$ P1 z! D& Jif ( dwReason == DLL_PROCESS_ATTACH )' H' v: M: C  ^3 H5 s1 ?
{
% n" l9 {- [" }/ G8 N$ i1 n. n; B1 C& H
) u0 W: ?  k) T+ L2 w: V//=========Log==========================//
% w* a" w) s6 K9 Y' V6 oGetModuleFileName(hModule, dlldir, 512);. ^$ L  c% u, x7 P# v) P- F6 Y/ a
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }7 q& ]$ g: a+ l2 j7 d5 c( ^
ofile.open(GetDirectoryFile("log.txt"), ios::app); & e; X/ u" Q' F- f1 o6 w5 m
//=========Log=========================//
8 r( T6 D3 Z* \6 K+ W/ ]
. j% Z: ?# V$ r5 U0 ~pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);5 _6 u% N; d0 Y" }+ q
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);- N- n1 }/ Y: k! [% M( i
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
: p4 _) `" T" `4 a+ r. |3 P; rpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
1 V9 i+ K* Z) n" s3 ipSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);8 C) G" G8 e+ F" N2 ]' u8 I

7 H& k1 M+ F( m# [2 f}
9 W1 b" c$ x( S# b0 s0 Ereturn TRUE;
4 m+ a4 o4 ~+ J" G7 a0 g# s}
+ w  Y7 @9 }. m, O; E; F, `5 S& j& c" G
1 g$ T" p9 Z% L7 B( E
) e9 f) l& `- g2 ~; w* l6 CLog.h (The header File):
: Z! @' R+ H" h, j8 O* P+ n6 i7 P/ y& W' y
#define WIN32_LEAN_AND_MEAN8 |4 o: L$ @' K% q$ W- p1 y

5 T8 A5 P3 ?8 `" i3 `# |: V$ ]  q#ifndef _MAIN_H
1 F  T( f+ [3 ~1 v5 Q1 C/ M3 C8 G#define _MAIN_H
9 L5 u# k- N# ~' t& x- A& s1 o/ P: O$ a
char *GetDirectoryFile(char *filename);
1 Z& b6 A7 Y+ {void __cdecl add_log (const char * fmt, ...);5 u$ a: F/ z- `: a- y) y7 e
#endif
" m* v: E7 |' F; v+ w2 q3 R5 @. e7 x9 _6 Z6 \
Now after you have built your wallhack you will be able 2 find it in :% P  X  ?* _0 J( y
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)* V* a4 y6 S/ c7 T
7 Q$ ^2 _2 v5 N) I  a1 K
Now I will show you how to make your wallhack undetected:
) F7 X; b2 \1 c1. Download D3d hooks3 A, L" c8 ?( ^$ e0 b- F2 p
2. Open the file that says "create device code made by me.h"
7 o+ L. P$ R6 x9 f9 X3. You will need to make another header file in your project and then put name it create device and paste that code it.3 }1 B$ w( }* L
4. Your wallhack is now undetected.
) Y2 w& F, b: j' ]
. ?2 D* n$ \5 e0 r' nCredits:
( f. d* H# ?' M# b1. ME FOR THE TUTURIAL
0 j& e4 `& u$ c2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE! y" \5 v3 N7 `; B
3. FATBOY88 FOR THE SOURCE CODE
' U, u  ~6 i, ^! U7 `7 q0 t4. THE INDIRECTX I JUST FOUND :P2 H2 p9 U( R# T1 Z, H9 }5 j
) s8 p4 i; C" `& M6 S5 z/ S5 j
Attachments:
8 i' I" A  p; I6 i- D/ @+ a+ z; B4 Z: cD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj55 X) x' h* V  F! X2 a
IndirectX: http://www.mediafire.com/?gimzgmeny115 O# K" l8 ~; G9 n; a. i3 q
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
4 I0 X/ ^2 N! f8 \5 y- }8 W8 O1 F% B! B3 XSEARCH THE LAST ONE UP
; c! @6 U4 S1 \* I__________________
/ I: J% k& L6 Z' @( {0 m# a/ i" _0 o/ f2 y
<---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。; r. q/ B3 |3 H) F. \
主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。) H5 t. l/ a9 [$ _& P( f
这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。
/ {7 Y: I( L" }8 {+ ~+ P! @有个帖子,简单的说了一下,以后还会有大量资料放出来的。+ l$ R4 o) J' x8 ~! E* ]3 ]
https://www.chinaavg.com/read.php?tid=17190
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

冒险解谜游戏中文网 ChinaAVG

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

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

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

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