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

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

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

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

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

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

原文
& s8 s  H+ D  ]* _http://www.descipe.net/forum/sol ... -your-wallhack.html/ C! h7 w5 X3 s" [3 p+ N

4 c* s0 D! t* ]3 f2 @视频教学+ ~! Q/ D  L5 U' [- h
http://www.youtube.com/watch?v=6b5XMzT-b_U    7 Y1 M2 J, ^7 a" f

8 x7 S  M2 l# J+ G. R! bHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
) ^# X2 y* W7 X; B' c
$ i+ d# t% [2 G6 R1 [6 E Hello shane007,
( x( a6 u2 Q$ S) d1 H3 E9 y5 V2 dOur 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.   Z* i7 ^- l" F( c- z4 n% E
; I) B0 U- ^, j  E5 e6 V
Why not start with your first post today and become an active part of DEScipe.net now! 5 H6 L, C3 H% n- G, a) ^

8 O6 r, v" X+ @- H& Y6 l& o1 y$ W$ v+ R. P/ k7 l
  
/ U# L3 `% ~% K0 e* p& T  i& S   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  
$ s% ~1 R; u0 J+ Q# l How to make a wallhack and how to hook your wallhack!  
1 c% u# _! m1 I! e, ]/ l Welcome, shane007.! q  H3 M5 O5 M% M- p: @8 S/ ^
You last visited: Today at 03:55
# w) x& i- F  Z, v$ ~8 h5 tPrivate Messages: Unread 0, Total 0. ' t: P6 T# y$ f) {* ^8 |
Credits: 200 [Check]  
0 z: I  X& r' V& ]
0 J# I9 N" J0 l' q$ eHome User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
) w7 _0 m" [# ~
& K1 C4 c# _. x. D1 j; ?* i" z
1 ?- H5 ^8 j' A
- \$ S8 G: A( z3 A/ r' |Search Forums , C. ]: `7 d9 C* B! Q0 }$ `
      ! z, S# D5 ]: J3 e! B

4 K! x2 W# Q+ Q+ i2 lShow Threads   Show Posts  ; o. N- Q/ I  r7 o2 ~) M7 A5 F
Advanced Search
9 p# O' N9 R. ZFind All Thanked Posts
3 T, E2 z3 g3 J0 A: b" }; g  |6 F! m; m3 O+ q$ n1 I
Quick Links
+ K- p4 A! P/ W$ }4 v; D+ n1 D2 g9 GToday's Posts ) `# h4 w/ ~/ g' P* {% U+ {
Mark Forums Read 8 p# e( d" l9 F) w
9 J1 @$ U3 w* G  n6 @# L" R
User Control Panel ) J* p7 F" h; `: w  m& A
Edit Signature , S3 l) S# h  W+ Y

; d% `% e8 J' h. Y0 wEdit Options 8 V3 K/ [3 G" i$ d
Miscellaneous 8 E8 B* Y8 F# o, J2 J
Private Messages
9 S: S# v/ _5 L0 n2 tSubscribed Threads # |% n* [" K( }

- T0 g: |7 ]7 U: yWho's Online
: q4 y+ R" c& G. e0 F
! W9 y1 a2 H8 t3 O! K- }6 l8 r7 UGo to Page...
, x5 K" n1 O0 s/ r   5 n& ?9 ?  x9 G. |8 e+ ~( @5 v
How to make a wallhack and how to hook your wallhack!9 R$ `! _- }- {, m% `8 e) N
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. ... , b( b$ `# a+ l& C6 S
2 r3 w& j" B# u0 I
    Poll: Was this helpful?  
) L$ w' Q5 l& X5 ]. vPoll Options
2 N9 E8 S/ }6 I  J$ g7 R4 d: u5 bWas this helpful?. I& Y, L% f9 l) [6 v, ~9 l
Yes, I WILL press the thanks button! w* K& k& c4 j! M) G; o
No, I am a failure
( ~. l8 U3 i6 @% ]5 oView Poll Results   ) ]2 Y/ g% i' S( Y5 y0 o7 f- U: P. f3 C
0 C% i+ H2 a4 R, t5 Q, n6 J
Page 1 of 3 1 2 3 >   % _% }6 l9 @! T5 d9 j% g
  X! ?) G8 `4 O+ r9 V
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   ; Y- ~' V4 m# H3 q
; k9 Y* V: _( H5 r$ N

& M2 g: y. f& R" O  : h$ Q3 x. f1 ?/ I
05-02-2009, 20:49    #1  
# t" H9 `6 S4 y8 p% q) i  |killax9 6 f7 T4 l% _) S! x9 i9 B6 C+ J
Punk- T3 W. ^6 A; I% F. T1 f5 F

% m& a* j$ A% B' ^+ M 8 K5 s( O8 A. T2 `2 B2 c

5 J, ]$ p, v5 c7 C$ l. I6 v4 z. b" k: ]* s, s
Join Date: Jan 2008
3 z9 E2 X  t9 n" c# K3 \8 @0 V: I& ?Credits: 2,701 [Donate] ! r+ W+ ^4 c, z6 B' s  N) L
Posts: 103
1 j, R+ a6 I$ w9 |. S! [# Z% s; a6 ^6 @Thanks: 10" {- o4 \4 o$ h, S
Thanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack!
/ E2 ~3 Z3 B: w+ W1 i1 o! m+ |2 l" s. _8 g
--------------------------------------------------------------------------------6 L. t& _. O0 k& c- F/ P' Q5 C7 ~
4 o. t5 Q$ H$ R" E6 G! w4 ^
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.; i1 U  A( T& v/ [) B8 ?! S. e
Possible Undetected Methods:6 W9 C: u! d, r% f7 T
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.
( c& Y6 u2 t/ t  B, F2)another way **** it hack GG.
# B2 O+ S* y7 p: z0 D' j0 m3 c4 j6 m3)breakpoint hooking;doesnt change memory... well changes debug registers.
& G9 |4 X6 K! g1 [9 m4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin3 ~( O# F+ x- F+ p, E- y
- n9 s& U' F8 h: l# l
Vtable:
+ w+ E* w. R! S" |' p& q) `% xit wont work for vista its not a vtable hook =)5 U6 }/ H" l+ {' @8 Z
4 q3 z9 L: s9 N. W
the reason why my older version worked was cuz it hooked
% J, g0 V! c3 l! [2 @) QCreatedevice->pointers to the functions
) D% g2 ?( y# T: F4 }0 Z7 l& v1 P) ?3 s, |
kinda like a class or a struct.4 \6 l# a+ Z) a
- o+ H6 S+ |" \; Q8 K

" L1 l- _7 o- C9 {; k' ]! \  jand 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.- x& H1 Z& ^; p/ U
4 |0 C1 k1 X/ G
3rd maybe- some games recreate the device when a map loads...like BF1942.
" m& A- T' k! V6 s6 I- L- h) j2 `0 Z# c
Things needed to do this:
/ p: k: U. f' b; ]) h  Y1. Microsoft Visual C++ 2008, p/ n: Z9 y4 W7 {( o; c8 A+ a
2. DirectX_SDK_(Summer 2004)
6 j) Z1 s+ Q( ]; B$ D  r6 I3. D3d_hooks
1 `( l4 u% \1 `+ n' |$ O2 o4. IndirectX
6 l4 ~: N0 U- QI HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
9 i0 r3 q4 g0 w% ^0 o* h
9 O. W: z9 E8 q! T+ lNow most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
$ B5 U" {4 n( S- J2 W4 n0 Z0 J3 N/ m7 m, r0 ^
YouTube - How to Compile WallHack [Tutorial]  . s! I  ]# g! U( Q" P8 H  L

8 y1 q5 ~6 m4 D
8 O; P9 Z; U3 F% r3 s1 [2 g, L1 S
; e% r2 U$ C2 T9 MDetected Source Code:
) S: a1 }' V, _% g: v$ l) ~  u( P- N5 s( J! a
#include <windows.h>) V! i  ~6 O0 `
#include <detours.h>
9 r2 ?% N3 n* R#include <d3d8.h>
& D5 L. L' x& h4 n, v+ d' d#include <d3dx8.h>
5 g0 L0 [( Q$ J# ]#include "log.h") [9 b! k0 ]8 Y, B
#include <fstream>
. `& S, q1 l* e( \#include <iostream>
  C" t* Q7 s$ t& E* ^0 C  U3 j#pragma comment(lib, "d3dx8.lib"), z+ r; |) {6 g4 }' i7 c2 `
#pragma comment(lib, "d3d8.lib")
, p( |  D9 J% @# R5 fusing namespace std;- j! \# ?. t+ V* C! C
static DWORD dwBeginScene = 0x6D9D9250;
; n2 T. e9 Z! _* o" Dstatic DWORD dwEndScene = 0x6d9d93a0;! [) z$ O1 u5 S0 A
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
& R8 W8 X' {8 g3 [! R$ v0 `% T9 wstatic DWORD dwSetStreamSource = 0x6d9d6760;. Y4 Q" `; F% {! c
static DWORD dwSetViewport = 0x6d9d5b90 ;" d. \, ?0 H# ~) t/ G

% @1 A! h9 \9 }( \% X2 {# Q: x
# }8 K! D3 \9 S- s& i8 k0 hint m_Stride;- A# A) ?* r7 s
int texnum;
& ]/ V! X) y: cint nNumVertices;
6 O% J5 l4 H# t- b4 n  eint nPrimitiveCount;
4 c3 ~. L+ z, I6 ^+ l- Z
3 a: s& E1 G1 O  GLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
+ C7 ~& @* Q* G% _) x' G9 f2 ~! xbool Color = true;% n+ Y: e. v: f; V$ I7 x: b) ~- t
bool Logger = false;
; d5 H# r3 X1 C9 j5 pofstream ofile; 5 S, S2 J! z2 j! ?$ _, |( R7 Z
char dlldir[320];
5 Q2 s4 I* h3 q, v# y. y0 F7 [! efloat ScreenCenterX = 0.0f;7 c% T# L- {) n$ E
float ScreenCenterY = 0.0f;
# L: h( J- a- wbool xhair = false;
7 m5 _8 B; f+ Dbool WallHack = false;
" l4 J1 M: [8 u! l* G3 B1 K$ Ybool WallHack2 = false;" E! z  c! U- m" ]& I4 W5 ]3 m4 J
HANDLE hand1 =NULL;
- [( S' a  |6 i1 U9 UHANDLE hand2 =NULL;
+ m4 f. w8 L7 f/ E% u
# V2 i7 c  C% f5 z0 m) y% |3 PDWORD bytes;
* N% {2 b0 S. f8 z6 ~. @8 W4 ?9 ~2 P3 S5 g* G' o. s
//Logger
! }/ R) O* s' F  T  }5 `* G! ~5 Sint texarray[1000]; & `0 N. o8 f5 O+ x* s
int arraycounter; / k6 |3 I0 v6 U8 A0 n' N% U7 Y
int delarray[500]; ' x3 y9 ?# w1 k' q
int dcount; ! }! ^% b" |; {. y( X% t/ f2 w
unsigned int arrc;
2 ?" ~4 V+ A. q$ t! oint i=0;
7 Z' Y" K. H# c- r5 L) s
% N& a% l- ^7 T) r% y# Z
* p/ T  i2 K% tD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );7 [$ Q# L1 \. H) G- ~
+ y7 V) v" `+ i, s
3 j2 ~) d' d  L& g: r/ I) i- t! y
char *GetDirectoryFile(char *filename)
3 }( F! o5 Q4 Q, `8 z2 Y4 l( d, b: S{
5 \* \) h8 |' ~$ astatic char path[320];- o) ?( {  _8 b! ?
strcpy(path, dlldir);6 s4 U# u+ {9 K* n$ }
strcat(path, filename);
* E+ v* C4 s. d- Creturn path;
# L# p3 s2 D. ]/ C1 ^2 M}
  |7 e$ d# }" l* l
) {9 e  E/ L. f% fvoid __cdecl add_log (const char *fmt, ...): J  z. O# j! M* W# t! X' J
{0 o) B* i  D2 X& `4 z" e) l
if(ofile != NULL)) U8 }$ Q0 o7 F5 F; B0 B5 F; U
{4 c. {; ?$ N2 z
if(!fmt) { return; }
: I& @+ r( y4 @1 V% C
* ^0 H* p4 }' x5 A: ^va_list va_alist;
: k5 f1 U7 G7 E0 q; t* d, Wchar logbuf[256] = {0};
) n: ], r: v" X( J# m% U3 D9 c; z, m; c6 E. ^$ G, U
va_start (va_alist, fmt);
/ g* _9 X# |5 X6 t3 Q_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);" q3 o! e: T( n8 a8 [7 C
va_end (va_alist);8 f' X: n! _$ _$ c. x3 X1 B

3 ?! I  N; R% T7 g; T) J8 g! t& t( |ofile << logbuf << endl;& q& j5 x+ k0 N) N) |- l5 o
}. g7 R* {# `% u: Q' Z
}
8 i: Y  ~' L7 i8 v0 {, S
  E+ b; k; K' f& J' a! {% f, nHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)2 [8 S$ w" s% q1 N+ j' t
{6 C- s4 L+ O2 ]; L! }
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )* s* P" N5 t) u) d
return E_FAIL;+ ^# z; |% Q2 G0 M: z/ ]4 ~8 N

4 k* s1 M+ Q- U' c% CWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)9 s2 n4 L9 t8 q  l+ S
|(WORD)(((colour32>>20)&0xF)<<8)
# P: k% O9 x. O5 k3 H* [# s$ W1 z|(WORD)(((colour32>>12)&0xF)<<4)
9 H1 Z/ i, ^4 o3 C) Y& R|(WORD)(((colour32>>4)&0xF)<<0);
. k: u( f' s  n
/ m" m, x7 o4 s5 s/ a4 h* OD3DLOCKED_RECT d3dlr;
+ n! K7 r. W# I(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);, e& H' p6 R  L3 K6 n
WORD *pDst16 = (WORD*)d3dlr.pBits;  J- W+ j1 A; ?2 y  @

# O5 u, p) a" m3 t( Kfor(int xy=0; xy < 8*8; xy++)% ~. ?. T: T$ X5 a* j1 ?
*pDst16++ = colour16;# X6 @8 i( R; M

4 G2 [' Q0 t; Q* r# Q( u. P  [3 G(*ppD3Dtex)->UnlockRect(0);, t; ~1 W& I/ a2 M4 \) p; B
8 q1 @' F8 h8 n' g" S
return S_OK;
, Q( ^, E2 R: H' F$ x0 }3 ~}- {$ V) `  U9 D2 N8 R5 }
5 t$ p; P: Y1 A% F: M
% `. o& h0 r: H# v+ X
//=================================EndScene_Start=== ================================================== ============================//
0 E/ _$ `$ R7 z, E+ Itypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );7 a6 T) c2 X+ M( S
oEndScene pEndScene;/ S* Y; M7 I$ E% g( t

1 v# H( w: `$ Z1 P0 k8 g7 fHRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
7 \+ Z. m  \6 m% E3 C' N{
8 l# h# I+ q" f/ K6 D0 Gif(Color)0 u( X3 b8 H0 }$ R- ?, Q
{ 5 J& G- Y- Y: Z6 K
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));+ L# z  N4 `% ~. g; S& }  B
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));# {, {. @5 i4 T5 b5 t
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
, ?  t" q0 {& K% _; H9 dGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));5 q9 }3 [8 y: b7 w3 i3 v% U5 @
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));4 v( v* \. l$ G! m5 y1 j& a/ g2 `
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
6 ~7 c1 Z, N0 T4 d* J# UGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
! v) W# h2 B6 J# A8 IColor=false; / a9 A9 Q+ Q9 Y3 s% [3 i2 R
}
: v9 y: P* ~. z3 i2 }6 e5 _
+ o% S6 W' l( v: s+ T* Yif(xhair). L, C+ Q/ h/ e6 q
{
) F6 w+ F4 k0 s/ X& b3 J  b9 _! zD3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};3 X' Y7 U" h& n
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
0 x6 b  p% n% z7 T8 S" wpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);6 U5 G3 L1 `# Q" Z
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
) e5 d* ?4 `2 t  r} * ?& Q( j0 F  ^/ _/ e, ~- r5 N
( ~0 g/ i8 Q# @0 j) j. b5 j
//=============================================UnHoo K_Start=========================================== ========//0 Q2 _+ ^1 o9 _
% Z3 H: |3 G+ U* t) ?9 ]
if((GetAsyncKeyState(VK_F5)&1)) ; n0 }/ K5 O3 P' J8 \% g9 \( E
{ % _3 _; V8 m! z! f$ |1 o- n" I
int end =NULL;
6 F9 g2 w7 a3 \' m3 S$ b5 f2 ]int dip =NULL;4 n4 P/ F. u( n- D
int svp =NULL;
' E" i# ?4 f+ y; w! A) h& B: Cint sss =NULL;
+ K; r) }; @& v. g& \. C% R9 G8 i$ q. X! R8 U7 K
8 L" K) Y' V' z) B! n3 v1 J' T
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.$ ]3 t$ I, H+ ]( F" X: d
hand1 = GetCurrentProcess();
4 ?+ _% x' ~, cDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
5 h1 ~% {; G" g6 ]! V; nend = 0x6d9d93a0;5 [" o" F% N* Y! L, Q
dip = 0x6d9d73a0;" ~5 Z: r) Z6 X0 Z4 `
svp = 0x6d9d5b90;
$ h& J/ M0 c$ `3 p$ p6 bsss = 0x6d9d6760;
8 o) u. S8 |3 m2 X$ f9 V  F. z
7 E, e' k# S( F! \. U; P$ U8 M3 cWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);( X+ @, ]1 Q+ R# u, _9 J6 O
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
" D  A# y0 o2 M+ Y" WWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
) h. h7 B" ~; _5 p% U  qWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);6 o! l; [& O+ Z: O0 x( j( e
} - q9 u" m0 M! c) C  O. _
//=========================================UnHook_En d================================================= ========//$ O! d8 h8 A$ `/ q1 O, C

5 S# O1 w( s7 m, @8 L7 _if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} + e+ W/ W2 k8 `' _6 D
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 7 @; R$ Z5 h* b  j. L% q' m4 b( \

; n! U1 U" B4 Yreturn pEndScene(pDevice);
5 }  i+ H6 Y# N. M}
" j9 z" d9 y/ J- [2 _9 R//====================================EndScene_End== ================================================== ========================//
, Q2 v0 [2 H$ p. |, N2 I- j0 \, R3 F. g: J
5 l3 y3 d+ Q8 E- H3 L

+ q% R* p( C. @8 W/ r, _. |0 W5 U. D
//=================================Dip_Start======== ================================================== ==================================//
- g1 o. @8 P5 v. Rtypedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );$ Q5 c2 R8 y; q( c
oDrawIndexedPrimitive pDrawIndexedPrimitive;5 {/ `" q3 O. i9 {$ w
- C, d8 P* ]' o  D$ H& i
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
& a8 G  R0 q  n. P6 ?( t9 ^0 c& p& T{
, a" }! W' x0 z0 c  ^3 N" C8 N( x% T! y2 S: }4 X: I

6 ]0 l' \* E- X8 g. \. |2 V5 S) D% v* s! ~* p: A+ J
. `8 s, e4 v/ \6 W, O
if(WallHack)4 J  W9 f6 W0 p4 R' v/ [# V
{
( b  b8 |3 Z' L7 r0 R& I/ u; k: ytexnum = (nNumVertices*100000)+nPrimitiveCount;
) V2 F$ _$ O2 m* _; ?if(m_Stride==40 && 5 q8 x6 V- Z) q5 D

" ^& p, V* r/ s6 u/ V$ {& F5 q. R(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||* Y: [! n$ D% w: w
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||* ^1 a7 v* I& m1 ]& D4 a) ]
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||
) a- Y' {: C' L/ l; z(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
$ D& U. o/ [7 A# g# c/ u(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
: q' C9 c, _; ]; |% N- ^* e( V: @(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| + @+ G6 o; \8 ^
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| & ^8 e3 b( Q, D- k  ]1 q" @4 N
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
+ t$ ~! A% Y2 [8 z(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| 4 S5 W" d8 N8 T0 o) l5 j# Q% R6 V! \
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
# {8 v" S  G% {- j( S% M(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
6 l; L2 L$ S# w1 a8 }! B, ?" m( N! O2 O1 w7 X, E5 l

3 P2 o. B) M7 _4 N! G; G( O" E2 N) H# P, q* S- A
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
2 Q; m9 q4 Z- d% M(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
; d* G" I3 ~; u. l(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
. l* j; S6 v% ~! J2 F5 I(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
( c! r" y  N( A0 _(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
4 `+ H6 G' p% N: B. q; @  M8 [6 l//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head % k) C& S; C9 X0 [& t/ ^
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item 0 ~% C* o6 v, O8 X
(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest $ U( L8 T( v0 ~$ x6 n
(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants
% I* [* N4 Q/ w: v9 m7 S4 e
5 P  Q& L9 L% y+ U1 r. x{5 U- U# {; c3 l& ~' t- c9 p2 B. C
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
8 e; }3 W; j& a) M  J& TpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);0 W- ]. e+ t! M* f0 z+ A' @
pDevice->SetTexture(0,Orange);
5 J7 R8 J" C) n. f. b/ o. _//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );; }! w8 I  v( t. E/ s$ M* D

. |; v+ s* l4 I, ?# P2 \3 v1 XpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);7 U$ g' |9 ?) w8 Q# a2 \% M

, G& D/ m2 @% t: `* s) T. U# p; z7 k//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
, e( F- F& b5 H; a) x/ DpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
+ |8 ]$ S  v  rpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);% w2 y$ W- h- ~
pDevice->SetTexture(0,Pink);$ c0 H" H7 t! D9 ~0 F2 m9 q9 H
} ; V0 A" k6 c! k3 w

" r: @5 w+ x. m) }, T- uif(m_Stride==40 && texnum== 21300174) ! A& S/ ~4 D( m
{, p  m' L. P: x5 F8 t! ]) P
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);- i: }% O& V2 Y& K, ^
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
& ?3 I, C$ |. }' ]1 _1 M3 s5 n( a$ P8 X* a9 IpDevice->SetTexture(0,Green);//GreenNade7 o+ ]1 p1 l0 I9 d; w/ }4 \4 `
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);1 E8 Z& B% W& L0 @! M. m9 q, x0 h
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);8 K7 V# D) F4 Z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
& B" n7 i8 q- F; w; [: lpDevice->SetTexture(0,Purple);) g$ h4 _' v+ I8 L; w8 ^: s9 F
} + Z: r4 E; l1 P6 K& m! ]

7 t! r4 X8 O) k3 n0 M% P! }4 B( T  W9 u3 r  R& T# X% L3 i
if(nNumVertices == 158 && nPrimitiveCount == 131)' ?: T9 x% q! E
{
0 o& F5 x  X& i* C2 A" ]1 SpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
+ K  i. P8 w  f0 V7 n8 NpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);$ k9 c% ?7 q. L8 C' K
pDevice->SetTexture(0,Red);//GreenNade$ o" g- U" @0 w7 K- m; d$ g' l8 ~
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);/ z+ g9 _2 `# ^  X9 M; f4 O2 G
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);# M0 j( c  {, k5 Y5 n6 ^
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);  A+ U* P; {1 c/ f8 [
pDevice->SetTexture(0,Yellow);2 s8 T- F# b2 u
}
  G4 O% y. v! W, Q* _
; u3 g$ c" Y9 m$ L+ n3 uif (nNumVertices == 171 && nPrimitiveCount == 143)
$ o" C0 ~6 A- u& [7 N; z' Y5 |{  o3 s# v* F$ T  U
& d0 w/ h& Q( d2 N
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);# Z/ q- ^8 e. d! q, Y
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
& i. n8 J9 h2 o: r' Z9 Z7 @pDevice->SetTexture(0,Red);//GreenNade, U/ G1 g" h1 a) Q' a
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);& s# ~5 L' O$ ]& d& c/ m
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);% ]1 }  z+ M1 W) K9 F) [, C
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
( ]# W4 c3 |- |$ CpDevice->SetTexture(0,Yellow);3 t' L* \6 T6 [1 U7 Q+ o9 O
}$ H- i% {! m% V, T5 K

) C% U4 c& e8 Z& z' [* ^: ]) l" n% v/ m! c* x  y  K
. L; E! B3 G2 C1 X) O- X
if(m_Stride==40 &&//face,mask etc...3 F$ V. R# \# H# _8 O
(texnum==36700612) ||' @+ J7 \) H0 u# _
(texnum==9600172 ) ||
) D3 Q! w( g. T( |1 A3 a) u(texnum==14200236) ||! w9 J# u* S5 X' e0 Y$ X4 t$ H
(texnum==37800552) ||
; |  F' k7 h8 ?) _3 ]/ m(texnum==28100486) ||
- c  I  F: Z5 C+ ~. R. V, a(texnum==35500568) ||
' Z$ G: o2 T, W4 {, f4 |(texnum==2200024 ) ||
/ G& j2 ~, e% s(texnum==16200243) ||, {% l6 ^' d7 {- q8 E
(texnum==31900466) ||2 T# P1 S- f4 W* P& n, A
(texnum==19300342) ||
4 r3 J5 e  z% s& u6 X' \/ x$ p) y7 g(texnum==36200604) ||
5 r. s& L# |) \& F; E7 k- s(texnum==21300290) ||0 L( Q. g" Z: u/ Y$ k9 ]
(texnum==35700558) ||, Q+ ^' o2 U  V" ?* k0 O0 I% F: G
(texnum==22100396) ||$ x: x2 ]% \2 b" b6 m0 V: f( ]
(texnum==36100604) ||
9 C% m- ^! j& d4 n8 }; _) m(texnum==27100464) ||
! v2 d; p" K- D& q9 O6 Q(texnum==11400180) ||
+ W+ t6 B) [1 g' b; r- g1 }, I8 x(texnum==34900580) ||; x: @0 v2 E0 A3 U( R# f) V4 M
(texnum==13200212) ||+ \- r# \% j" P: B& ?9 D' x
(texnum==34700538) ||
! h. ]8 L) W1 b+ H2 j1 Z(texnum==19500352)&&* s2 w/ H" J/ x9 ^
(nNumVertices == 448 && nPrimitiveCount == 776))
9 @! ?/ v2 m* k* w1 F9 n. P' z- F/ s
{
, p8 u/ r, m. A$ W) v4 K' A9 t" WpDevice->SetTexture(0,Blue);3 c/ p4 g& s" Z4 e# T! v* r, v
}
+ ]+ p# q! O: A' W/ Q
9 Z/ v, P% M' r6 e" H5 m+ `- e' U  \: W+ Y+ Z1 U. I. L
{
9 X% ]9 M/ o1 V  }pDevice->SetRenderState(D3DRS_FOGENABLE,false);
8 b" ], E/ f9 Z0 ?$ E5 I: {}
3 P5 K, d5 A1 T* Q
2 U# I8 g. M0 Q6 O% G' S/*Logger7 [; G0 h! M' C3 y- w) E
if(m_Stride==40){
$ `, G, }6 w0 N, P$ b7 r7 q1 C4 r/ }7 P

9 ]+ V+ R0 J' I5 Nwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
* g9 |1 Z4 Y. B' awhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;' C7 j+ W" [6 ?& ^& r5 Y
bool alrdy=false;
6 d0 k% o; K6 d. l* ?. ^0 M" t( T' ybool inarr=false;
, h) R0 m$ A$ ~+ b/ U
  x8 [3 U; O; s8 q3 ?( {' X) iif(texarray[arrc]==texnum)4 x$ }- [& P! j/ j3 o- i4 n
if(delarray==texarray[arrc])
+ `6 n, e$ m4 P5 }1 t4 a& r3 g4 j5 ialrdy=true;! N0 x2 i- V3 [: ]$ J8 \! I
for(int i=0;i<dcount;i++) //sees if said texture is in delarray1 Z. e6 s! M% w+ \1 a" o7 r) H
if(delarray==texnum)- A% g& u  m2 o
inarr=true;. X! T7 i4 K* r
if(texarray[arrc]==texnum || inarr){ //If true, color model differently9 @5 D$ A7 y& z( a: i! C
LPDIRECT3DTEXTURE8 texCol;
3 S5 c, F4 O5 Q0 BDWORD dwOldZEnable = D3DZB_TRUE;   M" u; D4 y1 i" Y* u2 U# V- M" G
pDevice->SetTexture(0, NULL);* {% Y4 S* R9 V$ \, c: L
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); 6 M2 N1 }$ G) ~0 @  W
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);- e( a5 Z% m6 p: C/ A4 d9 h5 P
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
: k* ^  W8 x' m' ^texCol=Blue;
" d" U$ Q6 _  welse6 \# h* z- _3 T$ l* n
texCol=Red;# C& I# k  ~6 c) B, v3 k6 k% v/ w
pDevice->SetTexture(0, texCol);# W' C0 T/ G$ a
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);: n4 `' d0 `9 o# I; u# I  m; `
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);5 t* M! P; }3 Y8 {

  r6 H0 E1 X+ o# I3 O2 v* J2 K# }}8 r$ G! c% ]* O+ v- m9 r+ Z
}' ]. I- W  y7 y/ B
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile* U3 Y( e2 `0 T7 e; u' {
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array) f1 k. D: F: k/ H
bool inarr=true;
' o, @% _3 T7 f( M- f4 I) Jfor(int k=0;k<dcount;k++){& j; d' ?* D, e/ B$ D
if(delarray[k]==texarray[arrc])
0 C# `# d$ G2 W0 R1 _{* ], g4 f" Q5 H4 _* X- q7 u
inarr=false;//Found selected texture to already exist1 }/ f6 M! f8 j! L4 I$ f3 X# x- q/ H
delarray[k]=0;//Delete texture! [3 t  P' ^, Q( e8 e: k
break;//Cancel loop8 K+ P2 p# [9 u; o# v
}
1 x1 w7 j5 c: r1 G2 X}
) j1 C0 i( i: M- U$ J) e9 N' [if(inarr==true)& A, a8 `& h" g
{
/ {( u7 q; k% B& z+ I" |1 F6 sdelarray[dcount]=texarray[arrc];//Add texture
. p5 L$ a) S/ Ddcount++;
3 [6 q2 i1 m$ j# [' M8 Q/ e}$ q7 |! p: R/ v! I/ r
}
8 O& g* q: b; o7 Cif(GetAsyncKeyState(VK_F7)&1){. o, J  o0 T9 I' \. q; X5 ?- n
int total=1;
: f* n7 |) s- G2 Cadd_log("omfg values?!? {");
+ ]; Q. i7 O9 E. S  F" X6 Ufor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format( y$ B% H: d% O8 ]$ h/ V
if(delarray[x]){/ }8 q* B5 I; G9 A4 e
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
0 j; E, n- `3 j5 V0 S. z3 Y$ jtotal++;  L" Z1 F$ B9 D6 J7 }) T8 _
}; @6 |9 j+ B+ h  |$ K7 L1 {1 o4 g
add_log("}; %i variables in array",total);
" ~: r" k# Z7 n! @}
) ^/ ]) P: e2 l; N5 W2 gbool found = false; //THIS PART CREDITS TO KRYPTEC* t& Y2 R2 ?( d1 S' z3 u
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
. [0 B/ i; O2 T5 J8 h{2 N+ C0 ~" X2 v% x# \/ t8 A
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT5 W6 v1 v$ y% b! ]' T3 w) s6 H: y
}
/ M3 t4 B0 n) ]% y3 X. Y8 rif(!found && arraycounter < 1000)
- S0 E- E2 D0 Z" Y9 G{
5 G! T6 R8 d7 Htexarray[arraycounter]=texnum;
1 b5 z; W. G% H$ I$ e* Zarraycounter++;
1 H8 s' |/ W; x4 Z}*/+ C0 E$ T5 F' K* W4 ^. K6 f7 v) u
" z& t; {- O8 `8 ]" q# H1 [; |

& h/ i& ^# L7 t! Q. ]/ j& q. m}
- q9 X+ j" m0 P) m$ C+ s0 _return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);  f2 e0 x" A3 B0 Y  ?
}
& _/ q0 W  l% J2 s- j//=====================================Dip_End====== ================================================== ===================//
) r( p8 D1 X9 @1 Y4 N: H  H- ^* I4 y- ]6 S( Y4 M

7 N2 L1 t/ w  G, s$ e* [; q5 w//=====================================Sss_Start==== ================================================== ====================//
& J# j7 P& i: D1 c6 V0 n2 u& @typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );' m! T, W2 H+ P6 C1 ?- o) Y
oSetStreamSource pSetStreamSource;
  m4 R* D6 ^2 k, `' Z, g
$ L6 h% w4 U# \HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)) q* F! A( b8 _
{; {& d8 ]: r: `1 {+ q) g
if(nStreamNumber==0)% @: f# l: x& d" x0 G
m_Stride = nStride;
; ]$ ^8 K, G7 N' `9 J4 i& o9 @
, T/ y, ?, N' k' w: S% T' T  }% treturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
7 ~2 h$ N# Q6 [7 \}6 P- t% o: W( d/ A$ y+ ?) Y
//====================================Sss_End======= ================================================== ===================//
& j: q! c$ a* X8 p/ S" G: h* f- p3 C* B# J1 r. U# _
//====================================Svp_Start===== ================================================== ===================//
& C( F& v& e8 M9 Xtypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);- t/ m8 o& M1 l4 Y3 ]1 O: J! R
oSetViewport pSetViewport;
) a" x+ l3 \# K1 s! K# k6 x7 U' |5 |& t  b
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport); |4 Q. F# Z4 n$ f9 `8 v
{5 ^& r& c$ W* }4 W) H7 l: M
ScreenCenterX = ( float )pViewport->Width / 2;
3 e" X/ P% j1 \# c# ]2 i+ H2 v$ [ScreenCenterY = ( float )pViewport->Height / 2; 8 e$ M& Z5 [1 H; u. c

2 l; L* s" m$ g: G9 Zreturn pSetViewport(pDevice,pViewport);0 ^. |8 b' Z  ?2 L5 B- [6 q7 _
}! ~7 S+ h+ C6 z6 W2 s8 U+ W7 K' B/ c- W
//===================================Svp_End======== ================================================== ===================//+ M4 y# _2 u1 M) H! E/ P2 Y
8 {" M/ X; ^2 h* v. M
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
" }& l. G& U4 Y  g( v8 JoBeginScene pBeginScene;: b* i( l9 [' m8 l/ G

1 R0 V+ _9 B) m. `7 Z5 X6 [3 GHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)  y2 g. F2 Q& x: {
{
' `7 f! e/ z# ?8 m' m' @if((GetAsyncKeyState(VK_F6)&1)) . [: m0 @5 p! C* D( c$ Z# M6 c
{4 ^' l/ Y$ b! h
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);3 G. h! C. p3 u2 j% E: ^! y  h* J
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
9 E5 ]$ U. i: t+ ?pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
% X; _1 E0 v6 ~2 UpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
* q  Q5 Q6 g& M/ |& a}* ^. a- L( d/ o( y' p0 L

- W; E6 D# O, B) k8 A' B2 ^return pBeginScene(pDevice);
* ~  B: ]. U) G# Q/ T8 C& s}
+ w6 u! S, p5 o1 M9 V- x8 i. V. t( B
3 |9 `( E5 o; @/ m5 j% b7 t1 k
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )$ Y% c$ n7 ?& ]- T
{
- d8 M3 V: H3 c8 DDisableThreadLibraryCalls(hModule);
7 H3 D! H* j1 F' K5 V$ N0 D0 K* @. t7 H* k& X! g
if ( dwReason == DLL_PROCESS_ATTACH )- g5 ]! R- K2 K
{
/ g+ `- x; E6 [" I$ n2 r( Y
+ E  v( h$ Y: C4 U//=========Log==========================//
+ |8 r: g+ S; ]. }1 @GetModuleFileName(hModule, dlldir, 512);1 B, c* |. j$ ?$ Q7 L# b6 g
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }" V' y+ `( a! P4 T
ofile.open(GetDirectoryFile("log.txt"), ios::app);
; x3 N1 H4 B: z0 E$ _; K' \4 }$ i8 r//=========Log=========================//1 ?7 c. z8 |9 R% d  p# p. Z

- v1 i* w4 z/ ~/ J% HpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
4 W% v9 G- `. B' ypEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);+ {4 K  K$ K2 @. j* z
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);) ~: _; q+ O7 e$ [% a( K
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
; G& D% r1 I7 Y* F* NpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
" [* b& _  E( Z7 p5 Z. y& q$ a2 w. {8 j6 m( K
}- s0 c# F6 {6 a0 B/ ^
return TRUE;! @" ?& L1 N# Y( F
}   y% \: i( a1 |% N0 u$ B" j" n: N" I

  M6 S' I7 n3 X% y+ I5 M
. _2 \4 y0 j7 i1 X1 }4 _1 J2 g% RLog.h (The header File):5 c7 }+ ]% h* t9 e  r: J1 m. M
: d5 Z- R8 {  l# u+ O- i
#define WIN32_LEAN_AND_MEAN6 d( Z7 a$ P* Q* V7 Q. A  x

7 B: Q6 j6 o1 }) {% g0 `1 U#ifndef _MAIN_H
, B, c# Z7 i4 R% Z* V; A. n#define _MAIN_H
9 I+ W" w  b, d  |* Q
1 X0 i6 _# S6 ^% p- [1 Nchar *GetDirectoryFile(char *filename);
0 h# x1 V) `$ L; w7 u9 O# U0 yvoid __cdecl add_log (const char * fmt, ...);
0 y: b$ F1 v4 B/ |& h9 c#endif
& h/ ~7 C$ u! _# c! Z3 _" Q7 w  ]: `& d: A9 O" g& s' L
Now after you have built your wallhack you will be able 2 find it in :5 F/ P# g. {* u$ B! h! w
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)7 U0 n5 s& f; S  c9 [
) r1 j/ p2 k& K; D$ [7 B8 @
Now I will show you how to make your wallhack undetected:
- S) t3 Z1 @* S/ n% g3 z3 R1. Download D3d hooks/ w% s# Q! Z0 r4 j  V  s
2. Open the file that says "create device code made by me.h"/ o  J+ w" O3 N+ w# y
3. You will need to make another header file in your project and then put name it create device and paste that code it.3 C/ }  a! y2 L
4. Your wallhack is now undetected." @  }+ R+ {# }7 \2 {( A/ X
/ w4 r( Y: p; x3 t& p+ R
Credits:+ [; ~. Y( F3 |/ q2 M* Y
1. ME FOR THE TUTURIAL
3 c0 |' m& C% u! g& x7 S. J! S2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
8 _2 S9 o2 x* }' \) z3. FATBOY88 FOR THE SOURCE CODE
$ i5 v  O1 V8 _/ U- N$ R1 M4. THE INDIRECTX I JUST FOUND :P
) a8 r7 P; t5 {5 [: u. n2 O3 J4 z
Attachments:
6 G! m8 \+ n- ^- |* p  KD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5/ `/ \% q& [& m" C% W1 k
IndirectX: http://www.mediafire.com/?gimzgmeny11. I0 X$ ~; p2 ?& i/ ^
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj56 {2 }2 |+ `2 U" U( W
SEARCH THE LAST ONE UP5 ?1 d% \+ d8 Z4 i( V
__________________6 O% L  T& l4 ^5 c7 i

" X4 i. ^2 L% p* v, J, k7 S5 O <---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。
% p. b) D5 [! v8 [9 R主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。  _5 g+ s+ p) A6 G
这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。
: M* }& A+ C9 w, r; ^有个帖子,简单的说了一下,以后还会有大量资料放出来的。, U" L% f$ A! C# e
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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