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

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

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

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

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

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

原文! a+ A0 i) g3 a+ J! X' }: W/ s* i
http://www.descipe.net/forum/sol ... -your-wallhack.html* i& G, i2 _; u

( I/ v  ]: X/ D: f$ O2 l; V3 E8 A视频教学
4 o0 N5 q. ]& o+ Khttp://www.youtube.com/watch?v=6b5XMzT-b_U    # R  G# l1 d- q" g
* O- t9 _2 A. f# o0 G
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
6 Y; A7 c7 Y) k3 \) ~! K% t; t1 F+ k$ p( i( a. A0 U) b
Hello shane007,5 ?; y8 R" J1 ?4 c. g, G' q) x& ^
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. 4 H' s) W# g, b$ Y

: ?5 s/ n4 z$ i/ y; eWhy not start with your first post today and become an active part of DEScipe.net now!
( ?% n% Z1 }, D
) @- U* |0 k+ Z' G0 S9 ^; _  S9 k/ u9 P/ L7 J/ w+ B
  
. N" c0 j  Z5 g+ v" E$ P. T3 H   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats    ?& p* S3 M  f
How to make a wallhack and how to hook your wallhack!  7 w! v+ x9 I. I0 U/ g, i
Welcome, shane007.
9 \( [5 M% O7 m: [! Q, W3 nYou last visited: Today at 03:55 0 s# W3 t* B- y: F: ^: B1 f6 ^
Private Messages: Unread 0, Total 0.
; @9 A6 `2 F3 T* T) }Credits: 200 [Check]  4 W, f; f) a5 S, M4 R0 U+ `

! U, e9 p4 {+ x5 N' wHome User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
, a" w; m% t0 k# m; K% f9 @2 Y+ w2 n9 ]+ J

8 o7 z5 S  w) i0 K- B
  |# X' Y. S2 Q5 v4 c! DSearch Forums
9 h; |  |6 c" S# x      9 @( c, \4 w; p& ?% }0 N, s

0 T& u8 b! g- O+ r1 f9 ~Show Threads   Show Posts  
, e& S# q# F4 {8 J2 z9 EAdvanced Search
& ?' A$ k1 s  T# tFind All Thanked Posts 8 @, I# J" ?3 ]( S6 q

. q' v! [) A1 H" i7 RQuick Links ' V& Y3 v2 z% q/ m6 Q2 d) {. c0 w
Today's Posts
5 r- w" \0 @$ Z3 UMark Forums Read
* H9 F2 s- x# Z8 y4 H5 K" @: c ! B* g8 `% ?( `9 Z) {4 Z
User Control Panel
2 v) w. O& E5 xEdit Signature
3 c* Y* n( k& e" }" h2 R
1 P& [7 \  ]( WEdit Options
- D# l* x5 R# E8 [; i& qMiscellaneous
8 t% s. P' O0 e- h$ oPrivate Messages $ p8 o+ u9 j0 x# V
Subscribed Threads : b6 X2 F2 O8 x' Z

( Q  d8 ~. I. R5 BWho's Online 2 v" o  m6 e- D, K3 z0 g

, h1 w+ U# {7 G  n1 X: o' AGo to Page...
6 n5 L) n4 n1 A' ]) ~# ^   
! Y1 J# Z* \/ qHow to make a wallhack and how to hook your wallhack!
( A4 {* i1 R1 E& F) \, D9 H& p- s& eThis 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. ... & c0 D7 D4 B4 c7 P6 t) D7 M0 N5 D. g

) m$ l2 K$ v4 `" L5 Y+ F- k& V    Poll: Was this helpful?  
3 d+ u( v  T* l8 I7 `" FPoll Options) F+ [, r/ D; \9 d6 _+ P
Was this helpful?
4 _1 m7 {$ Z5 H' MYes, I WILL press the thanks button4 D% P) e0 E2 m  o; g# b; o
No, I am a failure ) A! h$ C+ J$ f9 V$ G& k# Y0 A( w
View Poll Results   
! N; u* ^( Z- o5 W8 b( ]6 m  V: J# A+ r3 e6 v' P
Page 1 of 3 1 2 3 >   4 v; D; W: S+ t' Y

$ @# p. Z% d7 e$ N& I, {5 i4 \( A; p View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   ( D) g5 |1 p9 _
4 y0 A5 X) H) U- i3 R& Q- b# K

8 F" U, f: v5 @7 F  
8 a1 ~3 Y# _& ?7 k 05-02-2009, 20:49    #1  4 @" y- U2 @4 w, X& ]
killax9 : B5 b+ U; h5 \3 a/ y
Punk
4 Q5 E. c% e, i+ L% i& r
- d' b- F8 D8 I" b" Y " v7 l, s( S7 q3 Q0 k

1 Y4 w. u* u& b0 q: r. o4 |$ k
; G7 E3 k$ `' |3 I8 {$ L! v9 J0 jJoin Date: Jan 2008
6 u( g; E* [6 f; ~# B3 O& E' }" {% BCredits: 2,701 [Donate] 2 z1 Y, V  W6 u% x- T5 u) M7 N
Posts: 103 3 Y3 d2 T) c; N1 x4 L
Thanks: 101 J+ p2 k$ t7 j/ P  s5 Y
Thanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack! ; O$ m6 c4 ]; E3 Z2 V
) h+ ?0 A8 }1 b$ m. e$ l! l9 P
--------------------------------------------------------------------------------. d  v/ [- z& F9 E  s/ g
8 x. p6 {! U5 ]2 a
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.' H6 r6 d" G! d" c( j; A2 ?2 H
Possible Undetected Methods:) m. K( K! s+ f
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.7 i" e! k1 o0 F9 d( N
2)another way **** it hack GG./ b7 {, Y# F* Y/ x) U7 Q
3)breakpoint hooking;doesnt change memory... well changes debug registers.- k3 `" o3 l6 q3 |' w
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin/ C# e, @' O1 l2 h- n- V
4 I$ _7 {1 j. V+ a: f  v+ X  A7 Z* G( e- [
Vtable:! }7 O% x$ t+ o5 \* J; i5 `0 y! k
it wont work for vista its not a vtable hook =)
$ j" A1 L: Z6 J: l1 D9 `7 ^' i5 r3 N! ]9 \
the reason why my older version worked was cuz it hooked
% X* m( Q5 t. w' {Createdevice->pointers to the functions  W6 c9 U! H  r+ T; `6 t0 k( w

( f" A$ i4 C' }( d. V2 Pkinda like a class or a struct.# }6 |/ s" h: t2 q5 r4 q( W8 Z
& r, A$ B- v. f& ^

. L: T7 O* J) ~* D4 P7 hand 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.+ ]" U6 i8 Y& ]7 e$ H: Z
+ b! r5 s% u: T; v/ t0 e2 b. Z
3rd maybe- some games recreate the device when a map loads...like BF1942.
1 p( u+ D3 E" r1 \2 ~7 O
( y$ u. _+ _# V1 @7 W  n9 rThings needed to do this:
+ r% i' D/ v1 q0 p- x1 ~1. Microsoft Visual C++ 2008
4 E$ P0 j0 n# g; _. Q, e2. DirectX_SDK_(Summer 2004)
3 U8 ~; {: ?. X/ R, `; v8 W+ @" ]2 D3. D3d_hooks% |+ P. `2 c0 i1 k, ~
4. IndirectX- {# D0 `2 Y  X; K$ ~- V5 z$ `
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
7 e3 v5 C8 v7 Q0 u+ B# X3 ~7 k0 a# }' @  T0 C
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:7 X) ]" F/ k2 v0 x) _1 @5 F* x& V
1 M& G# ~: O. a- }) P- f
YouTube - How to Compile WallHack [Tutorial]  2 r( M- l) W! |& r# q
+ g" |/ M- T2 m1 f/ D0 x
$ o, M" {" I7 Y; `0 ^$ R# o' E! w

& R! m- A+ b" w* {" J1 YDetected Source Code:
" n7 m: c$ `% ^+ w$ ]6 t" `: w6 f8 J) A
#include <windows.h>
9 g% _& U5 ]2 [2 a" x#include <detours.h>
! l, Q" }& O/ d' Q6 z' S#include <d3d8.h>
/ D0 @0 ~/ C( m6 e) _' O4 P% v% e#include <d3dx8.h>  v& Q* D2 _! l8 K; ?4 ~% E5 k
#include "log.h"
: ]* R6 \4 h+ S: U3 F3 v" a( K1 y; f#include <fstream>) y. }, R3 }( S$ J+ t6 {
#include <iostream>
1 s% A9 Y+ k; P  ?1 f#pragma comment(lib, "d3dx8.lib")
4 M0 F9 s; C6 p6 _+ l#pragma comment(lib, "d3d8.lib")
3 p( T/ A& m# Y% M; K- J7 K, W  ousing namespace std;" M/ {* U. t/ D2 D4 J2 G7 w
static DWORD dwBeginScene = 0x6D9D9250;- f" q) r2 M1 y; b" ]5 a
static DWORD dwEndScene = 0x6d9d93a0;
9 G0 S- f# L& i0 ?static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
, X4 G" m7 ?+ G* C: _+ W, h+ }0 `static DWORD dwSetStreamSource = 0x6d9d6760;
6 W% @# i5 G! @- K" u% Cstatic DWORD dwSetViewport = 0x6d9d5b90 ;
' e8 }5 z6 J8 P% g
7 @) ?5 r8 M* S9 E# A- Q6 U6 L8 L+ I+ F7 j6 F" \3 X: y
int m_Stride;1 Q. C3 t8 v3 E7 O
int texnum;" s3 P, }2 }3 `* a- c; M
int nNumVertices;, u& T8 Z" R$ z8 X, s5 K- [* K% D
int nPrimitiveCount;3 `) ?1 p7 J, H8 V* E+ Q
; ^; U/ E. q8 J6 K
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
9 {: L% o, d9 p. O& jbool Color = true;: g7 p' A! X8 u. P
bool Logger = false;' F) a7 X% ~, k$ x
ofstream ofile; + M2 F$ K/ y( K) W' i1 P- @/ r
char dlldir[320];2 L6 p0 `9 w% e/ l9 E
float ScreenCenterX = 0.0f;
& L1 z9 I. ^! H3 y$ W4 G! a0 [float ScreenCenterY = 0.0f;4 G- d7 s9 j4 w: A$ L# W
bool xhair = false;
( ?9 G- H4 g% {+ D& s/ d! o% X8 Jbool WallHack = false;
# j& W  T# m* Q* Gbool WallHack2 = false;4 r& c2 A1 X: y# ]/ @
HANDLE hand1 =NULL;: e, T3 v- a0 t
HANDLE hand2 =NULL;
' o3 ~% j( e6 S
% h3 K4 t& x" t" ADWORD bytes;* r6 H7 f4 I' X4 z9 }3 @

2 G3 V8 `3 L. ?$ x( w//Logger
9 K; D1 ]9 v: i9 Z! S9 r, oint texarray[1000];
6 g% t1 q8 `" ^$ h' n  k# J* S9 Hint arraycounter; * P7 P: E, [: O* w# s) L2 q6 ]
int delarray[500]; ; x* j1 O& V- I. S; f3 }' ^6 E( p
int dcount; 0 F, O6 q1 v9 W/ t
unsigned int arrc;
( V* l; S$ S3 Q7 a3 E, ~8 hint i=0;) p0 g$ b& ~4 W7 H8 G3 Z
( Z+ @2 R, w$ Y, ]' |+ _

+ n4 p# u$ ^. |/ R  l7 a! I" DD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );2 D' l6 z0 n3 y  r  w

2 R4 V& B& b) J% u$ q
# c& \* u. S% ychar *GetDirectoryFile(char *filename)
% {7 S5 x6 i0 p6 M/ n/ r- L{
% N" a/ D. O) \( E( v# ?: Zstatic char path[320];
; k( c5 [1 e8 l3 estrcpy(path, dlldir);
$ _1 a' o  F7 e2 q7 u6 nstrcat(path, filename);* w$ r4 a; G; u# f
return path;
2 E) |, ]7 d( ?  |$ T0 R7 f. t}
+ U8 \/ `- d- r0 u. V4 n7 t. R: C/ A4 A' j5 _3 A8 C) @
void __cdecl add_log (const char *fmt, ...)
( Y( n( K6 r! q{
; _: Z. h5 @6 Q' @if(ofile != NULL). k8 A- X* C% c8 z
{! Q& O! t2 W- I! Q& J
if(!fmt) { return; }' D0 s" U' b& @. x% m4 S, @8 m

6 h  ?' T. U9 E8 g  _" y8 lva_list va_alist;  {1 k7 q; G  K" i6 ?
char logbuf[256] = {0};/ t( n( j2 d( ~3 {- I8 H) p; m/ E/ V

3 G+ _2 j( W6 c* u& J* [  Sva_start (va_alist, fmt);3 t6 P+ v( }- j. p" b
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
& d7 p2 n& T4 N5 `& b' xva_end (va_alist);
, Q4 t. r0 y% q' [+ \. T& f$ t# r8 M9 F# q% l
ofile << logbuf << endl;
" a# J% {3 ~2 N& m9 t. u}
4 A% V7 C7 P9 ?; p- [* N/ q}
$ L0 Q. ]) H2 z$ E5 M* a0 P' z5 A- T% L1 g5 E8 j& z
HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
3 l- y9 F, U+ o, e8 Y{
7 p$ {$ H% H2 o- y. A* Oif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )) w; }: b2 h; O0 {+ I6 `( k$ T+ Q9 W
return E_FAIL;
2 N4 T0 @; V  c& q8 O: Q8 T! z% m1 o! V5 u9 H) y& P
WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12): U& y5 {6 U7 H% w
|(WORD)(((colour32>>20)&0xF)<<8)+ L* b1 ~) b: g7 ^% F( B" ^
|(WORD)(((colour32>>12)&0xF)<<4)
; x' T5 p9 h; Q' [. I|(WORD)(((colour32>>4)&0xF)<<0);
5 v; t9 f- D1 U* x! |& }* V* V& B2 _  T& U: z' _3 F7 u% a9 Z+ X
D3DLOCKED_RECT d3dlr;
8 i* n$ R) a0 g1 _(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
: n0 f0 V1 ~2 V2 v# _- UWORD *pDst16 = (WORD*)d3dlr.pBits;9 H8 X4 R- \  H0 J* |, c

. k8 z: a! U  [, g' Cfor(int xy=0; xy < 8*8; xy++)
! ^( V4 i" \. P; e2 U*pDst16++ = colour16;! S$ x) p1 S- |9 J( U

( G( u7 d8 {! G(*ppD3Dtex)->UnlockRect(0);
+ L. n" x7 K" ?& N1 E3 k$ R# q# |) m
return S_OK;
1 g# @6 B' _; n: w3 }}2 z# N& Z- ]4 {+ s5 T
" Y* P& H  F7 x* L. C
5 N) V1 Q  V5 U* r" Q% j
//=================================EndScene_Start=== ================================================== ============================//
& y- M8 Q/ i/ K' D& Y) R! G1 U# wtypedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
  Y$ L, @9 l. Z# Y- h( aoEndScene pEndScene;
3 Z4 ]& \* K$ D1 e% `; s$ }" ?2 s: g4 ^  q& e. J
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)- p- I/ w4 w/ K- X' D
{
4 e3 G2 q4 d5 h0 {5 y* }if(Color)
  r. {( ], |! M# n0 |{
% a8 T9 V4 `0 i, `2 RGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));) P  F/ P% p# w  v% L0 a3 N/ z
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));3 d0 L4 R. Z7 D- Q) v  q; V
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));( B9 M5 U% E! J& ~8 J/ Q
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));$ t9 J" N. N# M$ q, z. o' T$ \
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));; Q& y, w  Y9 s4 g
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
4 L3 U; i  D* b% ]" h; }GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
7 {- ?% D! s* g& RColor=false;
0 F0 e. v$ Y; u( E, P0 u}
6 ]  W. y* w1 j+ e% d5 U( X
, L) P7 D6 j8 c) A6 [: y& Lif(xhair), m: n4 s  t; f0 |
{% a! G/ ]$ M, _& X) I; D( }# j
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
0 r4 W- I8 [6 S+ K: r; cD3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};( y& x4 t- `9 S* y) j* w- a
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);* j+ p: L% E; D* q9 n
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);2 V0 i9 x$ ?' _! M* _
} , x4 d, |5 B( t4 O4 _

8 X7 I0 O* J6 j4 M//=============================================UnHoo K_Start=========================================== ========//; d6 c' ]5 y! T: b. [) e& W

- u' K6 C0 g% w8 c0 ?' Hif((GetAsyncKeyState(VK_F5)&1)) 4 i" l9 @. a# |8 Q& J
{
5 T% P7 Z2 N( D; |. Y' F& U- ^" [int end =NULL;
& S% l. n, ^7 S# Oint dip =NULL;5 ]# p+ P: N3 H
int svp =NULL;1 H6 ?$ m5 B% M
int sss =NULL;* a- o9 x- t. P, I
& _: o9 S* q- H6 v+ f( H* n9 e
7 M+ H6 a/ ^* |) R% e3 G$ R
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
# B$ F: g1 Z' Y9 W) v% Nhand1 = GetCurrentProcess();
5 x- y% J- I1 v, `4 n6 E1 nDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
  M, [1 [" K+ [! L- E/ h3 Cend = 0x6d9d93a0;' |1 k' x. M2 ^5 |4 `: _
dip = 0x6d9d73a0;
3 v8 S" e0 H- L/ isvp = 0x6d9d5b90;
8 f& |3 \2 r4 A. v4 a3 osss = 0x6d9d6760;
' }; W1 c$ Q" d! t/ [! v
3 Z  J/ ~* @) V1 p& b5 E9 w2 JWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);2 E3 M2 r# r, M  q8 ?
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);# ]- b+ d( m) ~9 M  [& @2 o/ K
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
! r3 O0 p4 }* RWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
/ [& |2 P4 _' C! D8 L  a6 f" _} - ]" n, B8 k3 a5 [: p+ _+ S
//=========================================UnHook_En d================================================= ========//
  k% l$ G$ }3 k
; S4 \" m+ A6 g5 P! e: n0 nif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;}
4 z0 P0 c+ J/ nif((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 3 S9 k% M3 X5 K% l3 U( o3 S

/ h) M+ L( T% ireturn pEndScene(pDevice);9 Z; e0 J2 c. X& r, O8 h
}8 V5 x' Q# v: y
//====================================EndScene_End== ================================================== ========================//
9 _  B. o2 V# \7 [$ @9 ]# I$ A  X$ {+ j) h
4 a0 j$ f* F- g7 {: [6 W, L3 A! c

6 ?: g+ V) E& Q# F9 n/ L* e7 F$ E  B% h0 R' H" V
//=================================Dip_Start======== ================================================== ==================================//
0 s) B: g  D- s# J0 R( [9 D9 h* M7 }typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
, E% ?. j* \/ d( w6 r$ JoDrawIndexedPrimitive pDrawIndexedPrimitive;+ v* K9 I5 f# m+ D% R1 P" `; ^% R
/ L1 W% p. R% j; a# z
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
- C8 ?7 |4 {% ?8 c9 A{
* M$ J3 z0 v' M/ i/ w$ n6 W( h  W
" E. c  e8 \# N/ k- n- c( o

+ }) Y2 P! W* P- t' }
/ U2 o* [- ?. v, g* P& b& @. Qif(WallHack)
' x# e, |2 B5 h+ t/ d{# W- U( E- |. T6 k; t& J4 ~# E
texnum = (nNumVertices*100000)+nPrimitiveCount;
5 o5 S5 S1 }" vif(m_Stride==40 && * [1 v  j7 Y2 r' l* D

+ {, ]5 @: Q( ~1 [. n(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||+ U$ d9 Z: \4 j6 b: @4 e8 k3 R
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
& I; j) C) C# L6 R(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||6 E2 u5 I# [  C" S6 N5 _* `
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||9 e! n3 c, z7 q- i
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||% I4 }' S- d  w3 ?4 x2 T; @9 w6 g
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| & P  ?, I/ ~9 B+ Z) {0 W
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
! S8 L9 Y; X2 }9 G# U: y: V2 @(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
2 Z2 h8 z$ K0 I(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
! A$ o* Z; W4 N' ]6 a(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
3 N: g: s4 `$ d(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&( n( V$ H0 X. i5 _) p4 P& M7 \% k7 B

- T$ e: Y, c' }% [
2 E% n+ ]7 P: `) F8 N
. t# l/ H5 N, d# O; M9 \(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot , K8 a  a! l: C1 u7 s. N7 X
(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm ; ?, C  r" t& {( `6 _' R7 {
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
9 i' D; J7 c7 s  `- b, x(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm 5 }  B0 S  j. |/ i3 n
(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)
/ Z; F% Z+ @! A//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
! E1 Z1 c6 i' L& J: p(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
8 V0 A( b+ @. ^; q3 I(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
: H( S7 }! e+ a4 p(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants  k' e6 I/ q2 L3 s

0 z: ]  Q( ?4 w% G{
! ]3 N! Q' K% H' X& hpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);, F! i3 ?, i7 H, v+ N
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
$ X; \, i) ]$ I% apDevice->SetTexture(0,Orange);: m, M" X( P2 v" v6 v3 P
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );
: m  ^, g) N/ }0 m! q9 E( P2 [8 ^1 P& b
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
/ ]0 w  J9 T: b% o1 [2 s" G% A( v
3 @! X6 M9 _7 r0 L  L/ c//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
- O, F+ Q# h& d5 f' ^; OpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);& B( x" c2 c# }3 x2 j- K
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
7 K: t9 [$ g: Q& |$ V8 gpDevice->SetTexture(0,Pink);
& k- W% }/ {, F: h& \}
6 p) E* M' s) n* L
9 {4 C5 s7 [) q4 Jif(m_Stride==40 && texnum== 21300174) $ x6 `4 M6 o* Y. k; n& L
{
% b5 P2 A2 b* i0 |/ MpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
1 K$ v9 h& s3 q1 k3 R2 M7 upDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
( j( w2 \7 N( f' j+ V! P1 i7 XpDevice->SetTexture(0,Green);//GreenNade
" l: ?/ x! h/ I' X# p# cpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);! p2 L5 R& D+ O7 \) z' s3 _* h
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
2 O* R6 i( Y" W7 r: BpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);7 L0 N; ?# c/ p: ?
pDevice->SetTexture(0,Purple);5 ^% t% d; i$ `3 \, @9 M: {* G
}
0 i. O5 _. \6 I  x; s
/ v0 D, \3 a/ J4 V, P" g7 D5 P( \; T$ }! B2 r; \5 K" \
if(nNumVertices == 158 && nPrimitiveCount == 131)# N* J* P9 u5 Q" l4 ?, B' V  k9 ]
{
, P: v  W1 c3 X' V6 R7 `pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
# k7 f$ S1 l( l8 zpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
0 w' }- n  u. c- Q  apDevice->SetTexture(0,Red);//GreenNade3 T0 s7 |) m) L7 U  o# p
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);" S3 E% _# s: u& ]% V5 i3 M  w
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
; ]9 i( Z* K( O! J, B( hpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);; h, g0 h  H4 A% u) M* u
pDevice->SetTexture(0,Yellow);, q+ v; B1 U4 K  Q1 E6 C- {
}
4 q9 t* v' k) s- Y! `- W8 g% B' t9 P3 C1 Y1 q6 y: ]  g
if (nNumVertices == 171 && nPrimitiveCount == 143)
8 N" z2 M. h$ {  y0 r{% |* h6 l0 [; k- ?
) c2 E' H1 ~, v% A# K+ a
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);( l, u( h' U! ?1 D
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);: J& ^+ I) H( c4 f! a3 O' F/ N
pDevice->SetTexture(0,Red);//GreenNade) e$ l; k8 Y7 c$ W
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);& L0 D2 S6 |+ Y- K3 H6 k+ R
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);' q- G) B1 @8 K& X+ g4 a
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);) i4 X+ S5 V3 @) K
pDevice->SetTexture(0,Yellow);
/ b% K. ~5 g. n" H7 T. T, L}4 g* p/ i# v; E/ ^
) [: @0 D, F$ I" T
! f" r3 O! a; A3 l) |
& `/ f* `; y# J$ u  K" Y# ]
if(m_Stride==40 &&//face,mask etc...
2 O4 e! `) Q* @7 N0 O% t(texnum==36700612) ||
% B; T- P' B% Q9 G0 g" K# m$ g(texnum==9600172 ) ||* w. u: m) i' ?. o6 z6 X* @
(texnum==14200236) ||; X, l' S# K4 n% ]3 x. v$ O
(texnum==37800552) ||
( w  }. Y2 ?' B0 g6 L0 c( O(texnum==28100486) ||
7 q# E4 h, v. F2 R" O(texnum==35500568) ||
  {0 v3 i4 U- |6 W# F(texnum==2200024 ) ||: R. z6 P! U; Q  e& b
(texnum==16200243) ||8 R( t# O9 M4 G, B2 @  c' L( \
(texnum==31900466) ||8 ?/ B0 l& s0 l1 H% Z! M' G; p
(texnum==19300342) ||
0 E, z' Z) a1 T6 m(texnum==36200604) ||
' R! {) S* c" B; _(texnum==21300290) ||+ q+ ~( Q7 h3 d( N" {
(texnum==35700558) ||
. t: {2 ^# o7 r2 n$ k(texnum==22100396) ||5 H4 i4 M/ {' j
(texnum==36100604) ||7 S( k! C1 A4 I8 F, n' G/ ?8 G8 w
(texnum==27100464) ||" k& @1 K& o  R; b) V! ~4 O
(texnum==11400180) ||7 T0 r- k# W% L! v4 D3 z
(texnum==34900580) ||
% x: s# Y) |& B1 l3 y0 S; \(texnum==13200212) ||2 t1 W! n, [2 |# _9 [$ Y% E% Y
(texnum==34700538) ||  g, A& f5 G; F# E. t0 T/ B6 V7 C
(texnum==19500352)&&( \2 X& J8 y, v$ m$ S: G
(nNumVertices == 448 && nPrimitiveCount == 776))
7 T$ G7 g! d: X8 N1 P$ c% h+ d
, V+ Z8 `8 |9 L( K1 |! \6 n+ e{
) e" X8 S% c/ {% X% a, B' w- a' ?: Q% X6 gpDevice->SetTexture(0,Blue);- j: M% s) k3 E5 Y, H2 \2 E% u  F
}
: M* C* w7 {, \, \) ]9 N* F+ f( ?  c; S0 {# x5 x

4 g+ G/ _1 R5 t{
* N7 u2 j, j3 C9 T( qpDevice->SetRenderState(D3DRS_FOGENABLE,false);
7 u1 ]( {) D& E- \}  s. P" X: w) e+ r

4 U0 R; u7 ]  ~5 \7 n# s/*Logger: a6 R5 ?5 x1 K$ z
if(m_Stride==40){
0 e* q3 ^; A" c7 u# w2 u1 u7 a9 Y) c1 F% T! u4 k0 T
" h9 x# ?& f* [& V
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
8 ~2 x5 q; L; D( g9 u6 |while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;- N( M" J8 B  F- V
bool alrdy=false;
8 q. B: g1 G. U) t  Ybool inarr=false;
& u9 V5 s# v' z& w6 K1 j. t/ _8 h/ o& R/ U2 f
if(texarray[arrc]==texnum)
7 p* i8 K( `5 ^5 A+ X/ qif(delarray==texarray[arrc])
) s* \% y1 f* Z% Valrdy=true;
/ \, J' X" @2 I  y% I* x# ^& t( Ofor(int i=0;i<dcount;i++) //sees if said texture is in delarray
: p% I  x- J0 |$ Aif(delarray==texnum)5 I  U# ]5 @; i; }
inarr=true;
, L3 F  `" F. z) A, e% c6 a8 sif(texarray[arrc]==texnum || inarr){ //If true, color model differently, }% o- o& C0 g/ n4 g; k
LPDIRECT3DTEXTURE8 texCol;! v! T+ B5 [; r5 W
DWORD dwOldZEnable = D3DZB_TRUE;
# [+ }/ e: O# S, ]% n4 d* y" Z/ epDevice->SetTexture(0, NULL);
$ V  S% W" h: W1 D. ]9 NpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);
/ D1 _. x8 {& P7 C3 hpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
: u' \) c( f4 m2 Sif(alrdy) //Different colors for selected models that are already being logged (For removal from array)# i7 C( b5 V5 d5 H1 B7 D! _, W  q. W
texCol=Blue;# A' `  r( C  q& y. u3 f
else4 v# o$ d, G2 m, a, `8 }( w8 Y
texCol=Red;
3 s, m' m5 u) N  L( i, zpDevice->SetTexture(0, texCol);4 g* _5 y; l1 o4 X0 ~  z5 r5 K
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);' _6 _2 ?& \. A. f
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);6 l& \6 Y6 z% h: T: u/ y
5 u& N- U5 @( C+ C4 K, A) m
}( ^6 ~7 z1 O* x6 O2 O5 ~
}
8 w: [- p/ A; ~5 t! X0 Fif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile  u  C: `4 o9 i* [2 b
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array
! h, P7 d4 \) d$ r. qbool inarr=true;* ?  X$ R8 u& n: F$ j, @3 Y
for(int k=0;k<dcount;k++){
( X' c- J$ B) C3 Wif(delarray[k]==texarray[arrc])* f4 H) q# ?! n) v2 h
{
$ v6 Y; p" }/ X3 linarr=false;//Found selected texture to already exist
- S4 y# t# u7 }- l/ e9 Ldelarray[k]=0;//Delete texture
( h* I* R- B/ I! L0 M$ cbreak;//Cancel loop5 O% l/ B5 ^* H3 o  a
}
% q8 r% |" n% |: Q4 ^}
- V% T0 P# ^; G8 `4 P) k* ^if(inarr==true)6 X5 y6 T& x/ q+ s1 m* @3 E" p- s
{
& D% B% W$ S3 m! O" ydelarray[dcount]=texarray[arrc];//Add texture
' j9 I5 d. }: |6 ]dcount++;
- r9 P9 m( j# I6 c* @: x. y0 g5 J}
) |6 Y- D5 \, Q: }! c}
5 p# l: g$ N6 \if(GetAsyncKeyState(VK_F7)&1){; X1 R' u1 k1 o
int total=1;
+ S3 R6 H. ]- e  e3 dadd_log("omfg values?!? {");
" G; Z" O8 h7 {( O6 T$ I! A/ Afor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
9 ~* q  `. D( ?+ j4 c  \9 sif(delarray[x]){8 L! ^1 R* @3 x# Q+ }% J
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
, l0 h- c# Z, T" ^% {" htotal++;
  N" Z" ?% H0 N  i+ B2 x' K}
4 R" l; T6 _. s/ w1 a, z" U8 w7 vadd_log("}; %i variables in array",total);
1 P2 A! ~6 f3 m# A. W. a}
' [3 ]. g# W4 m+ C, a. Hbool found = false; //THIS PART CREDITS TO KRYPTEC! a0 D: z: i  y+ k; Y' |0 i) H. X
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
# [9 Y# Z! @3 }- U/ ^/ @8 [{1 G# B+ z6 W+ V* L! v
if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT! R6 h1 O, F, m2 v% [% m1 ?
}/ c. D. W# P9 q5 W
if(!found && arraycounter < 1000)
  K5 W% \) P3 a. q$ E# ^{. d# }: S! j. }+ Q* d2 p2 z
texarray[arraycounter]=texnum;3 R1 Q! s8 T$ W" [7 D  }! J  Z; V
arraycounter++;
9 W6 ?" _4 G! J. V. c) W) X. o}*/& [/ n* c! L* h5 Q& x
& G3 I  Q+ L! ]& R+ r" A* d

* L- Y( C4 l& o/ Z% u+ n}
$ n. B& a% m7 m, V+ k0 P, Ireturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);( O6 y8 b. R5 T% `- D) u+ Z: g9 `3 b, ]
}/ {: s- f1 d& w1 _' p
//=====================================Dip_End====== ================================================== ===================//
+ v' t/ [- X" o0 C* |: ^/ Z
' i. A- [3 r$ }9 k" a
$ W! o' m: ?) l0 B//=====================================Sss_Start==== ================================================== ====================//
) h* K1 i7 w; E* |9 C$ A* \. gtypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
( `7 R$ c3 {  W- x5 coSetStreamSource pSetStreamSource;- `: ]7 P) m' @5 x3 h, e: K% q; ]
: n' d* W* U8 l7 r, b5 d/ n
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)8 P0 ~% f9 ~& a. ^/ d8 ?9 ]
{& o$ \! C5 O5 Q
if(nStreamNumber==0)
6 u3 w! B- @% O, p6 A, A: mm_Stride = nStride;: t4 n+ g, \( ]$ q9 s! u

4 M1 l7 W) L+ @! S7 ereturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);! x; a6 j* j: e9 O
}/ g& Q. `6 x% F# G
//====================================Sss_End======= ================================================== ===================//
- K: z# J1 n: b0 d+ M& y( ~! B: w9 n* }* q% f
//====================================Svp_Start===== ================================================== ===================//
" s' v# m0 k; s" [6 Ttypedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);& u  B+ B* ]& c: l9 U' ~
oSetViewport pSetViewport;  K& f8 ~: h' e3 E/ z! t( D

4 }" F$ |- _; w5 MHRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)
4 r  t; g" D+ |1 _; Q{0 J0 e- {  D" ]1 M6 a* V# E2 R$ |, X# X
ScreenCenterX = ( float )pViewport->Width / 2;
0 L2 v" x$ J7 p2 z5 FScreenCenterY = ( float )pViewport->Height / 2;
+ B9 Z( U6 p. F' x/ u9 w! x
& n$ a: G. J: \" X, ~7 Yreturn pSetViewport(pDevice,pViewport);
$ H! w, v  P8 ~$ t6 K1 f% e/ U}
( A3 X: d# U+ z5 _4 ~6 F//===================================Svp_End======== ================================================== ===================//
) y6 L% X, Z$ e9 O& ^- C! [% l0 B! [( p! A. d4 D
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
0 X4 F; P: r7 b# KoBeginScene pBeginScene;
2 ?2 \, a9 R* Q& L
4 L/ k  S8 s- ]4 o$ {HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)& }  Q" a1 n; X* U% B4 j/ x3 T4 Q6 G
{
' R# \' d. ~# I- U1 sif((GetAsyncKeyState(VK_F6)&1)) , k+ `/ L2 P5 r/ @2 W& q
{9 W/ M. o% k( m0 s2 N. g* `
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);3 ~/ i( |- m$ w$ Z$ O
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);# G+ Q" {" ~- f
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
+ }/ O6 N" M; }pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
4 {! d9 O% G3 M+ A1 |: b4 J}: ]0 w8 q' d4 l3 `

7 A5 W# M8 a: J4 m, n5 ]return pBeginScene(pDevice);
( V+ _0 M* {* |5 ]}
: u$ `  b) `5 ]% g4 J2 z  p1 p3 |( i) n  v, [: ?, A( @5 Z$ ]+ U

* q0 i9 a9 r. R* }. p( YBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
& T% q2 i$ [3 C/ E: g( J& l& s{
  y8 r" v; `2 H8 R7 x( g7 gDisableThreadLibraryCalls(hModule);
4 t8 @8 h2 p- J
+ G2 G' n% s/ Aif ( dwReason == DLL_PROCESS_ATTACH )
& l! x7 |) i3 B& v9 Y1 ?: |( r* y{
+ |3 y* R& q9 P' U
; c+ Q9 @) ^/ ^& @$ M//=========Log==========================//9 s  h! i4 g2 E# o) u
GetModuleFileName(hModule, dlldir, 512);1 y% b6 @5 t) }5 e* b
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }6 O- `( y3 Z+ V) B# t
ofile.open(GetDirectoryFile("log.txt"), ios::app); , e( Y# r4 X0 y: u& G* C# B5 s
//=========Log=========================//4 n. L: K0 b$ P4 ]" r% m. @
- @5 M- W& J0 \
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);: W8 B- G, v7 J+ {
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);3 o+ J, d/ Y, s9 L6 r) F
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);$ y) E( v; J  a% I" ]
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
1 E& ]/ F; g* v6 r% F) d% R8 |pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
" E5 T2 z" r7 {4 B$ `9 ~" z
) i$ o! ]; y) ]9 P' m# ^}1 y" x, v5 O( {3 a
return TRUE;% O: M3 f' L3 ~; f  o- y( O
} / x- Z. }3 }) m( U; H  z

. I# {1 K/ k6 O" N1 c
) J* ~; v# Y; G, \' YLog.h (The header File):
! Z' y: a* [/ l. @7 x+ G) _; N+ A" ~/ F, z% o: b5 b$ p
#define WIN32_LEAN_AND_MEAN
5 H; M/ U$ M$ a& A$ P3 W1 W5 [9 W7 H7 d! s
#ifndef _MAIN_H
& o, w) g4 W9 K0 v#define _MAIN_H% u( Z+ i+ i  F% |

; T0 T' V9 y8 t* bchar *GetDirectoryFile(char *filename);7 i! N" G1 B$ ^: v
void __cdecl add_log (const char * fmt, ...);
' M# T4 I5 }! }; u2 w#endif
5 z$ ]( Y: S3 `1 [4 L3 E
5 z8 Q! L) x+ K; N) NNow after you have built your wallhack you will be able 2 find it in :
- }! e/ Y4 J, {% M! `7 wC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)6 v, H& V! M. E" h/ A$ D2 k
- _$ g' Z. ~& Z9 m  [# [6 m
Now I will show you how to make your wallhack undetected:
) }; A' x/ Q' p( c) i- o1. Download D3d hooks% o; @8 @* S6 n" S/ P. J$ d
2. Open the file that says "create device code made by me.h"
& [# u. W: G/ h! X  X3. You will need to make another header file in your project and then put name it create device and paste that code it./ c/ o+ P+ H( {% q: O0 d
4. Your wallhack is now undetected.
. u9 ]2 O% j  ?" q- Y3 f7 h( V2 j1 q$ m' w+ w- A0 f
Credits:  F  K2 z( t8 ]  H1 q) |
1. ME FOR THE TUTURIAL  ~+ a# @% g8 a% P! i" i& I# A
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
( T& B$ F4 k* N+ D3. FATBOY88 FOR THE SOURCE CODE8 V6 M7 [0 W( d5 n7 n6 h( k
4. THE INDIRECTX I JUST FOUND :P
( a( s% b* r. f, z. z7 d( {3 t8 L! S9 `6 ^
Attachments:
. w: Y4 u3 g! L( P% d8 }D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
! v  z" v, \" t: K0 w+ x, ]+ AIndirectX: http://www.mediafire.com/?gimzgmeny11+ B' a/ [! N0 u6 k; H; w
Microsoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj5! g, t# ^& C# B3 {6 @' u
SEARCH THE LAST ONE UP
6 e7 ?  G5 r- `4 A__________________
  |+ T( S+ L1 [& R; y4 F/ H+ a- C) ~4 @
<---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。' [$ ~1 j0 b6 w! l5 a2 q
主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。( N  n, I/ l+ B  T: S
这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。) g% a; ~. g. ~1 A
有个帖子,简单的说了一下,以后还会有大量资料放出来的。
8 k8 r: Q' k  q& h+ ?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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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