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

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

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

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

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

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

原文) \; f4 k8 f) m+ k: `3 J
http://www.descipe.net/forum/sol ... -your-wallhack.html; i3 h0 r- H- C6 [6 O9 f
$ I6 H5 B) n' t& _1 L1 e  N5 v
视频教学
2 f' {4 Y+ z  c# w% G: K, u6 zhttp://www.youtube.com/watch?v=6b5XMzT-b_U    1 v% ^. R; }, k: S: F4 N. p* P

' p, v9 F$ y- p9 k$ g. t; z$ g0 CHomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch
( q. Y' C4 ?& F- C) v7 ?
' A5 s' N. M! r) q2 k2 N3 U4 C Hello shane007,
+ M1 t# L9 o: W. C' [. B! BOur 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. / \* a, m# f5 P! t1 z+ G: |* g9 Y
% j3 r' A2 N7 o) r" s
Why not start with your first post today and become an active part of DEScipe.net now!
4 S/ \% I# H8 | ; Q3 ~$ i1 q! L; ~- T; q
7 R" x3 ?9 v4 W5 H4 C
  3 z8 N& J: g  S8 |
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  ! A2 Z6 ~6 f% j0 a3 j
How to make a wallhack and how to hook your wallhack!  
0 C1 D8 [  S3 q7 B4 n2 p Welcome, shane007.
5 j5 j1 E9 u3 ]+ l: A: P; b( ^You last visited: Today at 03:55
0 O: ]8 C& C1 ~$ dPrivate Messages: Unread 0, Total 0. 7 X9 {  L  f' e3 ?
Credits: 200 [Check]  ' v$ C" U6 i+ K; f/ v% I

- b: T# a* I0 w' E8 j1 kHome User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out $ e. U$ ]6 n: h) r6 M, B4 A
# I' ^3 L" ^  a
6 B% m8 u% m1 t4 |+ Q

5 o: R" V- X1 I+ K# @4 F+ |Search Forums ( Q- S( r- J/ ]1 }
      1 ~/ |7 r, q4 u

1 X. T# }" S/ UShow Threads   Show Posts  
$ s5 [6 Q$ s0 {% r- H1 c$ f: c8 pAdvanced Search , E9 Q/ Y, Z, ]
Find All Thanked Posts
2 w7 g% i/ d0 q( Z' M3 ~' \' v% L' S$ J9 h
Quick Links 7 C5 v& J, i! P" S
Today's Posts ; c/ j. @) k1 t  D. `
Mark Forums Read
' e4 r% u, F0 k 7 x, d! d2 d9 ^: H& p7 r3 w3 ]
User Control Panel % t: E6 ^5 I( n* h. E
Edit Signature   }5 o, g7 `1 B7 {$ c1 z
4 X" W7 g9 V& q4 I0 U, O
Edit Options : I) ?# J. j$ j$ t, P: p4 O- C/ ~
Miscellaneous
  _# _1 m- u, X2 v* |Private Messages
( w( v1 t7 l3 [1 N6 C" ?Subscribed Threads 7 v" X: f8 ?% Q7 e

. B& T$ r; Z5 p$ I1 PWho's Online 5 V/ I3 a  I  Z9 b
3 R) S+ k, P! K# W) X; Z
Go to Page... . R5 a4 `( [, i
   
9 @  V3 w1 W* ?: tHow to make a wallhack and how to hook your wallhack!6 c3 ~3 G2 z* F% R" H+ G
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. ... / Q6 F# B7 f2 Z! i" Y

1 l4 C. u) [4 Z5 f; o0 m    Poll: Was this helpful?  5 U2 X' O: N6 e* F8 j
Poll Options
2 x+ [8 |& C4 ZWas this helpful?0 N7 V& ~2 j$ _9 v
Yes, I WILL press the thanks button% L* o5 [1 O0 t6 X9 M; r9 A
No, I am a failure 0 J2 {3 P0 k. I1 S
View Poll Results   & F7 D$ h2 D/ t  y6 w' K
9 R  ?5 h6 z- D. D( ], A
Page 1 of 3 1 2 3 >   6 Z% }/ R/ P% ~) {$ Z& P% W
1 r2 H+ W5 u/ e7 B
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   & l7 e/ b. G) I: q: z5 T
6 J0 \7 M: l( B8 n' ]5 y/ u
) U' C% |6 R) q; |
  
* E/ ^3 \0 l7 L4 V( k 05-02-2009, 20:49    #1  0 B# ~6 R# M0 }5 A! D4 X- ~/ W# U8 w
killax9 9 T( p) \$ g9 Q3 l& X5 K
Punk
& D8 M$ L- Z9 @6 K6 L3 C6 O+ _ % I3 _" ~  T0 R9 B% w

) p1 V, G3 d9 K/ V! F ( ?9 I* h0 g. o' p/ ]

% E4 R* P. e) L- b( X! JJoin Date: Jan 20089 O0 \( F! q8 R- {2 J
Credits: 2,701 [Donate]
1 v$ K( R) r) m0 g5 tPosts: 103 0 J3 N# c6 k2 U  {
Thanks: 109 M8 ~# z) j( o- J
Thanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack! 7 x* H1 o1 C9 [' j$ ^6 g4 Q# B# h7 n
) F/ u4 b. k4 K3 T$ P' N# `# p$ d
--------------------------------------------------------------------------------0 X. P8 T+ r0 N* Z8 i- [$ x" [

; P- ^$ j6 X/ H2 g5 HI will be showing you how to make a detected wallhack and then hook it for it to be undetected.3 {$ L# l8 w0 {- M- I) t' U
Possible Undetected Methods:, a4 `( w" ?4 M8 c: B
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.
* k+ S" L( ]. M2 ^0 J+ L2 Z! K2)another way **** it hack GG.# I" H: L* K) U  F" G) u3 }8 V
3)breakpoint hooking;doesnt change memory... well changes debug registers.& Y8 e) P, d! X, \
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin
% f, |5 ~9 m' E, s& H/ @& I. E, U! F* t8 h1 Q3 L
Vtable:
  j1 `7 `2 t) q# I0 hit wont work for vista its not a vtable hook =)
1 {( ~$ m) h/ N2 b& M  W* |- L1 C$ s1 |
the reason why my older version worked was cuz it hooked
6 o" d' x6 w! I5 XCreatedevice->pointers to the functions: \" C/ o' J, S" f
$ X& ]4 Y+ t- k7 m, g3 D
kinda like a class or a struct.
0 Q* b) k- P4 N" q, I
+ |: e+ g, i! W/ m1 q& @' r* Q, ^. Z' `7 T! d  p
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.
# a* u4 q' ]7 L' ^6 m
6 l& k' |# D( E3 U( o" }- L/ {3rd maybe- some games recreate the device when a map loads...like BF1942.$ q4 V; Z6 |, _$ {
: r' B* G8 E# y5 G6 k3 S
Things needed to do this:
: k$ d6 e3 w  y; U2 o  ]1. Microsoft Visual C++ 2008
. g9 N! O, \( ~2. DirectX_SDK_(Summer 2004)" r' W% Z) i+ ~% X1 h5 V
3. D3d_hooks
* ]6 Y+ |7 t1 V$ s9 x7 C4 \4. IndirectX
. Y& [. N" H3 p1 \% h6 {I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
/ X0 h/ E# A) C& ^$ a. d6 P3 B5 E
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
+ T) L3 @/ O9 c' n! O* r( W% W( t* O, ]+ o& \/ ]) N) Y5 K
YouTube - How to Compile WallHack [Tutorial]  9 ?# L4 \/ Q( g
' `& V0 @! L% r7 u+ K

& @6 c1 B2 l* _+ z" a
" J! v- l5 G1 `  h2 B& b/ g+ wDetected Source Code:
- [+ \; [: t- j! g" v
0 ]' F  y. X$ n# A  J( j1 Y; X5 N#include <windows.h>, d) n& C* [$ v5 z7 O
#include <detours.h>% ^9 l' R9 L+ z! l. O
#include <d3d8.h>
! d) P# l" M% Z5 {3 e#include <d3dx8.h>
% ~: w* N; o7 ?7 w#include "log.h"
6 u; E0 f9 F+ s9 J#include <fstream>% h8 y# Y% p* n. [! S
#include <iostream>
% l2 v. m9 x) e5 _  D8 F#pragma comment(lib, "d3dx8.lib")! j' y( [9 S! c; |
#pragma comment(lib, "d3d8.lib")& Y% Z7 a' X1 e+ e4 M
using namespace std;
  c) Q5 a: [3 @) E1 Y& Q: T/ Istatic DWORD dwBeginScene = 0x6D9D9250;
+ j. n7 G/ i, ]: K% h0 @; estatic DWORD dwEndScene = 0x6d9d93a0;" a: y$ Y$ R" m. c* _. w
static DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;
; ?+ d) i) M4 s# E) E: Y& X- A, [static DWORD dwSetStreamSource = 0x6d9d6760;
9 i, u, f. [9 r- {static DWORD dwSetViewport = 0x6d9d5b90 ;# H; g% _8 ~1 f

" R* x% v# ~( J$ }
% x; C: H. R4 R: o+ ?' mint m_Stride;
9 n9 T8 T7 R7 |3 g0 f( nint texnum;
9 x, b8 i- A0 A1 G& {+ sint nNumVertices;- D4 |2 Q6 u2 ]" ^4 y0 z5 K9 e
int nPrimitiveCount;8 A! [' _. N7 P9 ?" F8 q* h
; N' t0 l. g5 D3 k- L- W4 _
LPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;
/ O! U: p. T  x% B! R. h# U2 v: Zbool Color = true;
7 w- t, m" x! D5 D) C5 B" a3 Sbool Logger = false;
% T1 @$ L+ Q: i/ Zofstream ofile; : o  G( b1 `" o  w$ j% @5 a
char dlldir[320];
, W; |8 M$ W+ Z, m: Q1 m! u, Vfloat ScreenCenterX = 0.0f;
- J2 c: G$ n0 b* y7 z2 N: T6 Qfloat ScreenCenterY = 0.0f;
9 H3 |8 k$ p7 d$ S9 O/ d# p; N) F. rbool xhair = false;# }) A% s" R# Q1 t
bool WallHack = false;
% m  @" {7 \, ?3 N$ c/ Rbool WallHack2 = false;2 l2 L) `; O5 S7 u8 C6 s
HANDLE hand1 =NULL;
" G+ }# o7 w8 N& Q, EHANDLE hand2 =NULL;: n( u# C4 I  f/ s! [2 q

  U2 A( v8 ?" \! H" WDWORD bytes;
8 D0 v1 g) h1 p$ |5 v4 S  y# V- G3 {6 |& O8 n# z
//Logger' r  c2 f7 b5 o
int texarray[1000];
; I" p% _" k( d  ?int arraycounter; ( W$ E$ M0 V. r9 I) A* ?
int delarray[500];
1 u, Q* C8 q% q: k# [9 dint dcount; , J  @2 Z; c( Z
unsigned int arrc;
* x) D6 D; y8 _5 O% J. F3 R- Mint i=0;
/ N+ {% {" N# L/ v5 n; h2 R+ `! g4 V* Q- k

. e0 f' b( j" |& y' hD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );
& R0 `3 x$ ?; k0 P$ R( o  |( a
  Y; F  h" \% |# G- j! S
) l) E+ e. A% B! Nchar *GetDirectoryFile(char *filename)" A! D. ]7 b( O) Z: D/ Z4 v8 H* k
{; {$ S! k9 h( V' v
static char path[320];8 y  X; P* O" R: V% g; h
strcpy(path, dlldir);
8 E+ I1 }7 U. q  @; R# M% Xstrcat(path, filename);6 j) t/ ~0 t( f* V9 N7 c! E
return path;' }# h7 f! P: Q  `% k& P$ W
}! {  N+ R8 d1 J' b0 I) v9 o; B' `0 X

6 {: n- v, e5 d" f! X0 K! J+ Dvoid __cdecl add_log (const char *fmt, ...)- m1 }5 n% B- D" L) R1 W
{
) I3 O# p# H- E9 d7 Z9 rif(ofile != NULL)  n, Y( J$ R2 d- H5 e
{2 M( C/ X/ ~: w# G' I
if(!fmt) { return; }
4 P7 C- g: G- [5 b" i& ^
6 T- X- J  B0 A% f  w9 M8 W! D4 V* |va_list va_alist;! v" j9 i, W5 ]$ _. q1 p* l" n
char logbuf[256] = {0};$ p* g3 k% Z3 t4 v4 D7 X1 p% S

5 m& P% j' c6 ]' f1 k' w1 v, Zva_start (va_alist, fmt);+ w3 C2 j5 X5 ?, x1 `1 J; U4 V$ L: _
_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);  q1 Z/ C, B" a, r, \
va_end (va_alist);0 f; P6 c4 g! l. N; M
5 h$ x1 e) @6 s9 o6 h
ofile << logbuf << endl;
$ y  j7 T: k3 T; j/ O}" `9 @+ |* V0 s4 ^# Q
}! m9 k& n, N) W6 [( g

2 Z+ S( O: Q5 P( `) l5 Z3 E' P& ~HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
5 C. W& _% `1 j( R0 {3 A. r" k{
* [$ f& {5 V, V6 _- F* p4 Oif( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )2 g: L! F' i% Q! f6 n$ ^, c8 U
return E_FAIL;$ j/ m  C- }& `8 n* j' w

0 P% R+ p% h4 T- OWORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)
6 }5 Z) A' E0 I& t, {" U|(WORD)(((colour32>>20)&0xF)<<8)  }6 Y1 G4 ]$ e, t6 G: r' P
|(WORD)(((colour32>>12)&0xF)<<4)
' M: T( v9 P+ {2 t! z|(WORD)(((colour32>>4)&0xF)<<0);
7 V) `  b$ l) \: Q' t
3 ^/ k: w# O8 `3 d9 RD3DLOCKED_RECT d3dlr;
$ V+ Z) K" }! w+ i: O$ ?: x(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);
0 J+ u2 A$ z8 y& k% t6 `WORD *pDst16 = (WORD*)d3dlr.pBits;6 f. e3 j! e# v* Q4 y- v) M

3 n; v+ E) O( f7 ?9 j9 Qfor(int xy=0; xy < 8*8; xy++)
0 [1 T  v0 h3 T0 z" f7 v# v*pDst16++ = colour16;
" B$ {+ [+ _+ V  S& ?  |; C9 T( W/ ?  M! G+ X
(*ppD3Dtex)->UnlockRect(0);% E6 {5 S& M" e. P! w, r

1 ~! F/ I8 Q) p$ B0 a% Treturn S_OK;/ Z7 b. Z+ x' P' Y* Y9 A# i+ |" v1 N) ^
}' ]$ V0 W" H& P' ^8 x) P! r& g& G
- e& G5 y  Q9 e0 H& H
& t7 k2 g* _% y% f. e' h6 J
//=================================EndScene_Start=== ================================================== ============================//: I2 R: z& S  M& I3 Y# z  f) c
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
: B$ Q& z1 s) eoEndScene pEndScene;1 r/ l1 `/ e! N% @
) e( _7 m" Z: f" y( n2 d
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)% D1 y& ]0 h- e0 ~
{
3 R3 Y- Y& R  i( i5 m) b$ vif(Color)
0 e1 s" F" s& ^{ 0 }6 ?1 _/ z0 o. R! m
GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
: f$ e5 L' F2 aGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));1 T# V( G" T: p* U7 ]6 C6 O/ @
GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
8 G: Z9 m: k% ~7 U+ K+ VGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));
6 x' t/ `0 g- k# K5 BGenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));: m8 V1 N1 h3 n8 D9 B0 G2 g
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));
3 ?5 V- E9 B, Z* q5 E$ ^& rGenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));
) N1 ]3 c" r8 E: hColor=false;
, Z$ I: t5 O* c) c2 L( e}& X* L7 u8 ?9 x, p. g
' C8 Y1 Q  {4 x5 p- ?# \
if(xhair)* D8 l- j" l2 K
{
; T4 B+ c, j5 {1 a% yD3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};$ S8 a: j* s( N: N: J
D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};
, H7 n7 ~) i" EpDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);& X% ]6 l5 _3 M2 E! X
pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);7 ~: q* t: n- b- u1 s' e0 s* A% k: m* P
}
% N) }. F6 P; k3 u
# }5 r- R/ T7 p8 h6 e//=============================================UnHoo K_Start=========================================== ========//5 h( }( I% a4 Y$ X5 ?
6 N0 }% o; S% n6 a3 {; l" f- K
if((GetAsyncKeyState(VK_F5)&1)) + u( }6 M! r+ i+ C+ r: A
{
8 K' V$ W" @3 z$ Bint end =NULL;' f7 n) D9 Q6 f4 G# F3 @; {
int dip =NULL;
4 @& |% q# A; r5 H8 r5 |' g0 Bint svp =NULL;
+ X- ]$ [4 {9 |5 X% A2 p7 w/ Zint sss =NULL;8 H4 j( }* x# _' t' O8 W4 t

6 A. G7 L* Z$ i  H7 |3 q1 t* n6 f, h1 O
BYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes./ u5 t2 G8 C( ]; V% s+ W% J' q
hand1 = GetCurrentProcess();5 z4 J3 ^$ \+ e. {7 c! B
DWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");
# W* s3 B$ @3 E( Qend = 0x6d9d93a0;
, T, Y0 a. E% W; h6 e0 l2 sdip = 0x6d9d73a0;
, @% d+ U% @5 R5 a7 W) m5 ksvp = 0x6d9d5b90;
/ U. x6 R* r8 O: e- f# o  asss = 0x6d9d6760;
' n9 r& P- h* i0 x: O
0 q, u. n4 t* z. xWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);  H$ ?  X& ~" k9 k8 b8 v/ @
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);) K* j2 J: }$ ?; @# R- U) E& L
WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);
' [- Z* b: c% P" b" g* qWriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);
- x+ A4 O* W" s2 @/ n} / u4 s8 G0 G+ `5 v1 e
//=========================================UnHook_En d================================================= ========//, ?- c/ c$ F1 K

0 U; w9 ]: E; x( Y# {$ K- Q% Oif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} 9 _7 R4 ?+ I5 R, `' ]
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} ) b5 S" f, h4 g1 [/ h" o( D% _# s; e

) g1 A* E& D5 F8 ~9 t7 rreturn pEndScene(pDevice);
- k, F' d( l+ {+ a}8 z8 O$ U' H7 N* `& |5 R
//====================================EndScene_End== ================================================== ========================//
8 O. t) f: H( Z% `8 _# {8 C; V9 W2 Y4 u% i1 R" u0 w8 A9 O% @6 w

6 a9 D( i  Z- {4 w/ x! G6 C0 ?& O0 K4 r' V

! U% @& F3 G  y) @% m" E! u9 y//=================================Dip_Start======== ================================================== ==================================//5 U0 ?6 {. @/ r
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
; m9 a* o/ u3 r2 W% xoDrawIndexedPrimitive pDrawIndexedPrimitive;# f5 C. D4 D1 S3 k; ?
# ~  s$ A. l# }$ m
HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
6 e3 @: }, J- t& D  R" c0 K) e{, A' L" H1 N9 e! y) x6 W
6 `6 f: u' C  l

9 |  x$ `0 H9 t& v: r4 ?/ x' Y, [; s, ~1 U! z0 ~6 g
& @$ X$ {: e. K% Q
if(WallHack)
& I3 H9 \9 f8 u{9 `% n# J( R/ o. G7 L
texnum = (nNumVertices*100000)+nPrimitiveCount;
6 K6 M" Q% u, L( M; E1 Pif(m_Stride==40 && 4 @: Y7 }; z7 X
& ]0 b% x/ X* k3 X3 I4 i+ w
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||( v: A1 U, k" G# C
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
8 J" b3 f2 _) e" W! G" C# j(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||. x9 n, n: W  k4 u8 T6 p9 w
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||
6 [, d  W+ ^7 d(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||# |* i0 Q! w2 V6 b
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)||
5 F4 [2 j( U1 p$ \* O(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| 3 D2 x% L/ U% w) d6 i
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
+ S7 v& |+ l& ?9 r(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)||
7 h- x+ n& O  t% a( W$ E(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
6 m6 n/ P* \3 U& ^4 A8 {/ e(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&
7 i  v& e! F1 m  f$ h  D& B  _& X* {
8 a8 d2 {0 M) c' q  y

7 p% x8 }( b( i9 Q( O1 r5 g(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot
! B, }- z# u1 F(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm
6 }2 J9 q& L0 Y# C$ f(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
: p3 |) l5 v; J(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
1 @4 W  h% E& A. w- F/ \(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)8 d. u- `) b3 C% p
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head 0 d2 b! T, r- k2 q6 l4 a  W* D8 B3 e
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item $ w0 a6 |. M3 B5 F& A8 Q4 j
(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
; N5 w& W0 G7 B+ [; L0 ~. m, F! h(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants6 @+ |0 N7 t3 P2 W9 M( G

+ N8 G- @- P1 f! g& g/ R# I! o( c{
8 X% r( h8 _7 ~" P; Q2 h3 Y$ IpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
3 i& e# n6 k  A* a5 k# f; G* A2 ~pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
0 H* ~$ L7 n7 K; r' }pDevice->SetTexture(0,Orange);
, Y5 z' ~5 ~* K" _//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );0 Z& i4 \1 q1 t4 H) X

7 @  Z, u; M9 o! lpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
. J# F/ p' B0 @
. n0 o  \: W3 W7 }//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );+ i, ]2 d  X% g5 N) q
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
- Z2 N" E3 f% I, I4 ^! a; t0 apDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);& \. k( O$ ]2 d( O0 ~9 V
pDevice->SetTexture(0,Pink);& K# g  o( S& e% k! L. K
} - O0 ?1 e- d2 Q& {' y
$ \$ j7 ]1 C7 ]. l
if(m_Stride==40 && texnum== 21300174)
/ D! J" I! L# A, D- f{
- |' f2 b5 Y; B6 W6 }1 npDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
. d0 H/ d5 [) A+ [/ t6 u# l9 ZpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);4 o% r! I& q6 }& N6 j' @( t
pDevice->SetTexture(0,Green);//GreenNade- v( I' R$ O- V& d
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);0 E5 ]* i# [; \3 o) V
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);$ F9 j/ y% c& D3 l+ B* T, O
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
  G7 j$ A; g& tpDevice->SetTexture(0,Purple);
. B: n/ J; V; A) _} ( R" i& q$ `' J4 j6 Z

/ C- Q. C5 B4 l& N; T3 ~) ^: H+ G/ L  f7 S, J' A7 N
if(nNumVertices == 158 && nPrimitiveCount == 131)4 M! w- W, s# I7 J, B
{+ Z/ V* f& B8 U" X( [' s3 B/ r; ^
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);. W; N" u- c! A  B2 ]2 a5 c
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
- B# b3 _8 j+ H# z' ppDevice->SetTexture(0,Red);//GreenNade- c# ~. u$ k4 d
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);* u2 h' c6 h* l$ z
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
5 d* n( S; Q( G6 S' dpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
1 P1 m% X% L4 |: u5 [# E. H% {* |pDevice->SetTexture(0,Yellow);
) p. }7 A2 ^- ]9 K# h' i, a# `0 H; v}0 x5 Y) k. ^5 Z$ T

3 B* H% \0 Q9 ~% _4 o: Mif (nNumVertices == 171 && nPrimitiveCount == 143)+ }/ W5 D6 _- {) i
{
4 K7 r$ b* O) Z6 G) {- Z8 m" K9 n' X% E2 k0 w
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
, Q  p( T) T$ u; n3 DpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
0 {, K# q, `$ N0 l6 s! @# H# |" {pDevice->SetTexture(0,Red);//GreenNade
9 O3 J; n+ v$ VpDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
( x9 F9 [4 h2 M2 j1 Q8 o. G+ {pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
4 h0 U  @* T6 U. h  OpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
' V; D+ d  J* h  Q# zpDevice->SetTexture(0,Yellow);
  \# x6 U4 S0 q1 P% J! k; F+ Z}% o" Z6 ?5 B+ ?

! O) I- h, }" d! s' }3 k: A% _1 S# J4 }9 `. h+ }* N

' @* Q, t/ F3 c$ ?if(m_Stride==40 &&//face,mask etc.... m! G; b+ B* Q& ~% _6 b
(texnum==36700612) ||
" Y' p9 b2 l' D4 d2 k& {(texnum==9600172 ) ||! m% p: D# ?. x" _+ E- c7 ?
(texnum==14200236) ||$ }" N# l. M8 q/ G  _8 L
(texnum==37800552) ||
! ?7 }: W' r& a5 z, N$ B0 B(texnum==28100486) ||
7 S$ ~* C" x. U5 ?( l(texnum==35500568) ||! E- x7 n/ ]' R  ~! x
(texnum==2200024 ) ||
$ V' M' _$ P8 A: }(texnum==16200243) ||
4 P" g: e  ?, s- @(texnum==31900466) ||
9 L# e6 F! p* W(texnum==19300342) ||
% I1 Q' d6 \, o9 P: u% S( _(texnum==36200604) ||* h* o8 q6 z( j- Y( d
(texnum==21300290) ||
) e  f9 v1 _8 @(texnum==35700558) ||
+ k7 ^& C9 {, y1 j(texnum==22100396) ||
3 c# C3 t" t: X( B8 q" j(texnum==36100604) ||
1 ]: G) U0 k$ S- Q4 l(texnum==27100464) ||6 H2 _! B3 K& `1 d+ ]
(texnum==11400180) ||
7 I7 C  Z! }2 o( V) Z  n(texnum==34900580) ||( G) o6 A, l% L0 D" X' b. ]7 k6 I
(texnum==13200212) ||
# [, Y1 M1 f; w2 q(texnum==34700538) ||
2 {4 j9 Y% b! G7 a& O' Q(texnum==19500352)&&" d: C- i, i! {  q8 m# m0 ]
(nNumVertices == 448 && nPrimitiveCount == 776))/ K6 Z( u0 d/ r2 [" b
% ^) ^; g& F! B6 `  I! K; h2 p
{
( T9 x0 N* j' y. g/ G( \, K) upDevice->SetTexture(0,Blue);2 \0 K7 \: k% B
}% R: T) |/ p- ]9 A: l3 U
, {2 s! }8 O$ i. L# X; N2 q
: a0 Z; a+ z2 T, i8 \  g# s) m8 C
{
' T4 O; o- O/ O7 UpDevice->SetRenderState(D3DRS_FOGENABLE,false);" T/ m! K/ |; N5 T
}8 Z7 `# G6 ?& s
/ N; K& R# u9 ^% Y" P
/*Logger
- V$ X7 a3 U( t, Gif(m_Stride==40){4 p# n/ Z5 Y& L- b9 C
) _" |8 Y- D# V5 H, [9 D
9 Q( W( B5 _( }/ j& Z
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray1 Z( h& B# J, s* a  k5 m9 O
while(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
8 L, H/ E+ S9 G7 m- ubool alrdy=false;
1 {' R, \! H" J8 ^, Xbool inarr=false;
  f5 M# T% i- k) a1 O; l) n
. z: \# [0 F# r2 ?8 ^: Cif(texarray[arrc]==texnum)
: ?/ S% N) {, k! k$ dif(delarray==texarray[arrc])
7 @6 [& Y" I  W$ p1 nalrdy=true;
/ x# G# [$ h* k) O5 m- rfor(int i=0;i<dcount;i++) //sees if said texture is in delarray* @4 H4 ]/ a" P
if(delarray==texnum)
- \* c# `% i# ?inarr=true;" D, `  |# ]* V6 K
if(texarray[arrc]==texnum || inarr){ //If true, color model differently
  Z: O6 z; N8 i" W7 HLPDIRECT3DTEXTURE8 texCol;+ ^. k# m3 U) s) g* T  v, @. u# K, P9 f
DWORD dwOldZEnable = D3DZB_TRUE; & `, U4 M; I' B2 Z0 i1 R) ^0 {: x0 f
pDevice->SetTexture(0, NULL);; D. N1 ^" X7 _+ s2 p+ D
pDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable);   x$ }. F$ U1 q
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);1 @" j7 G- K8 j. A. A( e
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
' R5 M8 `$ N  h# ]$ R3 WtexCol=Blue;! E8 L9 `4 h/ @; y) v
else
9 w3 x0 a! g4 StexCol=Red;" N: x7 [& g5 G% h% i
pDevice->SetTexture(0, texCol);5 Z" @* j; z- o1 I* P7 K  ]0 \
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
( E) `/ V- A' @! ZpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
5 O- H5 a- [8 Y  Y' S2 v1 ?: Y* f3 C. I
}& H* N/ f  K- Q( @4 j, D$ A' [
}6 _$ r% ^8 K0 [7 ]7 D4 d
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile' a# l9 c7 B; ^& A' h
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array* x7 l5 f. x8 J' D- \
bool inarr=true;8 S% O2 y. I5 O2 r8 |! o
for(int k=0;k<dcount;k++){
) p: N3 ~$ W- Aif(delarray[k]==texarray[arrc])
+ [# W; z/ H- C{
1 K, R4 Y# s7 r9 F$ [inarr=false;//Found selected texture to already exist# F; |* Z) e5 W- [7 R6 y7 J/ x8 L. N1 c
delarray[k]=0;//Delete texture
" b) B1 C- R2 e. }. Wbreak;//Cancel loop, W& ^$ {! M" m4 B
}/ L6 [" f2 z; K4 L0 m9 @1 F
}
2 F5 s8 u# I9 V6 j& uif(inarr==true)
5 p: O0 v' c4 F" s5 f) [{2 r8 I, U! k3 X
delarray[dcount]=texarray[arrc];//Add texture
$ y. P- }! x! ^- |7 c5 T4 ydcount++;$ a7 p4 \( S5 |# H; r
}
, Q5 f1 _! u3 U2 o}
7 }  Q' c" g# n1 Q* e. Fif(GetAsyncKeyState(VK_F7)&1){
: u) b& u9 K6 i7 J5 }0 z& |5 tint total=1;
9 m7 d: c5 T- q4 X) Xadd_log("omfg values?!? {");
' m' c; Z; V5 D3 E) D: P$ Rfor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
! G6 L, _" S# [/ Q* S( ?" Wif(delarray[x]){. t7 R& N8 V' Z& W) V5 v$ N1 r
add_log("%i,",delarray[x]); //add_log2==add_log but without endl
$ I9 L/ d0 I" m/ jtotal++;5 ?# Y# E9 m- R! f6 w
}% X  }, W+ P( \% ^& _& \
add_log("}; %i variables in array",total);
! V1 K% }' x' Z! [6 U! C}
- N6 V6 z% n1 b" Bbool found = false; //THIS PART CREDITS TO KRYPTEC
% o) d8 S$ @( U- O6 r6 {for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION
6 R# Q  c0 a) H6 u# P' z{
6 y8 j7 m# h6 u. J% |if(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT, U4 P* V. q% F* [* w; a
}
9 r6 R& S5 F! x6 wif(!found && arraycounter < 1000)2 |9 l. P* d; N+ N8 c( n6 s
{) Q4 h2 _6 s3 |" q3 N( i; t1 J; |
texarray[arraycounter]=texnum;8 M4 C9 ~# L2 Q* @+ T& f! o- m% k
arraycounter++;) }; t* K8 J  K. P" S
}*/
. H' |+ w) |- X( n/ B& ?2 C) Z) _/ s) Z
2 c' |7 M8 R3 J4 V0 m
}
/ X( Q( k$ X/ p- Oreturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
& {' N& c! ~9 o8 Q- T5 E  {}' k( D. D2 ]/ P  s" m
//=====================================Dip_End====== ================================================== ===================//6 ?- K$ m. O  v' h
# R3 d% c7 Y4 I6 g% w

/ ?+ P1 Z: c8 R& g0 Y: r; c//=====================================Sss_Start==== ================================================== ====================//1 W. P2 }9 B$ ~. }- X7 }1 a5 N
typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );# b# O" W  D9 J" p
oSetStreamSource pSetStreamSource;
8 h' q/ C/ [4 n2 L8 R
( G; P9 s: O1 O3 s0 r) A- u3 `HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)
; H" b6 P% Q. N2 C{
1 F% Z1 R. o. pif(nStreamNumber==0)
5 G$ I5 i, Z7 nm_Stride = nStride;
$ S2 E4 e4 c/ `0 C4 y; s
2 h' T) F# X% s( ~( vreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
2 D, s( B3 d. B. P1 W}# L+ [' B; d' y* ?
//====================================Sss_End======= ================================================== ===================//* n+ \/ o( F# F! r" ]
- k6 a0 b3 t4 J. Z
//====================================Svp_Start===== ================================================== ===================//5 R- ~% l5 n$ o6 }8 A# u
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);' P4 e4 F, z" i3 o
oSetViewport pSetViewport;7 i  K: _9 I' F: y/ ?
3 C" ~( Q/ q2 b7 c( Y
HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)% ]0 D2 a9 s7 @8 Q4 g
{5 S. X" O0 o' P: }% w2 i
ScreenCenterX = ( float )pViewport->Width / 2;
, T8 m! \0 _/ g: m7 E: x3 \  M4 AScreenCenterY = ( float )pViewport->Height / 2; 8 p: {5 ^# t7 C. N; W

) K- C* f$ q3 Z8 ?; Qreturn pSetViewport(pDevice,pViewport);' Z5 w# B+ A8 B; w- m" p8 [
}
8 L1 }4 r  o9 i+ L* g//===================================Svp_End======== ================================================== ===================//: u: m; n) w+ `! C

% {" X) P6 }9 atypedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
6 E3 t/ p+ W* c2 o# U6 K+ coBeginScene pBeginScene;
3 S% u. @9 x+ s1 l( X7 ]) n! r% |# S
& ?8 o2 y! ^3 k$ XHRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
1 ]2 [7 ^- n* n; p; y2 H+ H* B{& c/ W3 D2 {5 V3 M( D& K- s0 g
if((GetAsyncKeyState(VK_F6)&1))
; c; [9 `9 S0 S; L+ K2 q{
0 k/ S8 b7 a, w/ g6 h% }pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);  d6 L7 ~' I- d: ^; M# K
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
( ^' a2 r0 d& r5 J' M: u- U7 o! @pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);% f0 |! Q, j3 L4 V  Z
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);6 h2 D7 f% A7 }1 i  A; h, Q" q9 B
}' I( l+ [- S2 Z9 ^& D

4 C' ~5 y5 `" w1 b* c3 Hreturn pBeginScene(pDevice);
" f4 x& P; p9 p& A}
' @  T: b, w% c: E, R
0 w6 J' Z; W) @8 G
( N0 H5 J' z  H1 I! aBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )% A. Z4 U- P3 R; W4 m! B9 Y: ~+ G
{
! T' L6 J8 T/ R. A7 qDisableThreadLibraryCalls(hModule);
" u% ~& m- \# R/ p3 K  l
, z4 j) r5 K+ ]6 {if ( dwReason == DLL_PROCESS_ATTACH )1 N5 ?# ~! P) R& @
{
5 n; X: J7 \0 L" O: C, S0 r2 |5 p1 g4 g$ s  @% q( R) Z
//=========Log==========================//
5 w5 I5 \  n( t, DGetModuleFileName(hModule, dlldir, 512);# M' F% A# I8 S$ t, _
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }8 l7 X7 v. a% w3 a
ofile.open(GetDirectoryFile("log.txt"), ios::app); ) ^3 Z; u$ x' a5 D
//=========Log=========================//
& n$ B6 Z' i5 {) \3 `' y% ]$ D  _( L" ?4 b$ S6 \4 Z# y0 \7 W$ D
pBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);
# l+ A6 t# A1 x9 ]9 W) u0 lpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);6 U" w& _# Q: {- v5 g9 |. J
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);9 r  v$ s+ t, S& w# m9 a
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);
; Q6 b& m1 P) SpSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);  {. ]' T) d' h' \2 g

: v; e& [7 d# p1 r}
' b$ i7 D6 H+ b7 sreturn TRUE;
; D6 e0 c* J% N* x3 T1 M& Z}
' I( V% D8 f. n/ }9 r& G
/ N% p9 H0 m0 x8 |1 f
9 z0 {+ K3 N6 f* q! P5 @Log.h (The header File):
& q4 a8 f# U# G, b5 A5 F. v9 K2 ^
+ u2 c; z, [2 B& V4 I: Y#define WIN32_LEAN_AND_MEAN. C6 R! \1 C, R, W* W1 j& _1 B: H9 `
, s4 l8 G9 I' V6 V2 T) B9 j$ u
#ifndef _MAIN_H
! j/ U$ Y. y! ~( _, @  ]  u#define _MAIN_H' Q+ F" t6 ^6 r
' |" w9 s1 |# I. d2 ~4 a' m
char *GetDirectoryFile(char *filename);
( X$ }1 K- j7 l9 w( H4 V3 l3 uvoid __cdecl add_log (const char * fmt, ...);7 S) H& ?; H+ \3 W2 X
#endif 2 J0 W/ ^& C4 ^# s4 a9 ~
. Q2 ]) d" W. j) |
Now after you have built your wallhack you will be able 2 find it in :
, U5 o* l; ?4 n; SC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)2 j  w: T3 X% k+ {: e8 _7 z  w
$ x' a3 ]2 ?3 f6 b* F( U- C* v6 {4 S
Now I will show you how to make your wallhack undetected:% \5 N* T, {6 r2 z; s: S
1. Download D3d hooks. q$ s* ^) k3 L$ R( Y* H/ p+ q; x! [
2. Open the file that says "create device code made by me.h"
, j$ F9 G/ X" U5 k7 Z$ f6 p* R2 n3. You will need to make another header file in your project and then put name it create device and paste that code it.
- t; F8 B' y7 A* S' l/ \8 Y! Z  s4. Your wallhack is now undetected.9 [7 s8 T% s( ?$ D! ?3 Q  ~

8 J" f4 ]3 a& U. d; A% Z! jCredits:- U+ m: J/ G; G5 C
1. ME FOR THE TUTURIAL3 Z8 w0 t3 L; A
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
7 m0 y, H! J( x3. FATBOY88 FOR THE SOURCE CODE
" |& ?7 F# z) G3 ~, N8 a$ b; W# K4. THE INDIRECTX I JUST FOUND :P1 U! p+ i/ T$ e* r
: o- q- R8 [5 o( ~' d; }% i
Attachments:: T7 u4 n" u# k, ^  V
D3d_hooks: http://www.mediafire.com/?qzz0gwdjvj50 Q; Z  ?, k4 h8 f1 y8 h1 D
IndirectX: http://www.mediafire.com/?gimzgmeny11
, r, y  z3 A  a+ ~2 YMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj53 f. b' a  e0 W6 T
SEARCH THE LAST ONE UP
. Z& B# D  q2 }# [6 a  g__________________
* Z# U$ k# q3 u! V# s1 a& M  ^/ E* H1 `9 G+ [7 `' ?
<---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。5 s1 ]7 L5 D/ y4 k8 b
主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。
; S) w" p: \, ~, g& ?: x! z2 ~- S这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。9 i  r3 ]4 i: e# L: B/ C
有个帖子,简单的说了一下,以后还会有大量资料放出来的。
  m4 G7 c& M$ l0 w( Q+ ]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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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