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

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

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

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

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

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

原文
: n& r0 t7 x# V6 O+ X; ihttp://www.descipe.net/forum/sol ... -your-wallhack.html
& ]' \4 W) q8 V* i4 S% e" @! s
" n. ~4 a% H) f8 O$ t. p$ K1 O0 `视频教学  F% T8 A$ ~; ~$ {0 h
http://www.youtube.com/watch?v=6b5XMzT-b_U   
9 P0 w6 _0 L+ a7 {! D5 N8 F' y( B; j8 y
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch 5 Q" q: P4 B( A/ z
& E1 l2 @2 ^+ r- [% v
Hello shane007,
4 H3 c9 Q0 ~: V3 e* QOur 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.
# l# S4 o. N6 v, O/ o
7 \( O* ]+ a6 D/ F) lWhy not start with your first post today and become an active part of DEScipe.net now!
/ m4 }( y  ?  G) x
' z0 q+ H* U2 @4 r" l% K
* d$ |8 z* o- ~. q  
; f( w4 S+ l9 Z* t( l* L, o9 V   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  - s4 f5 k. w8 \7 J
How to make a wallhack and how to hook your wallhack!  
( y% e8 v+ G$ h. m  |+ } Welcome, shane007.
3 ?' m' O9 y% P# o+ d7 Q+ oYou last visited: Today at 03:55
+ a% @" |, S! C% Q2 e5 }$ k8 ^Private Messages: Unread 0, Total 0. 9 _2 Q# K6 G) ?4 E7 z
Credits: 200 [Check]  
+ x& y3 H) a1 L7 m5 i
0 u- v8 b7 t  B' B6 Z: |Home User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
, J2 ^+ ~- v) o' u* B
. f, l' D) e9 d/ A) n, j
, C% D! F) P6 ~$ N- F6 z2 Y2 _& ^2 A2 [) Y; t: m
Search Forums 3 t" z/ D+ ?7 e4 \  w( J- h
      # C5 G# V+ P" j& U+ i

$ Q- [  |3 ?1 ~- y7 A- M* DShow Threads   Show Posts  
" Z& ^% i: k" q+ t7 f* T: {Advanced Search
! `* |1 ?2 o; \- b# R1 H: mFind All Thanked Posts + |2 d4 Y( J# X4 w
4 U: C: p: C0 x  q) {  T9 h
Quick Links
4 J& K0 D) z# \) ?4 y' sToday's Posts ( x6 h  l  k# i5 z
Mark Forums Read - U, A! }1 \# I

# @8 ]  P2 c+ D) l" h, b/ uUser Control Panel ! M; @) V3 w9 y1 E, ], d
Edit Signature , x% v9 L7 _' c$ Z3 F$ F  R2 R1 N

, S  q+ Y" B: I9 C. m' jEdit Options 7 ^+ u3 \8 u+ Y
Miscellaneous
# t( z. @6 H9 SPrivate Messages
6 W7 Z0 W! K4 fSubscribed Threads
. g; l- N  X) b" g
0 y, ^8 ?" x5 W/ Q& e0 rWho's Online # \/ j5 F# x. j% H0 U3 y
/ E4 x( r7 _* N( G
Go to Page...
" _8 j: l$ d3 U+ D; j! Q) \   
; A0 W" `5 o- C9 C: v, u, BHow to make a wallhack and how to hook your wallhack!0 g1 q: t, o2 @) d9 z+ c
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. ... & L0 c1 l) p- J* J1 W
/ V3 m4 n& i4 _6 l% K. v( {9 c* i8 j
    Poll: Was this helpful?  
3 Q3 h4 g4 S2 f8 O9 ?: w' RPoll Options
* G) t  y$ I" b4 T7 F( EWas this helpful?: g9 e) B2 ]- w& m" O- [' H8 x
Yes, I WILL press the thanks button  [% ?! D: P3 j5 K7 {
No, I am a failure
3 c: y/ f6 K3 Q% J( m/ {View Poll Results   4 d4 K9 W- F& z
" K8 d+ s" ^: ^9 y) d
Page 1 of 3 1 2 3 >   6 Z/ b  ]6 O. b) I% s& @6 h! q! [* A- K7 s
; R& m  {/ f- }9 I0 `& q& Z3 q
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   
- z) c2 E& `- k2 J5 }2 M' [7 }) b8 J- }3 C4 N! Z
. ]( |4 f; J8 Z0 @
  
" q: R" {- E' b: L+ o+ U4 O 05-02-2009, 20:49    #1  
1 \8 p) ~" H! Q9 C6 i% Pkillax9 ( c, J0 U! U0 U. e
Punk
/ P5 Z" J( v% t% U, U. d
+ H. ~* X$ L/ h) w 7 P% T1 l2 f: K2 X8 Z) i& J1 S
+ X: h6 C" ~+ D$ \' r( y

4 ], S- g* [, `& q/ NJoin Date: Jan 2008
; ]8 U% l/ O" ?) qCredits: 2,701 [Donate] $ U1 F5 q/ o. d% U, h" Z
Posts: 103 4 K! b8 S* [' A: Y
Thanks: 10
+ S. ^6 B7 y2 g  p  g; w# q9 x4 eThanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack!
9 W( p0 o, j* N3 o2 a
( ?4 r( K) x3 J% G4 v--------------------------------------------------------------------------------  b7 o# d8 _/ V- d6 O
- S6 o& M* I& X1 ~/ b+ y
I will be showing you how to make a detected wallhack and then hook it for it to be undetected.. X  \' Y7 |9 L; Z$ K- E$ g
Possible Undetected Methods:5 U4 F( @) h1 d6 t, ?6 Y
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.5 r  O" y3 e- d& n: X
2)another way **** it hack GG., b, f9 l. R+ B5 Q: l9 _
3)breakpoint hooking;doesnt change memory... well changes debug registers.( Z+ {( E( d  W; G4 \. T4 j
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
, |6 F9 n% ^1 O7 G& G& n: T# N+ z' @0 y/ U5 E" [4 ?2 N0 h& T+ J$ o: q
Vtable:% D% x3 _" a" R3 t
it wont work for vista its not a vtable hook =)# {  Z3 Z" g) _2 p' j+ y

$ ~& o+ ]- {) h( S1 Nthe reason why my older version worked was cuz it hooked 8 j2 O3 V  B& M; l9 `3 y1 w$ I: f
Createdevice->pointers to the functions
- h6 L: j5 x; |& e9 `8 O- c7 z; O
: W& _" X# s) i8 v$ i5 y* Ukinda like a class or a struct.! d# b8 _# g' a8 m4 @; a  p$ g
/ x; g% |6 ]/ F5 f0 {: |( C
. N& q. a. Q, F( w( T$ ]/ g
and GG scans createdevice right off the back and the only way u can hook it is a few ways {DETECTED}either when d3d8.dll loaded in....{Undetected}or reversing to internal call inside the game[0x00000] pointer.
+ Y0 u: X# y+ h
4 U$ A5 _1 |+ D3rd maybe- some games recreate the device when a map loads...like BF1942.
# L4 D- I9 H/ p- e) S- }- f: a6 @$ ^1 n4 E" h7 e3 m, c6 |$ m( \
Things needed to do this:
4 E3 S0 B8 R% G. \* N; h1. Microsoft Visual C++ 2008
9 i3 h' f8 b' i2 V0 T5 b) `2. DirectX_SDK_(Summer 2004): u# A. Q2 E" \0 p/ \0 p  ?
3. D3d_hooks5 f5 ~" p* w/ U. a+ p( q) ?  @
4. IndirectX
: }: N! d% N  J& I: |  m& a1 I7 ?I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
  y: R" j6 W! i) A1 s' L$ Z8 ?- q$ t' z6 x! [- E) X4 w
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:2 {9 }  G" y9 J. S
# u2 @, ^2 e1 S
YouTube - How to Compile WallHack [Tutorial]  5 n7 I8 K8 M. }  _5 i2 c

  r' C% M- l. V( b( c4 J( p- d3 C" O- }) X+ V+ d

) W: d1 v' v9 D5 H3 z* `Detected Source Code:
7 s8 c8 l4 z( O6 J) v1 z' d5 R) I2 Z: q
#include <windows.h>
' N7 S$ j; V3 l( X4 l9 m4 c#include <detours.h># |4 l8 c7 l- o6 J: @% o+ L
#include <d3d8.h>  l: D% X' {" T+ M- t- u" o* }
#include <d3dx8.h>$ L$ k9 x3 K4 d; j# W
#include "log.h"
8 X, L- M/ A% u# t#include <fstream>; g4 |6 Y. X: }9 w
#include <iostream>
7 ]' m& x* f3 d* Q* o# A) N#pragma comment(lib, "d3dx8.lib"): }4 \% O1 v4 b( M* p' L" e0 T8 s
#pragma comment(lib, "d3d8.lib")
5 p5 \$ d) b5 e; }* r/ Yusing namespace std;9 y# P. J+ ~0 f
static DWORD dwBeginScene = 0x6D9D9250;
3 q: B( r5 u  r* \static DWORD dwEndScene = 0x6d9d93a0;8 w* r: ~$ F- M) B
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
, k6 ]  g- F- K8 F! ?0 xstatic DWORD dwSetStreamSource = 0x6d9d6760;
8 p( c' [8 k6 u) F! k5 D& }static DWORD dwSetViewport = 0x6d9d5b90 ;
# |& g* p/ u. Z+ k. w
5 _# g, w8 l4 g6 W
. f8 J- w3 a7 _/ G3 f& ~4 eint m_Stride;# h3 g1 R% p, n
int texnum;
2 V# I3 W: }- I% ~1 Z5 Xint nNumVertices;
% F% b. H* z# |& ?int nPrimitiveCount;6 U7 l! X5 y/ K2 P3 T$ `+ a

$ w7 V- F1 c! ^& \1 J# zLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;4 c& {* [- E) p/ c; u  t
bool Color = true;
* ?& R. p3 v( Ebool Logger = false;
' L) n8 H* W( b" |( uofstream ofile;
5 E& k5 e) q1 |* p* rchar dlldir[320];
$ i, p) F1 g2 Q/ I4 {* Wfloat ScreenCenterX = 0.0f;
# C! h: \- n& j2 a1 nfloat ScreenCenterY = 0.0f;2 i4 P! F1 f) R8 _1 n9 W4 H4 b
bool xhair = false;
$ X8 j6 x8 x! F, Nbool WallHack = false;   G# d# z5 |* k7 g) _' c4 w) v+ J
bool WallHack2 = false;  O1 L# E0 o% t
HANDLE hand1 =NULL;6 R  d7 {3 X4 F1 ?2 O& O. S8 ~
HANDLE hand2 =NULL;
8 c. K3 f. R) l' V- @: }8 o( x2 s0 V1 X' e; T
DWORD bytes;' @/ L- C) ~, e) W& K" c7 x3 }0 M
% @; i6 }4 P" d$ E( c* ?
//Logger
. w, \! B; w- Tint texarray[1000];
( f! r* `2 y& B0 ~# J0 V6 `" gint arraycounter;
& R0 x. Y# w( H5 |; ]  [int delarray[500]; " `5 Y3 t' }4 l8 |& w) I' h
int dcount; ; D$ H3 v7 j6 m- p& r2 f" p! R
unsigned int arrc;+ l) s* i& F# M, R8 r, J: L( D
int i=0;+ p9 X+ a% E8 u# a) h

" P. C2 p2 F, C  t4 ]2 p5 I) Y0 h  H, H0 B5 @& ]7 v8 D
D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
( O0 ]0 O; h* u& x. q9 N, _5 F8 _- K
, x; D1 a3 A6 d8 n
char *GetDirectoryFile(char *filename)( ^1 t  [# y# \: }  c6 r
{8 t1 u% a. o+ }$ R8 Q
static char path[320];
. y5 `# h8 {, t# M- w7 v+ Jstrcpy(path, dlldir);- V$ X$ P9 P7 L, y* m
strcat(path, filename);) x/ B! |) L5 n( B& ]; c4 v6 H
return path;
5 \8 A  {5 s0 h# ]3 {' f4 X}7 ^( b1 P) B$ O! p. z) N$ H

0 s3 ]) W( y( ~+ T2 p  g' ^+ V1 Evoid __cdecl add_log (const char *fmt, ...)
) O5 f, G5 w4 ]{
" t$ k6 L! K2 k! Yif(ofile != NULL)
) d0 e& r5 R( I{
9 M- C, T* }4 a: nif(!fmt) { return; }1 o1 b2 G) U! C

1 ]2 g0 {; _6 [# K# s$ `! Hva_list va_alist;
) w3 L5 h: s* p( E4 }% G+ Kchar logbuf[256] = {0};7 N7 C" }# ?% ]5 [  m: U
0 o: N! [% k$ M, ?
va_start (va_alist, fmt);- i- G& o$ d) W% B' \
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);
* u2 Z" Y# [  m% J6 x- i. p$ vva_end (va_alist);
5 T+ e" W+ o0 }, }- y
3 l  @( o! e* X' Zofile << logbuf << endl;* `+ C" t7 W, G& r
}+ e2 p! z% b/ S6 S
}5 W" `5 P9 s4 @6 r3 i' R

+ M0 L3 Q2 a2 KHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)4 Q  m. b; f8 t& Q& B' ~! l
{  N  {8 B5 h2 s/ {! c
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )
' T. S, }6 E) x. X9 G7 l/ ereturn E_FAIL;, I* B# n4 e+ d% P6 N

* B, b- S# F" h' v' s1 SWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
+ H. \( i* I: b1 l) Q( r; B* B; i|(WORD)(((colour32>>20)&0xF)<<8): H2 E$ C  o; k) z! g, K5 @
|(WORD)(((colour32>>12)&0xF)<<4)
, l" s1 U" u, M|(WORD)(((colour32>>4)&0xF)<<0);2 J# x7 k: g* C! q
+ e8 I9 R) B, I" C
D3DLOCKED_RECT d3dlr;
5 J" D" E; C! _6 s( Q(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
  o; X7 b/ K' X7 }' r% HWORD *pDst16 = (WORD*)d3dlr.pBits;
- g9 h+ A3 F3 }3 {- d
% s" T" h" F5 ?" R- |for(int xy=0; xy < 8*8; xy++)
3 L4 S2 @2 x7 I, i*pDst16++ = colour16;
% S9 o- G' b, q: T; x0 S3 e0 B) T" L6 _- G/ u4 y: b& H
(*ppD3Dtex)->UnlockRect(0);( F* `8 T; T* i" S8 i  L1 n* R
& I. G* c5 T' O
return S_OK;
! R1 i/ }. I3 W* ?}# M3 C. _, l' X! h/ v
8 Z) Z) _5 Z0 ~( ]8 z

. m; r$ N0 J. @/ l! w; V//=================================EndScene_Start=== ================================================== ============================//5 X! J1 F$ A' c% Z- D
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );3 Q3 Y8 F7 @) D5 h
oEndScene pEndScene;
, u8 Q: v$ w  s- J
7 b/ V: \+ m* T4 B7 g& S0 ^HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)% u5 q4 p! Z( ]. `! a) E
{7 M8 x2 K+ k0 }7 D
if(Color)  C3 F' \7 r7 r3 f- m1 ?
{
% p- v- B& c' [) I) _8 _& wGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));* |+ M1 ~* [/ ~  \0 s+ O) S) g
GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));$ u, h7 K. b/ s7 ]2 z) s* C; C
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));3 p0 z% }7 N7 `: x: V8 r  p
GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
# v1 _1 V6 i5 |* CGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));
5 {& G- R0 u& Q, |5 [0 mGenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));' _6 ]" O5 G- M4 x* l
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
6 x  ^$ Q( l" r% p) ~3 XColor=false; * W; k, f8 K( P# [* a
}8 h: ?/ G& k  z& j7 Q; ^6 W8 B8 s
" s& o$ X8 ~* V& j6 |
if(xhair)6 h0 X7 Q" d5 |3 b& P
{* g, E$ r5 t6 \1 g# L
D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};5 G- @( L! [8 Q- G/ d
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
, w- \2 T- z/ QpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
4 G- U& M. y  zpDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);3 E7 J6 `2 C  ^3 E# _
}
( o' ?6 R2 l# O, h- K; Q
0 f& P+ _! r5 a" j. K& T//=============================================UnHoo K_Start=========================================== ========//5 p, v: V! x8 }
8 }) A8 N1 X5 M* @+ X- y7 t
if((GetAsyncKeyState(VK_F5)&1))
  U+ ~4 `# C3 D! g6 }{ 8 E9 H, i% ?, a; V. U/ N% B
int end =NULL;
+ O3 I% q  t! ~" b3 _7 i: `/ Gint dip =NULL;% e$ B3 A, p4 P2 H3 H& Y
int svp =NULL;* e' ^3 l  ]/ p, x3 r
int sss =NULL;6 k  ~' i# `/ ]% Z$ H
3 s! k- {# R0 x/ q9 r" \
3 ^% [7 y' I9 `4 K
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.
- v# \* n* h0 ~hand1 = GetCurrentProcess();
" k, l" M. U  kDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
2 F. H3 s7 M% tend = 0x6d9d93a0;4 m; q% Q* D. |$ A9 l# w
dip = 0x6d9d73a0;) R. f$ m% T' F$ |( o5 \
svp = 0x6d9d5b90;
' p4 \( }  \/ Msss = 0x6d9d6760;1 Y3 j9 Y' n$ C( ?" V

/ L0 c1 i3 _' ~9 ?* gWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);
+ K0 B6 S4 z- A: Z6 z6 UWriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
) C  T- ]) K2 [! A6 P9 M( dWriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);% r' W' b4 H+ S0 ^/ Z% j4 d* S
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);# u" l) \8 v2 w* {9 H
} # Y' i, |' i& J5 o% j& R
//=========================================UnHook_En d================================================= ========//
; Q5 I5 x, u1 N& F3 E( I! H7 b5 j
- B6 ~; W: ^$ X/ H, @if((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} 6 E: w7 P8 p' G( {6 x
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;}
$ I5 ]. m/ |9 Z4 [6 u6 u$ V8 \0 H% R7 V
return pEndScene(pDevice);
  R  U; I4 y$ y! k$ f, u}+ c( k" M3 Y8 @; `0 j0 z
//====================================EndScene_End== ================================================== ========================//
  g9 {' a9 O3 m+ T! Q% T) F4 m/ _% O
( w/ Y. v$ t' X7 p
% Q+ C) `' F2 o- ]* O

- k' s* w# m4 C/ Q; z* H//=================================Dip_Start======== ================================================== ==================================//
# z2 Y: P& X0 h0 ?  s7 ?" Stypedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
- J* f! d: N4 }: DoDrawIndexedPrimitive pDrawIndexedPrimitive;$ Q0 ?% x% ~9 \

: h4 E- ~4 \$ g% y( ~5 W1 AHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount), f( l$ g& H* P
{
# X2 N5 {" d: a6 S( j5 f" h2 W% T
$ N/ k6 ~" R8 ^5 F1 N1 p1 K. k

/ Q$ i6 M! j2 q, x% \' Q0 }. t, a8 C. ]$ a# k1 d
if(WallHack)
; d% [" l# j; _* I{- R% y* b" {& c0 k
texnum = (nNumVertices*100000)+nPrimitiveCount;
) ]* U! {. G: _0 C  A% Yif(m_Stride==40 &&
, h. h9 v5 C! U3 M* m* t$ Z
1 {& }& D$ A4 }& f- J5 C1 F: z% U2 f(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||% @5 B& h4 @1 E4 A: I6 R
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||" t, C5 N" u7 q1 b5 Z7 {, S- \/ P. z
(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||3 p+ y2 @" @- Z. @: ^: Y* A
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
% d- o" G* k- S7 c- F9 W$ s(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||' I7 P. c! Z7 Y* j: \
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| ; A7 C6 P9 F1 g- ]+ v! j5 o
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)||
$ _6 {. f9 _0 R5 }4 D( b* [2 {(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)|| - G, F# m+ F/ e( X3 G1 N" J% R" R
(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| + W! F. O' o7 b+ L+ i
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)|| 8 O3 }2 ]9 _4 U' c) t- n0 |
(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&7 p* Q: B. G4 P) [0 j4 z9 f/ P, x
' Q9 Z! [0 h/ L" N; E( N* {
8 ^$ f- H' Z2 L6 y: O
9 Q) N' N% A0 C9 e& x/ g; Y  `. D. X
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
2 ^0 |$ J" t% v3 P' D& `(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
( x0 X. @' V& @9 u& Z% `' ~! w(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand 5 @) K* d. ^: h1 _
(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
" {- ^+ w4 b* s% k: ?5 X9 K' A(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)7 X, e$ `% Z8 j7 L1 E$ g4 q
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head
. E! T. @: I  N2 \4 ~* k  G/ D6 O(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
" {: D2 @6 T" w$ e# {9 n2 l8 y(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
1 T$ z" f$ a5 l' M0 a: x5 e% C(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants- v! J% v3 P2 h! X7 i
, U1 o1 `) ?: r( l! F
{' e3 N. Q' x4 p& m+ G# q
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);" y; Q: X+ s, H/ a- E
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
7 A% `9 \8 @0 j  B/ z' _pDevice->SetTexture(0,Orange);
! Q$ \: w% ^  `6 w0 S* e! E. r; F7 b//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );# Q# I7 x' K, i. z
& z5 O1 t) h0 P: X
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);- }2 t, B; f7 l) A/ }3 i# Q3 `/ u

. |& B7 v0 ~, Z$ ^: |0 _//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );
/ h( k" j4 o7 vpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);7 s2 z# P2 O7 ^2 s% l
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
% E" M7 C: ]! F$ v( hpDevice->SetTexture(0,Pink);6 v! ^: i8 C+ a
} 9 p. H. [! d- C
6 i' k- A" ~: E3 i. e& s
if(m_Stride==40 && texnum== 21300174) 1 q8 \/ }' m' J  ^
{9 x( t# u3 s* t! Z& N! c
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
! t& ~' n9 X- m. x" |6 x: f  C6 ppDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);1 x* b6 y1 Y" w* \% Q) m
pDevice->SetTexture(0,Green);//GreenNade
! R; U* m( r, F- S- n* CpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);5 F% r. }! o$ [7 D6 k
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
$ O! S# U* f; LpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
  s$ }* r0 B0 i/ l- t+ N4 l8 |pDevice->SetTexture(0,Purple);
+ f4 l4 h5 k$ H8 M' U- g}
% S) I6 _' `2 }* n* a( _2 X, o/ N- n; H, c# [
7 Q* y3 I* l7 L3 R7 O+ V: n
if(nNumVertices == 158 && nPrimitiveCount == 131)
+ A! \  C7 v) d& P( K0 V: F6 I0 r{7 S2 W# ~( j8 m: V
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
; B' `' @5 o/ e. y' m3 HpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);; U8 Q$ E3 v$ S" }' g7 v
pDevice->SetTexture(0,Red);//GreenNade
# {: R/ e$ C: F. WpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
$ h( w1 ]: u# X# Z- k; ^pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
! @& H1 m3 G* C4 S8 _pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
/ b9 [+ E$ K9 Z4 W3 \2 ]; ]pDevice->SetTexture(0,Yellow);2 U# ^9 ]2 @  Z$ T5 c/ P! l
}
5 ^, c+ f2 y1 ?9 Q$ i8 E. s5 Q0 j: \, `
if (nNumVertices == 171 && nPrimitiveCount == 143)
4 `- I3 U8 s+ v. ?5 f1 B! G{4 |3 j# q1 y8 g) Q3 I  ]) A

! n# q! J6 G7 @+ FpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);, ^& Z5 [$ x. G2 C  b9 K( x
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
, G% s/ w  c0 J2 F3 T0 X/ T8 z; YpDevice->SetTexture(0,Red);//GreenNade
, e7 J& \9 W" d2 }( rpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);) J! J& I( _+ O9 L) f9 K  ]# d
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);+ W& i7 C2 p( C  J
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);" T8 y& o% a( p
pDevice->SetTexture(0,Yellow);
4 A( W; L2 P: e+ T+ S; A}4 ^  Y- z- }  G, J. W
$ R9 W" \; {+ o& g/ _

5 I  f4 `4 r+ Y
4 p! V% p: ~5 c& ~0 Q! gif(m_Stride==40 &&//face,mask etc.... {) w- n5 N$ |% N! G
(texnum==36700612) ||8 b+ m: ?1 j; B" F) t/ k) {! C
(texnum==9600172 ) ||, H5 |. n# M5 }
(texnum==14200236) ||! [$ O3 E+ J# H' g" `  r2 j6 M
(texnum==37800552) ||
; V/ {) T# x0 x8 j' L1 ~; y% t* k(texnum==28100486) ||! K. N( Z- L! R6 u
(texnum==35500568) ||, D0 W  v4 Y& P+ q" N8 M
(texnum==2200024 ) ||
+ U6 l4 J& I' p: Z(texnum==16200243) ||/ m. O" y( L& W4 {" P
(texnum==31900466) ||4 S' h6 I! ?- R' b% a4 `
(texnum==19300342) ||
5 R! `. g6 X3 s. Y% ~& k8 m2 ~(texnum==36200604) ||. N2 R9 W2 G. n: N5 W7 s7 N
(texnum==21300290) ||
1 ?! d- B9 j4 }4 y' S! z(texnum==35700558) ||
' t/ M1 h2 E  c2 R(texnum==22100396) ||/ T0 t2 U9 N- K- l. b8 d
(texnum==36100604) ||
/ p: M: w5 I& n; [(texnum==27100464) ||5 o  A; \0 b; ?  A
(texnum==11400180) ||
; z) m, E; _; J5 D9 |3 c( U% `(texnum==34900580) ||
/ |0 Y  D  D8 M. e(texnum==13200212) ||1 _4 D+ C6 k" h. N
(texnum==34700538) ||) \( Z& k' ]3 x" R. m  @
(texnum==19500352)&&
  K2 a4 U7 ~. ?0 g) L* N(nNumVertices == 448 && nPrimitiveCount == 776))& u! e& m8 j, D& K( u% B

, ^- Z( }: Y3 E% b: w- L# s{
3 o( }: e$ n2 }/ H( IpDevice->SetTexture(0,Blue);8 x/ R+ d2 D; }. O7 E: U' B
}
3 G1 m: i/ P! K* _9 q- d
: U+ B% ~" f4 f/ {) W2 t5 R5 w; K! f8 s+ m2 l/ {
{& m" e5 `3 u+ W; O
pDevice->SetRenderState(D3DRS_FOGENABLE,false);' w9 x& ?* ^$ G! R* Y# a* u
}
* `7 a; r1 M; y* C: z- n; V4 \$ U% Q; p& D
/*Logger
. Q2 h4 i; ?2 u  Mif(m_Stride==40){! T, B) k, n5 N# v; N

/ _6 x: K4 Y; j2 ?: |
( X1 Y9 I* k$ N; E! M8 vwhile(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray; \1 S- G8 `" N0 s, g6 b
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
- w8 Z, @" V9 D: i! I, ^3 gbool alrdy=false;
: n) o8 `: W/ f7 Lbool inarr=false;
3 W. K- a6 H& X+ D+ z3 K+ ^7 ^( Q9 @) Y+ ^
if(texarray[arrc]==texnum)
0 z/ I# w. p/ I; K& zif(delarray==texarray[arrc])1 t9 m, u0 R9 M( g% b( t
alrdy=true;7 g" a. f7 y# v5 K6 C0 B) X: t
for(int i=0;i<dcount;i++) //sees if said texture is in delarray: p/ E6 Q) D0 f% C  Q
if(delarray==texnum)) W( H& S  A; o
inarr=true;
7 S$ q! o  @& z' A( I7 l6 O1 }- ^if(texarray[arrc]==texnum || inarr){ //If true, color model differently9 N1 U3 \/ P2 o* w2 V  F* A% U
LPDIRECT3DTEXTURE8 texCol;
' H2 J5 v6 N3 K* o1 T( x" E* X8 rDWORD dwOldZEnable = D3DZB_TRUE; . i1 |- s7 r6 a( B% v
pDevice->SetTexture(0, NULL);
2 v2 |4 j1 p: h% s8 z. xpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); 9 \; {3 [" B1 }! F5 n- Y
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
8 w( t, n% P$ `0 l% n" q7 dif(alrdy) //Different colors for selected models that are already being logged (For removal from array)  m: a# ?- M1 [
texCol=Blue;
/ }0 v9 Q! `' E; Welse+ i; p, a! u  s9 Y
texCol=Red;
) @, E2 G. \; R. A! ?pDevice->SetTexture(0, texCol);4 c& ?3 U5 {. N
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);' `3 E9 ^7 f% k, P2 L& h, e
pDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);& q" M: B+ Z) H, f

. ~/ h* J( C( l( z}
# ~* |3 h0 P6 `) |) q1 w6 t}
) Q- M$ {6 w6 H% w' zif(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile' d1 u3 v9 z8 a# \' _$ ~
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array9 H6 q3 O$ ?; z4 x
bool inarr=true;
' m1 h/ O3 L& \4 W, e- _. w  y8 Cfor(int k=0;k<dcount;k++){5 J4 g6 f8 w5 V
if(delarray[k]==texarray[arrc])
0 L: ^1 R% x- O+ l" H& j{( Y# R3 P& t' v. ^/ X) r
inarr=false;//Found selected texture to already exist) V  K: r7 `, R6 h" o6 a+ ?) `8 ^
delarray[k]=0;//Delete texture
2 g5 M" O/ d# }+ Q; b: ebreak;//Cancel loop8 m( q7 X& v  b3 S# ]$ h% N
}6 a: D! k" B$ L6 I+ X
}& C. f3 v4 Y- M  e
if(inarr==true)
; s% D- J$ q* J{& X; W2 d, Y. v
delarray[dcount]=texarray[arrc];//Add texture& {8 ^) W9 Z* `
dcount++;
6 k" h8 M7 |" y( e9 t  [0 g; D2 l}. W0 [/ m$ Q+ w7 D7 m
}
5 H% B; j( U! d( |9 ~. Y0 tif(GetAsyncKeyState(VK_F7)&1){
3 ]0 E5 B7 y9 Kint total=1;
3 H% W: ]/ v' H7 ^4 C3 G" P, q, Padd_log("omfg values?!? {");7 w& [! J0 v! c) h9 u. Y
for(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
5 r8 ?& U$ [3 Y- U& z) A8 N; i0 @, L3 nif(delarray[x]){, W5 `- H9 Y$ N, Z
add_log("%i,",delarray[x]); //add_log2==add_log but without endl: O$ e$ U8 x$ j* B' W* W1 s3 |
total++;
6 q  _1 g9 u* j  `+ m( i- y# O+ X: o}
' N2 n7 b7 U6 Y9 `add_log("}; %i variables in array",total);9 A% P! ^7 l6 [! q( R
}
2 H6 w/ B! D# g, w5 `bool found = false; //THIS PART CREDITS TO KRYPTEC8 O: b/ ~! J. v* l6 s( v9 S3 F$ f
for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
) F. E0 k7 J! q. g# [- Z. G* C; \{
5 t0 F9 V4 ]9 N- J$ h  xif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT
4 E7 W# W/ K+ p, {" l}
2 @# [$ f. O  N. ^. t6 c2 zif(!found && arraycounter < 1000)8 q; u% F/ m+ n
{
- f3 @/ |$ U5 D$ b" k% Etexarray[arraycounter]=texnum;' f( Q" Z4 H' I: j& R5 u- v
arraycounter++;( z3 R/ S/ U# ]1 a$ S5 V# _
}*/
( M; a  ?/ Y4 {5 u9 L, z# m: g5 ^/ Y+ U9 R/ n3 L7 n, i9 w
# h! F! D2 B9 |: l
}
% m* q$ P# d! A( P/ qreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);  N, o/ _, O& j0 J1 T
}/ l% E5 c9 ?' ?8 K
//=====================================Dip_End====== ================================================== ===================//
# H4 D  n; k/ f4 J; p% J; X
0 U% P+ j1 h: g+ ^. `! e- N" x! A( b  s0 ]! L3 \2 E% H2 L
//=====================================Sss_Start==== ================================================== ====================//
0 a5 H0 n) J+ V, Jtypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );8 A" B( b; X9 F: A
oSetStreamSource pSetStreamSource;5 I+ [0 a; ^3 ^: O1 U$ Q! q& o

8 t0 S, {8 Q) A% _8 C4 Y% W2 U+ ^HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)/ ~. _- |5 r1 W) n0 c8 M
{0 T& z, R1 X8 l3 W0 ^3 |
if(nStreamNumber==0)
+ v, W7 y6 a4 U6 Y% T8 v9 `m_Stride = nStride;
* r" f0 ?2 I! C, ~8 z
9 H. p" H9 o1 N( G$ vreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
6 I+ k1 Z, J4 F/ I! o}# S" B* Q" Z+ i* |( }; p- W
//====================================Sss_End======= ================================================== ===================//
6 J# x, R  I2 Q3 ]0 `
) o+ m* `# p- t$ c- D! O0 o//====================================Svp_Start===== ================================================== ===================//
* u0 X- n! J$ M# k, V7 ]typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
' y6 H, a3 j; S# v+ l3 z6 foSetViewport pSetViewport;
8 ], m  s# Q# H, M# K- ]0 a4 p9 p5 X; a  {( |3 ]
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)/ W0 N8 m# H$ \6 k& o
{
& l, w. j/ {6 M5 S' Z$ z( G: nScreenCenterX = ( float )pViewport->Width / 2;+ a8 n) o5 t# y- g
ScreenCenterY = ( float )pViewport->Height / 2; ) A' V- F: m, X: S" Y

* j% D0 k+ p" K2 ~! dreturn pSetViewport(pDevice,pViewport);
; x/ G  _9 P+ P4 [) }' d* @) p}0 Y# Z# R: t+ B' P  p2 |4 i! |: N
//===================================Svp_End======== ================================================== ===================//  M, X9 X* [% J  C5 J- M! U
  V0 e+ L" G; Z& R6 \4 ^( C
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
( |8 |3 S# @& C+ K8 h$ A* ~4 g1 aoBeginScene pBeginScene;
# m9 @) u% [; l: e! y7 b. H4 y) i: K8 S: G; p
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)/ [3 e" R- p4 p5 v" L% m7 {9 D
{
  t, l3 n) w+ t' F! vif((GetAsyncKeyState(VK_F6)&1))   p+ \4 ^. N* V
{: l) g4 \3 p5 S# i) O7 _
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
$ M. i6 k  d' O# }3 v9 ~" \pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);5 t- _0 c! B& \1 q1 w4 B7 T, r
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
0 D* Q2 ]1 X0 q1 W/ ZpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);5 L% ?" a. p9 Y0 p& `, b9 `
}6 }; o6 Y8 v' z5 C( E" F  j# s. F0 a
5 ]# \* ]( _3 p! y. y, Z5 M
return pBeginScene(pDevice);& ?+ J" p$ k8 p7 a& A8 T
}, J' O9 w3 }, G2 b+ r( _# i
4 @& O! A8 ~* ~5 `: q$ q5 \8 b9 b
1 F. R0 ?2 ^# h; m% R7 A
BOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
' J8 {! d6 C6 S+ l$ M{
$ d0 L! a" P+ IDisableThreadLibraryCalls(hModule);
- {, H# S- y" C& G* `, f
  ?- ?* _+ t( ^( s5 O3 Lif ( dwReason == DLL_PROCESS_ATTACH )
& {# H. }9 C! q0 V{
2 N9 z' b8 p4 e3 h
- U& \7 H0 U3 z+ h: p9 G0 P- Q//=========Log==========================//
- S3 |: i& y* s1 rGetModuleFileName(hModule, dlldir, 512);
( `  z7 |" v! qfor(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }
  {* O& U3 G' b3 Pofile.open(GetDirectoryFile("log.txt"), ios::app); + @6 d5 H1 ]4 o
//=========Log=========================//
: o/ u2 f3 L8 s5 k7 }; E
' Z4 O- C1 u4 I( k' x5 }pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);% K; o" L( l5 r3 d# \: U# j
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
% s5 q: \; D# h" ZpDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
' X- b$ y6 H8 O/ i" d& y4 l  m8 JpSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);7 Q! \3 S! z" T4 P7 ]' n
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);. Q. b) k; E: \  q3 ^+ X, i. t$ T
8 |2 S, R9 F; Z" B8 ~$ K  u( _2 w
}3 K; ]: @  L0 K, i& G5 B
return TRUE;4 D5 k8 f, F' f  s; ^
}
7 l# [2 d' N6 c( ^) H" D; Q, ?* o/ h0 B
" c, C) ^- S( H$ C: u
Log.h (The header File):
2 Y# `3 g4 A# r- @8 T* N% t) }, c! P, W- V: E( M$ o
#define WIN32_LEAN_AND_MEAN
! d- {& W3 f5 i- S3 N- F+ H: l8 t* ~( O! ^
#ifndef _MAIN_H
- ~; |, F* y/ Q#define _MAIN_H
4 b/ O/ X) s( j9 b) A8 d
5 I; j0 h' C: ^" |* }5 cchar *GetDirectoryFile(char *filename);
/ }8 B2 A8 f+ v0 Tvoid __cdecl add_log (const char * fmt, ...);
' }1 R; g* m! ~) L8 V" [- T#endif % G1 J9 I$ ]1 H5 j0 ]- p3 P2 l

7 \: z( r. e. ?& Z" k2 l! q2 {3 wNow after you have built your wallhack you will be able 2 find it in :) h, Z$ `% R, U( k% `
C:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
2 `! {* }6 u; t& c0 j9 w, h- Q* A
Now I will show you how to make your wallhack undetected:- ^  ]; J) L# _- ~8 Y# w. v* ~& d
1. Download D3d hooks
! P, ]) Z6 i. w8 H+ z# P2. Open the file that says "create device code made by me.h") Q: Y3 q0 L6 f" f, a+ |; J
3. You will need to make another header file in your project and then put name it create device and paste that code it.: t% [! U' I+ ^: Z& ~3 u
4. Your wallhack is now undetected.9 y: }1 Q  F% b6 x1 Z

2 Y+ K4 g# v3 W1 M  o6 a- L# ?Credits:' s* ]; n0 ?* [' E- T
1. ME FOR THE TUTURIAL
3 m4 T: ]  g, c% @: y9 z2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE& d$ i& U$ [4 g2 G2 _
3. FATBOY88 FOR THE SOURCE CODE1 E' L. b4 n9 Y% y: X; x. v# r7 \0 o0 M) t
4. THE INDIRECTX I JUST FOUND :P
2 i. h* S4 t6 f7 X% T
+ Z) W0 }5 y4 J& JAttachments:; E! h% o7 q% V6 d5 f1 g/ m" Q/ V
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5
8 i7 _6 M6 U/ ~* s3 f  hIndirectX: http://www.mediafire.com/?gimzgmeny11
! V: _$ d# a  w4 O8 o7 r% ~/ S8 UMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj59 X8 I) k, L) h2 [9 ?+ t+ ]( ?0 ]2 N
SEARCH THE LAST ONE UP
: q, w6 t7 B% @0 A__________________
5 G+ j7 v' p3 _$ m' U. U
$ x/ Z" H) Y3 F: r <---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。" r# r* U% _/ I. E) ^" _
主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。
0 @$ k$ _; d- h9 I这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。: _' s2 L) Z: m3 D9 x3 |& n
有个帖子,简单的说了一下,以后还会有大量资料放出来的。
) t9 T* X' i' r4 `: dhttps://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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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