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

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

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

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

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

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

原文4 J# U" Y% P3 {6 E" }* O; m$ o9 U
http://www.descipe.net/forum/sol ... -your-wallhack.html8 n$ |0 i4 X; M* R9 @4 T
1 D6 `) r, F" `& [9 }0 x+ q
视频教学
3 @# |& z5 V. z1 C  c- ?+ Dhttp://www.youtube.com/watch?v=6b5XMzT-b_U   
; B/ s  J) H: s  e: r2 O0 B3 b4 t
, H+ E' p* t$ y* RHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch ' B6 E* s2 ]8 M' `/ D7 `& h( d
3 V1 V; S  h5 c5 K+ J
Hello shane007,# @( R4 d: R+ y0 ^( o
Our 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. $ I3 e% J5 K  n" b
; e9 @* ~, B2 z2 {! h  i# u
Why not start with your first post today and become an active part of DEScipe.net now!
; D. I0 G. p% P  Z
! E6 {, G9 u4 N; w" a5 h' L) [7 t" P0 e3 O8 Z4 l1 e& A# v
  * i% m1 G  o% \# a9 K& D/ c
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  ; v+ Q8 @$ N, X$ p" B
How to make a wallhack and how to hook your wallhack!  * O/ q4 g7 y3 J; J$ R& S+ }: X
Welcome, shane007.
) S: M! a# \+ M$ B! m1 M1 jYou last visited: Today at 03:55 4 e9 p* ^% |8 |) l1 n1 B( s, i
Private Messages: Unread 0, Total 0.
8 f. F  S  Y  n/ @: {" xCredits: 200 [Check]  
2 n3 E* x( Z. b. ?$ P* o
/ ?8 P* D& t5 N: p8 uHome User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out 5 d' ^" ~9 ~4 ]# j& ~' ]. E

: o; W0 `  N3 X7 k
- O$ a1 Q% T' Z7 z. P
, I  H4 W9 Z5 d4 t4 E& CSearch Forums   R" _2 A+ j& O5 C0 B
      : K3 L# H$ r7 k* |
) r, _& p, o5 r" _
Show Threads   Show Posts  , v6 r( o$ T' ^9 H
Advanced Search
6 c" l0 p' \1 H" i/ }Find All Thanked Posts ) F0 V& R1 O& ~) C  a0 M
1 V2 a, W: A* X3 |1 g8 n
Quick Links 4 i$ p3 H* O' t6 ]: Z  P
Today's Posts " T' @5 T: X5 e9 q
Mark Forums Read ) d# j. e* o7 H) h# Y; p
2 N9 W" J- Z9 e0 ?
User Control Panel / q0 B1 l6 @8 }3 }2 W
Edit Signature
! ~+ D( ], J& `+ d% g8 [: F ! O  O8 d0 h( V3 ?0 f8 i
Edit Options
) S- ~/ _3 k+ \. UMiscellaneous
3 ^* `/ i: U# Z" W$ f9 d+ ?Private Messages
& g) _8 s4 }' k0 BSubscribed Threads ! @. E( A$ |- v: y. w9 u/ c8 [& z# b
! O7 g4 k7 X: b. c2 Z6 W$ f
Who's Online 4 l( D2 w5 W9 W5 c% w" b
" G  A4 c3 w! n/ f4 y
Go to Page...
, h0 w: \! c* C* R! C( Z   ; n- g) e5 o5 |* A4 U
How to make a wallhack and how to hook your wallhack!
. L- p# i3 S* j6 }% [9 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. ... 3 {2 f  s# j0 Z/ J

0 D% o5 r6 ?/ A+ F: e7 Z. z    Poll: Was this helpful?  
) q7 {9 H& Z& JPoll Options" _, j+ l$ H! H
Was this helpful?' N* e! W- |1 q* M
Yes, I WILL press the thanks button
/ x/ Y9 s4 i# @' z* F3 h3 U5 v; _' cNo, I am a failure
/ Y# ^3 u  l4 R- T$ b7 |View Poll Results   
* p4 I4 o( ]- A3 _" X! q. Y) {: }: Q. ^
Page 1 of 3 1 2 3 >   
5 N- G/ h: `, a) G( z0 A- X( v & _/ l+ Z- |& K$ b8 J) I& b
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   
! `' y1 o7 a. c' x$ K0 p/ O! \7 h4 y8 K9 U4 w$ O! |( ?  g. A% K8 W

# c5 e- ~' n2 A; J7 l3 L  
) m) g7 t  z9 s7 F4 d 05-02-2009, 20:49    #1  
; U6 C, p$ O7 ^% v# e7 Nkillax9 8 [6 ]* T) A: Z0 X7 o
Punk3 [: r$ `; |2 b- F3 p4 E
/ H$ e; x+ i7 D0 x5 e7 p

% b, F9 X6 X9 U0 _; N 0 S# n! _# L$ a, [3 u% A

6 A8 }" \0 x% mJoin Date: Jan 2008
  ~$ i6 q2 z/ [Credits: 2,701 [Donate] " z! @; S/ N  Y* @, X
Posts: 103
7 @- c8 B/ W3 I2 x6 kThanks: 10
; C6 g* F0 K6 K4 \( h' [* t$ o* YThanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack!
4 T9 X0 I( e1 A& ^6 F5 F; R9 _! ]: S6 h! ~* ~
--------------------------------------------------------------------------------  j# ^8 H7 c4 C, B4 f2 o: X9 b
- L/ [, y4 b; \& u( I8 v% N
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.
5 q. A+ T: I6 l4 |8 I. `Possible Undetected Methods:2 x9 C/ h6 L0 E2 n( K* _+ `; S3 ?4 e
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.
. J" D) G4 U( M3 w; h2)another way **** it hack GG.# }0 g# {; r& M% w- \
3)breakpoint hooking;doesnt change memory... well changes debug registers.
* x. [7 d! \9 o! H+ v* P  T4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
7 r7 P$ p7 J; R" _: y8 _0 e
3 ?! b" I4 m& ^+ g9 oVtable:5 S/ S% B3 j) W6 f6 n; C
it wont work for vista its not a vtable hook =)
' Z6 L/ H. m. \# A
% I% ~+ q, ^; P8 Y& U7 kthe reason why my older version worked was cuz it hooked 1 m& F) y* u& ~8 g" K
Createdevice->pointers to the functions0 D+ S! s, W) n
. {, n) P% R- c0 _, j
kinda like a class or a struct.1 V$ E, l; V/ c" ?& e: [

" x7 e2 R! T' ~( V( ^* w/ X2 W- W
$ b! y& X$ a- b' j  _( wand 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.
1 u) G) k% a% u& l( r
4 m* B; r" i) ~% }( ~* u7 V3rd maybe- some games recreate the device when a map loads...like BF1942.
' [9 i+ [4 P6 R4 z2 R8 H  e9 D+ ^
Things needed to do this:8 H* ?# {3 L& Z0 q8 l7 K4 d
1. Microsoft Visual C++ 2008* X# D3 R1 s- \  F- T2 s: z' S- \8 o
2. DirectX_SDK_(Summer 2004)  Z# m1 z5 F) j, F3 ]
3. D3d_hooks- N+ ?7 q$ s+ g0 ~; [
4. IndirectX$ r7 `# j. G# m, G; k6 g/ Z* h
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
/ e% }8 c; f6 L, z) l4 B7 ]2 W! W  C, N2 n* W2 P* Z  j
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
2 l* z' h& f+ W& w7 v: ?! T6 W6 \2 N& X
YouTube - How to Compile WallHack [Tutorial]  6 s8 U: c) g% X7 e9 |
8 j7 m. K! w$ ^1 B0 L# i

4 @6 N" _. c  P+ @( ^! H% ~
8 y' O! Y* M* K; A* EDetected Source Code:$ e9 w- m6 Z0 ]% s6 S
& n) p! c) i0 t) b+ ^3 v
#include <windows.h>* x' E: C- G  k' @6 @& K' b$ ~: L
#include <detours.h>
" M& G% S" q$ Y% Z#include <d3d8.h>0 d# r0 Q" H$ I" Y- o
#include <d3dx8.h>/ R# C7 X. e6 W: x; L
#include "log.h"
6 Z4 W0 M/ d; s2 f% w1 u% A1 D#include <fstream>
5 y. p$ n  D0 W+ _#include <iostream>
; g  x) U2 |7 N% b#pragma comment(lib, "d3dx8.lib")
* F4 M" ?% X* ^' o% f+ G) K#pragma comment(lib, "d3d8.lib")% S4 a% [! F( l/ s* k7 O" s* i& s
using namespace std;
3 _4 I* k& r3 m! g3 A7 wstatic DWORD dwBeginScene = 0x6D9D9250;- R- ]" U7 s' _5 T( L' L: f
static DWORD dwEndScene = 0x6d9d93a0;  s& @* H8 a8 u0 j" ?8 T
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
, O! i6 ~2 G; sstatic DWORD dwSetStreamSource = 0x6d9d6760;
5 X6 b+ |5 Q$ ?static DWORD dwSetViewport = 0x6d9d5b90 ;
: u8 f! `9 g. J5 q7 n) c( t' p) A& Q- M& b$ h

, \+ b% S2 d$ X, w! o  yint m_Stride;# f1 r+ h& T6 y% V5 H
int texnum;" f' I; G4 e( @: G8 f3 ^
int nNumVertices;4 m( T' |8 l6 z- T: h9 V
int nPrimitiveCount;$ d9 @: ], m2 G) h5 V
- e9 l9 v8 K0 `( f4 }
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;; d( ?5 h: ]: x7 s# `4 x& c2 h% H
bool Color = true;6 J  a/ F0 @6 l
bool Logger = false;" o$ {7 z% |; R6 _2 c0 r, S
ofstream ofile; 5 p; l* m, d: {2 p' y0 ^0 _
char dlldir[320];* p: L& S9 k; ?4 C/ ~. W- E' e
float ScreenCenterX = 0.0f;: d) c8 N4 [- b% ?3 V" F
float ScreenCenterY = 0.0f;6 B' P6 ~& L3 f! M( p
bool xhair = false;
% u9 ]( H7 }8 d9 Xbool WallHack = false; & `7 A8 `- l, X
bool WallHack2 = false;
# s: A  W$ Z# F! s: Q5 YHANDLE hand1 =NULL;
" I9 \( v4 p1 H8 d4 fHANDLE hand2 =NULL;
+ v. A. N+ c' Z* N6 ~  T0 F. F& `6 E1 i0 E- w
DWORD bytes;
( [5 {: Y) r8 E
; Z- p5 U/ Q) l- g+ l: M' A7 Z1 \4 v' {//Logger
5 u! p# _+ _% d  A+ r- g% X2 r; V, B8 d9 U! vint texarray[1000];
* p1 b7 N3 _# P8 _( `! Wint arraycounter;
& K7 O% B3 n- W5 wint delarray[500];
# @/ u9 J. B4 H+ b5 vint dcount;   G; M4 Z9 a/ f, @! V" y+ p: V% b
unsigned int arrc;
, N" @0 L, c% U7 T: [6 O1 w, Mint i=0;, M/ j: \- V( Y

* q: V! F8 `+ j6 v% r$ ]
5 ~; b$ E: d5 l6 F' aD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );# `, q; w% c- w  a3 t0 c5 m/ p2 U

& Z. r; k4 d& _5 A6 U' R
9 ]* R0 F- V  i7 ~- M1 f0 ?6 kchar *GetDirectoryFile(char *filename)! i, H# F, t7 l5 W8 T9 k
{* h. ~7 F0 {& p+ w' A. X9 Q2 o' W$ K
static char path[320];8 n' x, o9 A% ?. k" Y, @" K
strcpy(path, dlldir);
2 v- A8 O6 C6 m2 {- Y4 sstrcat(path, filename);
* I) E5 x! W7 u5 h# Z, Freturn path;' Y2 P7 W0 [( U( ^9 V0 Z
}
! I* a" s7 I3 Q+ ?" B: c7 m0 y. A& b: {
void __cdecl add_log (const char *fmt, ...)
; D! D) }+ X/ q; G7 E( Z  W{
6 ?3 B: Z( f! _5 a* l' O# Oif(ofile != NULL)
& l' C5 P! {/ Q! s1 O. @  M{
. ^9 o( E/ o1 w9 q* }4 ?6 Dif(!fmt) { return; }
; O; [( ~' n2 ~) J: f
2 `2 a5 z$ _3 q* ?$ O$ L, Q% Hva_list va_alist;
5 S6 i( e- e4 \+ q5 Pchar logbuf[256] = {0};
; _' V( I2 e7 T9 g0 R! P
- a8 n( j  G* ]" jva_start (va_alist, fmt);! p# R" w3 n* b2 T) T% N( }1 s
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
5 b' w9 C' V& Tva_end (va_alist);+ [9 |. T. o) j; m
& ]9 R- o# A2 @  s+ v) p
ofile << logbuf << endl;. I" z$ s# x, x* m: f2 F1 [
}
/ y  Q0 {! E3 ~- i+ C: m4 l}
/ B4 S+ g8 u4 t! X8 y+ P. O. p6 ?
# Z$ l$ N5 w+ M  K* e' ~* Y) x. ], QHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)9 g- ?  n8 e) m& v0 B; ^
{
+ `3 M% j+ P# ]if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )9 F. _- Y: B1 e
return E_FAIL;: S- ^# \3 J6 e) b4 r! Q7 I8 h  q$ U
( g2 v- @. a0 e  }" e, b: M! ]
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
4 @4 R4 n& }4 _$ e# b& f! h|(WORD)(((colour32>>20)&0xF)<<8)
" y! F+ U. m8 d! J|(WORD)(((colour32>>12)&0xF)<<4). S- [) a1 Q9 v6 M* [) h
|(WORD)(((colour32>>4)&0xF)<<0);: T# {, U- `7 ^6 O: r) R
" G. B- A6 b' j% Z# k
D3DLOCKED_RECT d3dlr;   w5 \; H3 E, W6 `, d( Y
(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);; z: ^4 w, R0 h8 K# t7 L1 v  b
WORD *pDst16 = (WORD*)d3dlr.pBits;% d0 u  f: V! r# J1 M; p2 N$ a

' e: y5 j( {5 _for(int xy=0; xy < 8*8; xy++)- v! P3 g% j6 f( Q, z
*pDst16++ = colour16;0 M) @0 {0 j/ a( ]1 ^; J  x8 e

( g: E6 N7 E+ h(*ppD3Dtex)->UnlockRect(0);
5 y9 \) y4 \5 Z2 K) E. ^, H( Z  E0 o) D: Y: p3 |$ Q; h
return S_OK;% s% Y/ y; M$ C" h* ?: r$ o) Y
}" t  h* N  j! r  W/ d8 n
! e6 Y1 v" f" [7 A" W0 P$ n4 d

) X* B7 a2 R; I# Q$ }3 h- \//=================================EndScene_Start=== ================================================== ============================//
9 a; G4 z2 s6 R, ]1 s5 Ltypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );+ D2 }. s4 [4 T5 U7 z. x
oEndScene pEndScene;
; G( W- y7 H+ I7 F% j, z2 T* o! g& p. C! U
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
) K0 F5 @1 ]5 r8 Z1 R2 w' w{
4 {* O  q! v- ?if(Color)4 r" L, L! C+ l! |; P% M3 o
{
1 G( F' W: j. K0 {8 o& FGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
2 j7 I; H4 F) ~0 T4 KGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));! u, X2 y2 w8 U4 h
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
. A  [, x, |# P# \8 YGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
6 n: N2 W0 _6 v) W8 kGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
; Q* V" `+ T1 s, p, ~2 J2 @; MGenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
1 |4 e: N0 l3 M; |! E% MGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
  _1 M5 I+ X) x3 P3 V, }Color=false; 5 S; ]7 V+ o0 u8 z, a
}
. S! h( D' f, G9 o2 p2 w3 [: P1 ?/ [% X: ?& q; l
if(xhair)% s- f3 X1 o+ q2 G4 A+ Q) l9 g
{  |" ]$ p! ]( x4 v+ p
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};6 I" V% D5 Y+ Q3 r1 Q* H, h
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};% [' F/ S% M) U0 C( z- S) Y
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);2 I! K3 C/ B6 \- V! B
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
1 f% N& U7 b+ D/ I  F/ ]. y; v5 m# g; v}
; c: h" f, a9 W
! l' F# i* U% _5 G//=============================================UnHoo K_Start=========================================== ========//4 Q2 h" T( u) V" Z. ~2 A4 G# w

  O$ D! W9 B6 b" Y% o1 d. Kif((GetAsyncKeyState(VK_F5)&1)) - [1 q0 |7 i0 L  o
{
4 ?+ a- K3 d+ D; n: ?; a+ Oint end =NULL;- f, [, P1 E2 p5 c; |# M
int dip =NULL;
8 K2 R- Z" }3 j; fint svp =NULL;4 V& d/ C; v/ `6 m3 [3 @& R/ |
int sss =NULL;" k) I5 }1 B6 V# V* V

5 W4 m4 C6 j& w4 l5 e; p1 C3 N/ a+ u$ m5 ^' s* J% _& d1 Q+ n+ I
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.. k1 ?; z, Q. P& E, Y
hand1 = GetCurrentProcess();- s& R5 H1 Z& X/ T
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");, \: W) k3 s- _
end = 0x6d9d93a0;: [+ l/ V% h" |2 ^3 o( f
dip = 0x6d9d73a0;% f( b9 n# `  g: [; E2 b4 b8 n
svp = 0x6d9d5b90;: w, Y; q  {  Q! M- T; s
sss = 0x6d9d6760;8 R: V: c, r7 S5 {: q2 i1 T3 g) Q5 V/ K

( _1 [* A! S6 s  a* vWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
+ v, Z* q+ t! D$ z: f2 K+ PWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);3 f9 m0 G1 T* J  g
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
. @/ z+ i7 Y  h4 ?* g' Q! E9 K" qWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
0 D$ T5 B0 Q7 H+ W# M& [+ m) w, S}
1 T" e2 }" z  p! S( e. @- y! I//=========================================UnHook_En d================================================= ========//
2 L9 g8 h) e0 X/ k# W
9 h5 Y7 }7 `% w( C, |: H8 ]if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
6 s# ^6 @5 I+ Z0 J0 t5 w  ^if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
( m, @* w3 X, G( A3 B
1 y9 x) j3 P7 |  j" E# a" V, p6 \return pEndScene(pDevice);
" l$ k# o% x  u% I8 j4 ^: Q7 r}
2 J6 ^, e0 M/ @9 S+ y. a9 z//====================================EndScene_End== ================================================== ========================//5 k( e1 u/ i: p8 T6 M; K( u' a
4 @, Y6 @9 t6 t4 k6 _

& H. a" r9 m' ~  T' Q$ R+ p4 J( x3 W( H% W, F3 U9 `! w

* l5 \- P4 F5 |. ]//=================================Dip_Start======== ================================================== ==================================//
8 @1 }+ I3 ~2 K: y# P1 W+ z7 T4 _typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );- w) m/ L8 W- H. n+ K& P
oDrawIndexedPrimitive pDrawIndexedPrimitive;
& w5 {+ m' T+ V0 Y; ^
; P! i' C+ d7 H8 k' a% THRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)) Z9 F$ J2 J( L% Q( o
{
, S# {$ @, ^# S* w# ]" Y' W/ E/ ]  J1 j

, z5 _+ [, @2 q0 H! @
* J" p; i! A2 P5 I- s+ ]+ i
7 y" z$ S9 Y0 h# R7 l. h" B/ I  d) \if(WallHack)) b9 G( D6 s6 [, T9 J' @8 w  R* I
{
5 v7 f4 s4 u( U8 ]! a4 _: rtexnum = (nNumVertices*100000)+nPrimitiveCount;
% {7 t5 {% f) y% I/ j9 e# pif(m_Stride==40 &&
+ P3 O  O( |* M$ }& z. Y4 \4 Z" P6 R
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||; G) w9 F8 A/ o+ x! \% J. k
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||# z& u- s& D  ?6 ]0 ^( A. `4 [  j
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||) y7 ?/ ~0 n$ M# H- Y
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
/ a5 v2 r" C3 x0 m(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||
5 h" f; s' v! u) [+ D- ^1 `(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| 2 `: r* I% d3 |( x* ?% v( y
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
* [6 p' x5 E6 m5 t( K' f8 O(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
- G& R, h9 t" r, |& q(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
2 X+ f! A* I+ |5 c+ J3 K% p(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
" U' n* \! e- l! g5 s(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&  |- y4 `+ U2 t: i" m6 A

' S. I  }2 z! F
1 I  V! Z9 ?' `% l, L; Y5 [- x8 B! C/ t+ w: v
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
' Q- s  y5 w% O" u& C% T(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm & C# U9 |$ f& F
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand ) n* _/ \! o  J5 Z3 a4 f) ~
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm ( s: r; u' o9 s1 ^" O$ V
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)# j" ]& ]( z& F9 }0 C
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
# X/ ~0 z9 Y/ T6 V- {# f; t(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item 5 g5 ^: w" q2 l( P4 E# i' Q# Z
(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
' J2 `) r" a" @# F* C(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants* w0 ?! U, {; m7 r9 M1 Q- G, w

) N0 w+ F" w+ h' D4 C! ^( S! P{  [  y! E9 @% ^6 I
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);9 ]' N+ y& L+ f; f3 z2 N  R% e4 L
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);/ ~: P' H" f5 F3 m/ l
pDevice->SetTexture(0,Orange);; q; v" r) F- F. M  f- b1 g
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );* Q# r  X- t7 j, M- p
, }* k& |5 Y& A! E/ r
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);  ?! n8 {2 H! f* Z
# ?' F7 F) e) t2 ]6 E* l- H
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
$ d( |  X) P5 A3 CpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);- g/ h) Y/ `' n+ }7 p; G& C
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);1 M$ G! m% f! v8 @9 X9 P
pDevice->SetTexture(0,Pink);
' t3 z2 O2 q. `$ Q) V/ I; d} - W  }7 q% W, F7 t2 [* `* R
4 }: `. J2 R8 M1 O- F
if(m_Stride==40 && texnum== 21300174) , J* M& ^$ C9 q' ?
{
: n4 A9 Y+ V$ F2 O. h' IpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);" X" n) T" R: `3 c* f5 G
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);+ ~0 u; P. o& ~2 E0 o3 B
pDevice->SetTexture(0,Green);//GreenNade+ d4 @  W: a; z+ P" Q4 s# r
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
+ F1 v& j, D, N! k- |0 a* ]pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);# W; o6 W8 w/ x! ^
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);% z: F; @, O6 y5 ?& a, g' W
pDevice->SetTexture(0,Purple);
  N. ?$ r4 D% c}
# w, w; e1 Z- s$ k7 a, V, @4 x5 j+ ?# Z. @. j/ `

0 J; }" D- W5 wif(nNumVertices == 158 && nPrimitiveCount == 131)8 f6 J( @+ {6 Z' f  [/ T6 {
{9 F  Q, B; l/ Q
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);( [# B" o* }' R  }, j3 |7 t% v
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
+ }7 x- G' C& s: JpDevice->SetTexture(0,Red);//GreenNade/ D3 u" {+ V* v( S; F$ g- V# p% T0 A
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);1 z$ ?5 K+ ^: i5 o7 y! d3 ^
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
- D. D: M* i3 W# i+ f$ T1 V) xpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
  l2 d8 H' e6 VpDevice->SetTexture(0,Yellow);
, T; w; x7 f, x}6 o6 I0 z- z6 N  b

% m7 E8 O" g6 t( j6 O" {if (nNumVertices == 171 && nPrimitiveCount == 143)6 J4 G7 l5 I+ m; d, w: {6 j( o
{0 W/ c2 Q: a9 N* C( m" C

8 t6 W, I+ w: H0 S% TpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);: {$ e1 B1 c9 I
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);0 I; X8 o: g$ S
pDevice->SetTexture(0,Red);//GreenNade$ m) i& K# H! d
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);- z9 N1 [5 p, m+ H
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
1 y4 l2 @8 a1 }- ~, mpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);$ L( \+ ?1 c2 c$ L2 j# g
pDevice->SetTexture(0,Yellow);2 W2 N' @5 t3 H5 K3 t2 L
}8 y! ?9 {1 M# f; [  P

# [" Q* m; E$ {* ]) i* @3 e) p- s+ i5 P1 ]

# p; W! m( q- q. g' E; sif(m_Stride==40 &&//face,mask etc...
% S# q6 b6 K! N3 L( s% ?$ K(texnum==36700612) ||+ B6 n) q% I8 U8 A: |1 t
(texnum==9600172 ) ||* u6 a/ A) w7 a# Y6 k
(texnum==14200236) ||8 r# ]( \, o2 y3 w
(texnum==37800552) ||
5 w7 n# i7 |1 ~+ ~(texnum==28100486) ||5 q% H& M" i' A* `* c
(texnum==35500568) ||
; P0 w$ b2 j% c' h1 H) a(texnum==2200024 ) ||/ u- i4 r9 {  P; h. @4 T) q5 L
(texnum==16200243) ||
- n! |( u7 b3 H4 s(texnum==31900466) ||/ w9 j* j4 Z1 o. D
(texnum==19300342) ||9 W: R$ t4 _. h- Q! d
(texnum==36200604) ||
) }$ b4 |, ^. g- K(texnum==21300290) ||' ?# A; J( z7 p9 ]2 L; ?, e
(texnum==35700558) ||: W* W; \! D5 ~5 x& V# S% }% M
(texnum==22100396) ||+ q. W, u+ g" t# i
(texnum==36100604) ||
; x. e2 r5 T5 l1 {  l  u(texnum==27100464) ||
! {# _' n& D1 k4 W% s. a(texnum==11400180) ||6 s: n0 j( z) y3 C3 b0 N
(texnum==34900580) ||
! Z: L) G5 N% u1 H(texnum==13200212) ||
. E6 _9 }" v  L; w% \1 }! @5 r# i- S( P(texnum==34700538) ||
2 |3 i" [/ u" D5 I  o(texnum==19500352)&&
. E, k' i1 Z+ f' T- l4 P& l" ^; f/ M(nNumVertices == 448 && nPrimitiveCount == 776))7 x! ^) F+ X, |' F8 M* C8 X

. f# l9 ~8 z4 W* Z4 d{% b; H9 X! t  O" Q
pDevice->SetTexture(0,Blue);
, w9 J. q& P5 N0 i1 {3 x: G! ?}- C! S) {; B9 N, |+ Y! l* O

/ j! B: V4 L; O5 v" [9 p- p
- \" `+ u0 I6 F* M0 ~{1 V8 M' @8 q% K( }0 m
pDevice->SetRenderState(D3DRS_FOGENABLE,false);
) i: B$ L! O  ]. r' o0 u: R+ R, e}. C! g) ]7 j. e

) d7 V. F7 I0 p5 D! Y  @/*Logger
! E* ^& x( s! ^/ I/ a" V0 Qif(m_Stride==40){$ z0 ?# v8 W' e$ F; w9 l. }) f
. v, G8 p& u& o& J' H' R1 c$ I2 R
9 X9 I0 d: W1 v7 b/ r3 [
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
0 y: U" J  M* d; lwhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;" F3 p4 i- L4 S
bool alrdy=false;
- T5 _: r6 k# }! X  V0 i' P  o" Bbool inarr=false;
. c* H. s5 s5 G9 h/ x
$ T7 l  v- C4 t- Jif(texarray[arrc]==texnum), B' W3 M) y( N" }- }
if(delarray==texarray[arrc])
/ R3 i) V4 w0 |$ I  Halrdy=true;
1 F( a5 S  Q% X( Cfor(int i=0;i<dcount;i++) //sees if said texture is in delarray
5 X/ s' Y+ r7 l0 @if(delarray==texnum)
) F: V. W5 P* j( Y: ^8 Qinarr=true;
  q. @  l/ P" D$ h' c/ E. y! @# bif(texarray[arrc]==texnum || inarr){ //If true, color model differently3 H* O8 f" B' X/ @1 p
LPDIRECT3DTEXTURE8 texCol;6 u) `) D8 j& S
DWORD dwOldZEnable = D3DZB_TRUE; ; l6 r  R9 H! U
pDevice->SetTexture(0, NULL);  H! }1 o+ d. m" i" K
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
' X+ R3 R! v; [, o6 q4 r, _( p* {7 U  RpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);9 o- G* e  }- u# G% ?; K4 ~! a" o3 s
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)  `' ]% y2 x  I; Y' ?  `" a9 o) {
texCol=Blue;7 [! ?0 J# Q3 Z8 e8 V" P3 c
else6 c9 y+ j& |1 ~$ f) y, h3 @
texCol=Red;4 |& [! u3 v' i' h" S
pDevice->SetTexture(0, texCol);2 e0 Y6 U2 C& U7 @
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);5 ~) ^! ~& d# _) @2 H6 @- m1 K+ k
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);' M2 E2 B. ~$ W
- t3 @& }/ t' t8 p
}' _6 L4 Z5 l' E8 O
}# |, |# f* J# ]! F+ Q
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile
5 ^: W3 M. w' b: i) m- cif(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array# |. c4 L. F! z7 P, U9 S
bool inarr=true;
2 |4 g7 X. a" J. t0 T2 k  Efor(int k=0;k<dcount;k++){8 c3 V  h, ]2 S! z
if(delarray[k]==texarray[arrc])
6 t4 m( z5 L+ P; w( z$ S, s{: [6 Q+ u. Z# T0 S$ K( P
inarr=false;//Found selected texture to already exist
1 D8 w5 H( @. ^. zdelarray[k]=0;//Delete texture9 M9 b! X  D& y2 L0 E
break;//Cancel loop
9 P: N7 A2 i+ \) O) ]5 r}/ z: Z1 i$ ?, R; |. E0 f9 _
}1 b; R, b+ E# W
if(inarr==true)
9 x2 J/ v1 T& s% ?* o{
4 R; {$ O- U2 Cdelarray[dcount]=texarray[arrc];//Add texture; A% m, \  l& C* v  ?# x* M
dcount++;
+ {! }' m2 b1 R: ]}
8 J( A8 z+ ?% \. s  x" T7 q2 i* G) ^}
  k! _$ k; F' V+ A9 v; |if(GetAsyncKeyState(VK_F7)&1){  [$ D; h2 O6 ?/ W$ Z/ y1 j
int total=1;
; x# |  j' M, t0 e7 S) f: f) ~: sadd_log("omfg values?!? {");
: B! b# k; V. w! o$ ufor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
! s4 s. _' y& E, q. U/ A# q7 Gif(delarray[x]){
3 ~% E. r! ]2 @7 \/ l( c! Uadd_log("%i,",delarray[x]); //add_log2==add_log but without endl4 U- R2 ~$ b! t. v
total++;1 Q/ H2 J$ _6 w! q* A
}' R& A, u+ G5 T" B( w3 y; Z+ d; \- q
add_log("}; %i variables in array",total);- \  ]( n6 I9 C1 o% |& {
}
$ t0 R6 m5 [4 y# p+ d! R( rbool found = false; //THIS PART CREDITS TO KRYPTEC
9 X3 D# [2 c4 K% `" ], Qfor(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
" H# ^2 B1 a, G8 d  @, \; ~6 M{/ q1 w1 I% w8 [$ o9 b
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
# L" P$ {! R( Y7 Y# q}# h8 U* D4 C4 T/ k2 u- }8 J
if(!found && arraycounter < 1000)+ L. S- |2 K; R4 Y0 h' @
{
: _4 [, [" H3 T6 P6 Ptexarray[arraycounter]=texnum;
% X" L/ u- G, C* N7 ?arraycounter++;$ d( m. D! N: r9 i6 d
}*/9 q: C% R' a1 T) c5 F- t, i( |

5 L& S* j" o; X) Q0 |
1 L* Y4 ~4 n# e  Z: F: X# X4 l}
% X8 H5 W: ~7 r3 E- w! `9 |return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
6 z5 t6 e( F/ x& O}  B" u, G/ q$ W0 Y+ D
//=====================================Dip_End====== ================================================== ===================//. J  E7 _% Z5 ^: p3 M% i7 S

# Y. V: ^% S+ Y* d- ]4 A1 Q% o1 q) D; _* p$ L
//=====================================Sss_Start==== ================================================== ====================//
' g$ f2 ^5 i( v" [3 |typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );, m& r2 F7 g! M' e; T1 q) g
oSetStreamSource pSetStreamSource;
9 O0 i5 g# }- \3 v( M* M* X$ f% U8 e- H3 h
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
- D- D% D  E5 B. M; ^8 O1 ]7 c{
* |1 h  q! V# u' Z5 {& pif(nStreamNumber==0)' D+ L$ E" C/ N, ?
m_Stride = nStride;
% H$ v6 {6 `' N- d% t8 |: K  {" B* X' }1 S( e8 n$ s' ^& I
return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
8 T- ^  x4 {% v, g0 V; m}
7 C* h7 b# |+ y8 Z7 Q& K% Z//====================================Sss_End======= ================================================== ===================//
/ @( f3 {" A; F1 m9 v/ |" x4 t0 ~2 o$ O4 n3 z9 _+ v+ n
//====================================Svp_Start===== ================================================== ===================//
- C9 O! j+ ?/ N% j- |1 |5 V2 ptypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
. X+ \2 `, c! x4 f. _8 ]+ QoSetViewport pSetViewport;1 D* {" G2 m1 ~- e- }- K" Q

$ S3 t) [; o& N  i* vHRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
8 a- k' ]$ U1 e+ b& P0 |' V+ y. y{
6 Q4 M6 M& Z! ^9 k5 lScreenCenterX = ( float )pViewport->Width / 2;
+ D& L+ @9 {& P* ?8 h& v* y4 j* RScreenCenterY = ( float )pViewport->Height / 2; ( c3 c" ]/ _, H1 [

. p# J! J- {; b4 ureturn pSetViewport(pDevice,pViewport);
" B/ A3 E4 B4 I}' r. u/ h. @1 S& t9 j9 s
//===================================Svp_End======== ================================================== ===================//
# Q3 n& m* G" c! s8 K( i8 E" A2 u4 b4 Y: x* d
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );8 x# ^- P. @& c$ @
oBeginScene pBeginScene;% K' q% b% R$ B7 V
; }/ @: C: H0 I) n" f6 P
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
7 `; ?" r6 e7 j* W1 e{0 d. {  u3 [7 v9 N( a& ^9 k& p
if((GetAsyncKeyState(VK_F6)&1)) & M# k6 v' o; p- [; P1 Y  d% x
{( B0 Z0 ^+ d- P, f$ \+ X
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
; n( d( G& {! C! l8 CpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);3 @4 s8 T" Y, U
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
! D; h: I, _! m; L$ M7 jpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
" R0 O! i8 V9 ]7 J; x7 ]! Y}
* \( R* ?4 M2 ~8 O
% e1 F4 w1 ^$ j9 M: ~0 o$ X/ xreturn pBeginScene(pDevice);8 a' u" d0 m. b" y3 }* `1 r
}
7 ?% }: A5 j7 w3 g- \; I7 I( u5 O: i( Q
$ S1 z! m, ^  P5 E! N9 ]* h
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )$ f  U0 j" [( u6 t: I5 B
{
2 `# J4 p, [- G4 BDisableThreadLibraryCalls(hModule);
. R5 U, J0 U/ t3 R2 d6 e1 j7 B9 F: A+ A" i2 \4 M, h# ?
if ( dwReason == DLL_PROCESS_ATTACH )
5 q+ w0 W1 I+ V8 t: M4 n{
% r: O8 \6 Y  D' H9 F7 {. G: z3 l
" y$ x' g0 V. Q7 `2 c, F6 D//=========Log==========================//
0 O, F- J8 F8 d5 ]# x4 qGetModuleFileName(hModule, dlldir, 512);$ M5 y/ m7 V8 {; n3 p3 \& D
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }+ g. q, N9 Q. @8 T
ofile.open(GetDirectoryFile("log.txt"), ios::app);
, J4 t+ ^5 E$ ~- W0 Q$ F//=========Log=========================//
) O- N0 I2 J; X9 C" G# k/ J; j, f: T5 g/ Y, y/ Z
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);1 R7 q1 |4 ]+ J" e( O/ a
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
) ]" _; X. `! S: t2 a7 W; qpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);! J# g& o% |8 t8 o; `
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);- m# w4 ?6 d0 Z$ w5 e, u7 }
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
+ J/ f/ k+ I: s/ o8 o! s: D4 {  @' W. q
}; O& i4 {4 k/ |1 N4 v8 g
return TRUE;
% ^/ f- `# O& Z( ^" ?" d} 1 ^4 w& L( G+ l& F* F% Y
, J4 ?# u) ^" {4 t' H+ i% X
; @1 h3 K9 \8 h8 o% j. ~* N8 \
Log.h (The header File):+ [1 F6 X# w% M8 K; R6 H* w
6 F/ W' r3 D/ H
#define WIN32_LEAN_AND_MEAN
$ i4 u3 f9 Y! t7 }) d
  m! [4 f5 Q) E2 C#ifndef _MAIN_H7 e4 ^  ^9 ]( g/ ?
#define _MAIN_H
% f1 ~* ]+ Z0 z# ?4 `9 }# n" z6 F. a( A' t% K- c
char *GetDirectoryFile(char *filename);; d- W+ s1 ^  a( w
void __cdecl add_log (const char * fmt, ...);
- r* T# ]- z9 @( E! m, ^) o#endif
2 I9 t/ R; Z" I, M  z1 g, @! ^" D0 o( g7 D
Now after you have built your wallhack you will be able 2 find it in :
* L" T( l; P2 E3 w1 ^$ fC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
) S  S( c+ l/ D1 W: Z1 o8 d' J3 Z) f7 K
Now I will show you how to make your wallhack undetected:3 R' D0 o- R9 ~4 K
1. Download D3d hooks
: H2 \# K/ h4 J2. Open the file that says "create device code made by me.h"* n9 V, j9 w- r' a
3. You will need to make another header file in your project and then put name it create device and paste that code it.
9 a) ^: z, d: V1 t4. Your wallhack is now undetected.. [1 J2 A: r" p0 _8 t) ?$ E

! k* d: S+ |* M  N# V: p0 nCredits:
9 \$ W" ]6 m5 t# I  c  M5 G, P1. ME FOR THE TUTURIAL  p' d6 i3 ~% n, |3 r3 ?% r1 ^
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
$ J) B# w) k) {2 x* j& ?3. FATBOY88 FOR THE SOURCE CODE
) ~: ^- g/ x2 ?& w$ v: ?" ?' u% B4. THE INDIRECTX I JUST FOUND :P
, {4 r. \/ A4 c3 H- F- ?$ Y; d8 M* \& @
Attachments:6 a, T9 L$ W3 {) i
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
/ `" }) P" ~1 U* z0 N7 X1 O; lIndirectX: http://www.mediafire.com/?gimzgmeny11
. G$ X" v# q7 [! D$ X& jMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5
+ r7 q# _1 b; a; ^# P' [3 R: |SEARCH THE LAST ONE UP- a3 ]1 ^# E# Z
__________________
$ D0 S4 p0 G& J: C" I" o; X  \/ k4 E
<---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。
+ U% ~; W) \4 ]7 K' q# T" o主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。
+ `7 W9 H. o' u+ p7 x' ^这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。
  i6 C, r- g& f+ j( C7 j# N有个帖子,简单的说了一下,以后还会有大量资料放出来的。- m: h! m5 b' N3 p$ q1 z5 N7 Y
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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