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

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

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

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

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

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

原文8 b$ X/ d' E5 k7 C
http://www.descipe.net/forum/sol ... -your-wallhack.html
6 S0 d4 d+ I1 l- y% o
- n3 Z9 Q+ t- @  H/ j视频教学
! l7 T6 L4 L7 O1 a  a8 T$ ]$ Uhttp://www.youtube.com/watch?v=6b5XMzT-b_U   
, Y. V3 J/ ~  Z6 D* o0 t" N( E* R7 P5 D! v( U! \5 ]. s% Q
HomeHome User CPUser CP FAQFAQ Members ListMembers List CalendarCalendar SearchSearch 1 G  |' G# g4 o3 D  z

+ P( p" y8 O  g( B; f! T Hello shane007,
$ |1 Q. _% l% n1 W: wOur 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. $ H. ?9 I( t' E2 c
0 ]* E% U; N' ^+ ?! S: F3 g$ U
Why not start with your first post today and become an active part of DEScipe.net now!
- w6 Q6 u# X% V1 d- j ( b' @8 x# g0 z; Q
" l/ L; r/ @0 t: y4 b
  ! d+ z' g$ D5 R. \
   DEScipe.net > MMOFPS's > Soldier Front > Soldier Front Cheats  
" p, f2 V1 ~4 c2 n How to make a wallhack and how to hook your wallhack!  
4 l  `1 f; G1 D8 G+ |( U' ` Welcome, shane007.
: B( n4 c9 u. m! L6 i( tYou last visited: Today at 03:55
/ t4 U5 g" _* z% k9 R* x9 V5 PPrivate Messages: Unread 0, Total 0. 6 A( I1 T. z( J+ c
Credits: 200 [Check]  
* M1 y2 m) H3 z) `& S; @5 [  V! K: C. P; W7 z& W
Home User CP FAQ Members List Calendar New Posts Search   Quick Links   Log Out
- y; {; u( c9 ]9 a4 Y
2 a0 U: s, N; U3 Y3 `
7 X# _  L5 E7 @$ I6 f7 d" c' q# p* I1 q3 X
Search Forums
% H$ x! L, Q: d' J: v' N9 d% }) _      
# s4 J9 F. ^/ ?2 c3 ]9 N/ `, B
( {) i) o- M2 ]$ Z( `- BShow Threads   Show Posts  * l  F$ \" @' P! h2 ~$ B
Advanced Search 2 [. y! ~* v2 D. x
Find All Thanked Posts , A* s5 ?# \* E6 `3 w
4 v6 m2 f+ P# y( v( N2 B
Quick Links # Y! F5 j' O! l. W4 U9 J: y
Today's Posts
' A$ h6 J& A8 pMark Forums Read " \6 J; r. T" f- f

$ E/ A# R) F+ P4 @User Control Panel
3 S7 Q$ E" a) m( @) tEdit Signature
/ \1 Z9 F1 \$ w) H( W, B
0 h7 R, C, Q1 W1 q9 y+ l: ^/ P; a  EEdit Options
- \3 |, f: y' b) |Miscellaneous
  Q+ i$ E6 F! H, t; MPrivate Messages   X1 V" m9 e- d) |! j* l
Subscribed Threads + H7 A* ~7 w' q  g+ i. q

+ [' L! {( Y& z  S9 NWho's Online
$ T6 @. i' f7 o; b/ k$ y- A' B% R/ o2 m$ n* W
Go to Page... 2 t3 e0 B  M& J3 L# J
   % }2 U3 p% U' w
How to make a wallhack and how to hook your wallhack!
( C9 T$ h- J. p# Q* P4 WThis is a discussion on How to make a wallhack and how to hook your wallhack! within the Soldier Front Cheats forum part of the Soldier Front category; I will be showing you how to make a detected wallhack and then hook it for it to be undetected. ...
- B  y& O/ Y+ ?: ]# \' v% q% m) e8 X+ X1 o. u: N
    Poll: Was this helpful?  & k  r1 g, q$ }( Q; I
Poll Options9 f6 O% h4 J0 a; m1 k/ W1 L5 ?+ \
Was this helpful?3 x9 B9 H- v+ D5 P7 v' u9 }0 m
Yes, I WILL press the thanks button" q8 `, x# ~* d2 E( |/ i$ V9 ]' O" T
No, I am a failure
" ?8 d3 p& R5 _6 {/ W! E5 `! uView Poll Results   
: r; z& i" ?4 F+ Q9 k
$ U! F2 g, K2 n. X# p2 d2 I Page 1 of 3 1 2 3 >   
& j' b, H1 S/ `% D 5 s& n  j7 O& \4 C& s" e0 }
View First Unread    LinkBack   Thread Tools   Search this Thread   Rate Thread   Display Modes   
4 H6 y! V$ W6 `" k/ s3 w+ H# V2 Y' I1 r$ a; I5 M5 R. ^
) L, ]& Z% Q3 }: I- |# M/ u9 v2 Y
  # Y" u5 ]8 ~2 o( i$ g6 |
05-02-2009, 20:49    #1  ! o9 d9 z# |2 L9 h
killax9
' p' z# f5 k+ E4 rPunk
1 q+ `2 q( B6 G8 S % A; ?. w2 ~) V1 I4 L5 F" E
5 z9 Z& Y* B; X! F+ d0 v9 K
  _  h, `3 X" \4 p& u4 l
/ D# S) D0 r8 ]- t; x4 z2 n  R2 i+ k2 u
Join Date: Jan 2008/ y, [9 D% I/ ?2 n  h0 F; D0 [
Credits: 2,701 [Donate] ! M  N, _. b/ K0 P# G
Posts: 103 : V+ c: v1 P6 X3 @; I% A; `
Thanks: 10' Y& J" p4 ^$ y  B4 r. R
Thanked 48 Times in 25 Posts   How to make a wallhack and how to hook your wallhack!
  o6 |+ |8 o  i; D' k3 e+ |% G6 J' Y% ~, G5 f& _' P/ z) B
--------------------------------------------------------------------------------
' f8 Q! J! j9 o( F- ~, \! l
, p- t5 u0 n' g0 bI will be showing you how to make a detected wallhack and then hook it for it to be undetected.
* t9 T0 z. I; X9 [: w7 [# SPossible Undetected Methods:
$ j" R3 ]# l* T$ u2 I# q1)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.' g: Q# C# @& N
2)another way **** it hack GG.
: y0 ~7 E3 l# K7 N3)breakpoint hooking;doesnt change memory... well changes debug registers.  W; @6 ~5 r" ~/ k5 H# L, L( V2 P
4)code cave the hook int3->Jmp then in the code cave->Jmp(detour)d3d functions ->jmp back to original flow ;Hook hopin' y% m9 C8 q1 H0 f3 ^9 \# r- [1 G$ R

! [. d* w2 j: F6 o% M% hVtable:7 X: J& C; W8 z$ |% N2 [. D
it wont work for vista its not a vtable hook =)
7 j6 }# e; D, F2 D- q. F7 f) ^
the reason why my older version worked was cuz it hooked 7 x/ a- b1 a7 J( n% ]8 ^
Createdevice->pointers to the functions/ a& Y9 Q9 d* W: m
  q( y2 P' T+ N7 z- {
kinda like a class or a struct.) E; t6 X% k3 S; U1 @0 R2 h1 p

6 k& h/ O& l) \- ~) Y# y5 p2 ^3 U: _7 F) X4 ~3 X
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.
) w0 E: |# s5 L1 l" D: r3 E: ^* @' M; E9 [1 Z# v2 Z& S
3rd maybe- some games recreate the device when a map loads...like BF1942.
. ^( s# j% l( e; r4 e, u. M1 V+ b: P$ _: J) D- A/ ]/ }
Things needed to do this:8 z* p0 k" X) \' a% \* F
1. Microsoft Visual C++ 2008) ~3 R! y6 @# T* }8 A1 R
2. DirectX_SDK_(Summer 2004)
' J3 Q. A* \) J3 Z3. D3d_hooks! l! i: Q) b# h" b5 P+ l
4. IndirectX1 ^9 n2 K5 J8 |) u6 t% w. S4 Z
I HAVE ATTACHED ALL OF THESE FILES AT THE BOTTEM
9 L# h+ q; Q: R& v$ w' s" t; s. L0 B2 w: [0 `, Y
Now most of you don't know how to compile a wallhack so watch this video and you will compile with no errors:
4 [5 e6 a* ]# E9 `+ }% Q5 _# t6 I0 V0 ^* c- c
YouTube - How to Compile WallHack [Tutorial]  
4 p- J# B& K1 i/ @6 o/ e
! ~& `) }* }# x( j5 V6 I! g' S, Z

! ]0 c1 m( z" N- VDetected Source Code:
6 Y2 _6 p' i& f, k# q; B( e# m+ }$ B3 i& p) s
#include <windows.h>% P$ y  J) p* x, P. D$ z+ i! b# K
#include <detours.h>
+ S9 V' X7 l8 W9 Z- ]# V#include <d3d8.h>
$ t* p9 @# Q6 @: |: w# A#include <d3dx8.h>, f! ?- I& N& ~9 H, B$ @
#include "log.h"
" F9 q4 j8 c4 t) g( a( O0 o0 F6 w: c5 l#include <fstream>
7 g! z2 q9 g& S  t/ |2 p" ]9 w#include <iostream>
/ m& j: m# {" E; x: U" H#pragma comment(lib, "d3dx8.lib")
; a0 U4 Z& U* a  m/ A8 }2 ?9 J#pragma comment(lib, "d3d8.lib")
, y1 r9 c: {; G; A: nusing namespace std;
3 M# u0 b3 p# t% Ystatic DWORD dwBeginScene = 0x6D9D9250;
( N2 e* ]; H5 B6 ~- xstatic DWORD dwEndScene = 0x6d9d93a0;
0 f( Q/ ?0 ~; jstatic DWORD dwDrawIndexedPrimitive = 0x6d9d73a0;( w7 f: U% V5 J5 t. `) @! L0 ~5 R" O
static DWORD dwSetStreamSource = 0x6d9d6760;
+ U1 \6 c  C9 c$ c1 @static DWORD dwSetViewport = 0x6d9d5b90 ;& o6 d7 o- X) v# L
! L2 i9 j  g" _) t4 T
3 m/ b/ N" T- z2 Y; A* g* L( y) B
int m_Stride;
8 o+ b5 d! h! P# N/ u- U/ ?4 G. dint texnum;
, e- E; g7 h  n7 ^int nNumVertices;
5 a0 J2 `/ d2 t+ q3 ?  ^; `' V* _- @int nPrimitiveCount;
% z9 g3 M" e' e! \9 @+ V
: N1 _2 p7 P, P$ g& d1 d6 CLPDIRECT3DTEXTURE8 Red,Yellow,Green,Blue,Purple,Pink,Orange;, }* o( M& G! l5 F) j+ u. [/ z2 [
bool Color = true;' f: a8 Z, e( z
bool Logger = false;
, C/ W7 H& x+ t0 Y/ I8 [ofstream ofile;
/ N, B0 J. f5 F" y% m: M/ Jchar dlldir[320];$ ]5 W; B) W# y0 S
float ScreenCenterX = 0.0f;
  u  H6 R% G# Q+ [& [2 N% Y" Ifloat ScreenCenterY = 0.0f;
$ A- Z6 L, ?3 w8 h7 I# nbool xhair = false;
* R, w& i4 R5 d2 Ybool WallHack = false; " c* j$ [0 g7 ^1 ?% i1 V) p
bool WallHack2 = false;6 D: H* Y% C  [' Z4 w0 ?
HANDLE hand1 =NULL;& g( S1 ^* D" S  ^7 R* D5 ~) m! T! E
HANDLE hand2 =NULL;; `8 T* N: a, R

( }0 S% p& f5 N. ]% GDWORD bytes;
6 ]1 S  w1 S! X$ h1 t4 }' {9 P, i1 K
//Logger
  Q0 `  x7 m/ o* J  \int texarray[1000];
* {, D# w/ e2 y6 t8 jint arraycounter; * }, U0 d5 b2 u: l
int delarray[500]; 5 t, L& s4 }$ V2 _% u- f
int dcount;
$ w: Z1 D, e) l+ x& L. q6 Z6 `# Aunsigned int arrc;8 |" {* D: S& E3 p$ o
int i=0;
( J$ {6 o; Z' l4 V" }9 G7 w. o3 W
) `  T/ J( y- H; r, I1 t/ q
# L; K, K( Q5 FD3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );- V1 v  N' q3 M

* X  Z$ F- n  g; S, d: o8 {9 R
* G% Z5 F6 |7 _! c% Pchar *GetDirectoryFile(char *filename)1 T: X/ E: m' {5 t; N8 }
{$ w; r4 ~2 L0 ^! h2 l. h
static char path[320];. s8 @( \! b0 _4 B; g) {
strcpy(path, dlldir);' r+ T) ?9 m* l
strcat(path, filename);0 ^, @* A8 y! o
return path;9 ^! H& h% V2 S" x- D3 O
}
- p* j. z: q% u7 S: g6 ?: Y& _# @
: R% B6 t  c$ T& Hvoid __cdecl add_log (const char *fmt, ...)
1 ^2 a- k# c' j. Y$ M{6 P3 r) m4 z7 L( r
if(ofile != NULL)* p$ i* g5 [  ]" B
{( M" I3 H/ y5 w6 _% b  V- ]  E
if(!fmt) { return; }: w) s# v8 X* h+ o5 H- Z* f1 ~

1 A: E7 F4 d- a5 K6 B; vva_list va_alist;
8 J  w/ W" W! j& G; a, d2 Pchar logbuf[256] = {0};- u5 d) F1 J" O5 j: [* \* A% Z

2 u: m" o9 Y+ e* Ova_start (va_alist, fmt);
, c  Y% e) f) R9 l) P; g_vsnprintf (logbuf+strlen(logbuf), sizeof(logbuf) - strlen(logbuf), fmt, va_alist);( H9 z; P+ B* f/ o/ _6 T' r  b
va_end (va_alist);+ I6 T! L, p( x

6 C+ N1 J, h' M+ Z, hofile << logbuf << endl;
0 x5 G/ p8 E/ ?; k2 V. A/ {}/ A  \) Z& t7 u5 ?
}9 [9 ]; C2 w- R+ I; M

$ ^+ k- j1 }/ X3 W$ L: I3 VHRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)
. a# Q: G+ `3 }- D8 [- y3 U: P{( Y5 Y% }% V  t5 ]
if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) ). z. ^: o7 [. Z  X
return E_FAIL;4 [9 H- A7 U6 Z

# @5 U8 `  e- Q% `WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12), q9 i1 ~% ^1 S5 d; `
|(WORD)(((colour32>>20)&0xF)<<8)1 k/ N7 _6 C, z% ]
|(WORD)(((colour32>>12)&0xF)<<4), j7 [$ i7 e8 T# h
|(WORD)(((colour32>>4)&0xF)<<0);6 a. c( |! r2 J8 u- k: }7 c' F
( }' i$ M4 U' k- R* G2 e
D3DLOCKED_RECT d3dlr;
' j/ L  X+ L* C+ R: y(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);+ U$ d. S3 e4 H
WORD *pDst16 = (WORD*)d3dlr.pBits;6 A; N; P' p0 m+ W! a4 f+ Q

' F1 Y& h6 p# X. T% o" M7 x  R. lfor(int xy=0; xy < 8*8; xy++)
3 D( s0 Q! A# l6 I/ V4 Y*pDst16++ = colour16;
$ @: U/ y1 u+ P' l$ S
0 W( e; Q2 }7 m0 n- j(*ppD3Dtex)->UnlockRect(0);
+ m5 q: P) h  w2 B- {
: o0 v+ T3 L2 Zreturn S_OK;
* a" q! N" t/ {% ^+ P3 ^}& i: K; ]1 u0 L) X; K8 J( t

3 i9 H" W1 p) z* @! X+ u' ^% E3 Q( `
//=================================EndScene_Start=== ================================================== ============================//4 Y! m& u5 \! |
typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );
  E- y7 ]* x/ ?  A) Y+ Z3 l3 G. d9 AoEndScene pEndScene;
0 q1 @0 L. A5 v' f& [& z  A7 `' U2 u) E5 e" w. ^$ Y/ h
HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)
6 @+ w& X- \) T2 b+ I{! |+ j/ C0 \9 D' z6 o
if(Color)$ s0 t; A6 }, ^# `, j; X' e& Z& p
{
; W, I  u9 h& f$ z+ ]: wGenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));
, N& v" G2 B" r3 R8 x+ W' CGenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));
1 e: l$ I* `1 QGenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));
) g) r; t/ _+ E5 C9 C8 `9 jGenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));) Y$ T. t9 E; L' g2 x( t
GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));$ t/ J  o) l# x- J# E
GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));( ^. e! Y0 M+ |0 ?0 X
GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));* l' l! f7 Q" q% Z0 y3 z3 _$ E
Color=false;
+ e( H) `6 Y4 J$ G  S}9 m- T& L) V$ s, o
9 y4 K0 Y; t2 X2 t- a
if(xhair)/ Z$ |5 X( e: w" M, n
{
  e+ G1 {1 {9 S& VD3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};
* I( d' S; p/ [D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};3 a+ @; e4 I8 K% x2 a
pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);
$ T- O5 j9 \9 y: `9 ^( ~pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);
+ f7 v) e1 \3 ]5 b; P5 |& j}
4 N* m9 {0 M9 s; D+ D3 @4 j
8 S% ]$ d7 x  ~7 S9 ^' s( T//=============================================UnHoo K_Start=========================================== ========//; h! l/ \, f; |7 \
- j6 ?- F$ ^- x* @: z) j; W
if((GetAsyncKeyState(VK_F5)&1)) ; T. m1 l+ c1 b! P. y' c+ C
{
( ^- k' ]* t' A+ g% s: @+ J9 xint end =NULL;  u# ?* b3 }, _# [7 h4 U& c1 {
int dip =NULL;
# t. O2 u1 b3 K4 u% K& Dint svp =NULL;# n4 m$ h" L' w8 `2 w. s3 |
int sss =NULL;
) y+ z8 r, _' v2 v& v$ O# V+ X" }4 q. o4 s, P

) b% h0 w3 ]  y) @2 CBYTE Unhook[5] = {0x8B,0xFF,0x55,0x8B,0xEC};//Original Function Bytes.6 I! W4 w2 q% \1 H6 C' t
hand1 = GetCurrentProcess();
2 c# U) q- h( BDWORD dwmodualBase=(DWORD)GetModuleHandle("d3d8.dll");- E) I( t2 F# c. g$ A7 \
end = 0x6d9d93a0;* ?6 X2 L+ F. D6 e3 ~7 [
dip = 0x6d9d73a0;- l" ^6 ?/ C$ ~) ?% C1 H
svp = 0x6d9d5b90;0 k2 x: F7 a  J. Z# a, O
sss = 0x6d9d6760;
; b/ n  K+ J; g! Z! U& y
3 e9 S7 I) P) z+ B, UWriteProcessMemory(hand1, (void*) end, Unhook, 5, &bytes);- U# s1 p7 C  f: u
WriteProcessMemory(hand1, (void*) dip, Unhook, 5, &bytes);
0 o- h. ?9 O7 X# |9 _WriteProcessMemory(hand1, (void*) svp ,Unhook, 5, &bytes);) O6 p4 d& r! F* o3 j+ W9 q7 d
WriteProcessMemory(hand1, (void*) sss,Unhook, 5, &bytes);5 H+ y* J6 q  [: a
} % g& z: b7 `: A; y" }
//=========================================UnHook_En d================================================= ========//) W, q+ B3 E3 t

4 t3 C+ q  j6 r5 K0 x2 pif((GetAsyncKeyState(VK_F1)&1)){xhair=!xhair;} 0 b7 I* \* C% ?0 I/ a
if((GetAsyncKeyState(VK_F2)&1)){WallHack=!WallHack ;} 1 w7 O' v) w% Z

9 T$ Z0 w" B% C- v0 \9 Breturn pEndScene(pDevice);
0 Y7 `) a1 c: f8 u; k. r- Q}  G9 A" i6 H5 O1 }, C5 S
//====================================EndScene_End== ================================================== ========================//
1 ~7 C2 g1 n0 @5 \* T. w5 m1 l" o
  F# i9 D1 t  H- r4 b2 E6 M2 y7 b8 \" }+ H/ K. @  b" {+ q

! Z7 |+ D: o- y: r& M6 |" p) \
5 n& G" G  \( m1 m! g//=================================Dip_Start======== ================================================== ==================================//+ X( ~# @  ?, i/ `' P, W" i
typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );
! |' m! W$ _5 N8 BoDrawIndexedPrimitive pDrawIndexedPrimitive;, T6 f: l/ h8 k

! D, g# G' V! F! s4 a1 yHRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)
; P8 H" n3 W, L% B{
) R  n9 O$ L' _. Z2 U. G/ M
1 _3 i1 F' ~& F- `5 T  F
8 \& h5 l7 h, w" C( @1 D8 N
5 y& W* T2 {: q' M" n# q& p
2 a" Y7 Q, S' d- l* v  F# _/ Vif(WallHack)' k3 u% K' g* Q* ^" f$ n
{" J+ n3 {3 f2 X- a
texnum = (nNumVertices*100000)+nPrimitiveCount;
* ^3 v7 K8 q3 n* J. uif(m_Stride==40 && + l; h  h1 a. o( A- p7 |' w
" C. j6 L) z4 k) [: k( z+ C, ~
(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||(texnum==37000650)||" ?0 j  q. Y! t! _' U
(texnum==18000274)||(texnum==8800105 )||(texnum==36900650)||(texnum==19600314)||
+ a4 x% K( E: q; r# Y. k! ?5 n/ _(texnum==21800306)||(texnum==7500121 )||(texnum==8500105 )||(texnum==12400168)||, y0 K2 l' z2 a$ v9 l$ i8 I# P- q
(texnum==21800306)||(texnum==36900650)||(texnum==7 500121 )||(texnum==37000650)||& f2 I. Y+ C# W% ?6 c
(texnum==18000274)||(texnum==7500121 )||(texnum==8500105 )||(texnum==38000658)||+ I+ H. g: T  q2 h' }5 D6 x; B
(texnum==22100268)||(texnum==62400752)||(texnum==2 7900456)||(texnum==45700654)|| ! Z: F/ F" Q/ I9 y  Z( i! U
(texnum==4800040 )||(texnum==83600752)||(texnum==33400477)||(texnum ==38100666)|| / g: \' Q- ^( f3 v' \
(texnum==2800036 )||(texnum==62400752)||(texnum==29700492)||(texnum ==84900778)||
7 K% D6 Z7 G* T7 v(texnum==27500442)||(texnum==52100658)||(texnum==6 2400752)||(texnum==33600552)|| 1 Z% Y$ J- V+ ^, @
(texnum==44100646)||(texnum==18000274)||(texnum==3 7200508)||(texnum==45700654)||
3 X7 Q  S2 |- W5 {  O; S(texnum==37200508)||(texnum==52100658)||(texnum==5 2100658) &&  X# q' H0 K9 `' N
$ ?4 D4 A- K) R" l- r/ J. E# I
  A9 Y' s% ]' [
8 a, q2 O& C7 H* Z5 s
(nNumVertices == 100 && nPrimitiveCount == 121) || //Foot % n. w7 c; W% `# }
(nNumVertices == 105 && nPrimitiveCount == 168) || //Right Arm 3 A- E  Z9 X7 X' g0 c3 d+ q3 |2 n6 k
(nNumVertices == 132 && nPrimitiveCount == 180) || //Hand
, e3 N# j( t! v+ h(nNumVertices == 159 && nPrimitiveCount == 200) || //Left Arm
: d; k, O, a1 q, Z: p8 R(nNumVertices == 338 && nPrimitiveCount == 534) || //Underbody thanks japennese guy =)6 a1 _$ A6 v$ ?3 ~
//(nNumVertices == 448 && nPrimitiveCount == 776) || //Head - v9 w& o% x1 B" j! t
(nNumVertices == 804 && nPrimitiveCount == 1016) || //Body //SRG Option item
! s$ ^$ x4 c7 F(nNumVertices == 109 && nPrimitiveCount == 110) || //Bulletproof Vest
$ l8 S7 i: c  _! d; j1 I4 V(nNumVertices == 336 && nPrimitiveCount == 532)) //Battle Pants2 _9 N; T9 ^1 |; r" `/ s6 r

  r+ z- R: U$ F{( D% p  U  h! H. S( `* P- [
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);5 ^" {) E6 y$ o& x) {4 L; t8 |' b
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
0 ^. g9 }! ~9 z4 ^% UpDevice->SetTexture(0,Orange);' f, y3 }. {" i* {
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME );4 s6 y, Y9 }' D1 ?' ~- `5 Q
& {* |$ V: H  p& u- P2 n( V7 j& j
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);6 Q, ~1 H$ q0 y3 f* |7 r
( E' n* _- q9 t- T7 }
//pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID );: @! Z' @# ?$ j5 G7 x1 K/ f0 h* U
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);! @) A; e; G4 u; H  z
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);. b1 y7 I# r$ ]# ]( m8 A: B
pDevice->SetTexture(0,Pink);* H6 Y5 r9 v/ y
} 0 P/ g/ X+ l; N5 O- d2 Z4 F4 _4 G

$ e8 o: |# V7 N% P2 e; uif(m_Stride==40 && texnum== 21300174) 0 ?! Q) o, K4 D! i* K0 ]+ D
{
" @8 G0 U* D' Q) j3 OpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);  F" S2 K3 e- T
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);3 \3 a( G" z' r$ v4 t$ q
pDevice->SetTexture(0,Green);//GreenNade( n6 I, R6 e6 i$ u2 z7 F
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);' l0 L5 @; _6 g+ H" o* Z& |2 x
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);
; \/ k6 r# C1 s# p, @! kpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);! u3 Q; j) G& d' N; D, J
pDevice->SetTexture(0,Purple);
. V- P" y& u- u}
7 O1 O7 _0 _2 m7 ^+ |
0 }8 `! |! P; k# q9 @$ p; Y, k& J; ^, d0 b" M- {. T8 \
if(nNumVertices == 158 && nPrimitiveCount == 131)
1 I$ [- b' b3 H7 a0 o{
. p7 j4 M' L+ M% apDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
+ a5 X& Q' k0 G/ y" t  F6 V4 m: ~pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
2 {) n! B( H) x4 Z: ~  |5 y$ W! opDevice->SetTexture(0,Red);//GreenNade
, K4 N- ]( ^$ {  S/ F' }pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
6 ?/ S2 B! C% }& G# kpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);0 n6 U% e+ ~" l( J* h5 m- F
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);/ P5 _$ i+ J3 g! H/ Z9 g! v2 ?
pDevice->SetTexture(0,Yellow);8 p. y: x5 i( B. u+ O& B9 Q2 y
}
: e+ c; l! `# O9 E3 a0 U5 G9 \
+ d% w" s' X. x* c$ f2 k  Hif (nNumVertices == 171 && nPrimitiveCount == 143)* O; [, W) N! `5 K; R3 v
{
1 w( c9 {1 F. s8 b! @" l
, H- F  T% }+ u' wpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);
; B7 r- l; \% gpDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);
4 Z% a6 }3 h: }. h, bpDevice->SetTexture(0,Red);//GreenNade4 l- t- U2 ^# X" ~* y
pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
: J! `9 Z. y8 ^" w- f0 IpDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);0 Z: D2 r+ Q8 Y6 U, D
pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);
0 G& c4 I* m4 _" m6 Y, KpDevice->SetTexture(0,Yellow);
- E) [& C6 O7 ]}
! P3 M8 B3 u6 w4 L/ n$ l( r9 e) v; i" n' Z# l. e9 i) n

: v' Y6 T% N6 d# c5 N& C
5 S" k8 b/ J: `3 {/ T* ?9 iif(m_Stride==40 &&//face,mask etc...0 x! k  @/ W+ l2 u( l$ z
(texnum==36700612) ||
6 K/ q: @" p8 c# U(texnum==9600172 ) ||2 d$ _! C9 R: E4 q& W
(texnum==14200236) ||
* v1 E4 K  l0 P7 m  Y(texnum==37800552) ||
6 z, F# N( n4 _8 B+ y/ u* q  y% }% s(texnum==28100486) ||
5 `' L7 U% ?+ G. T(texnum==35500568) ||
2 W% y) b8 M/ D! }(texnum==2200024 ) ||% P& G, @* h0 i6 A
(texnum==16200243) ||
4 [( |) S- P4 z0 P3 j1 u# ^9 u(texnum==31900466) ||) x) i2 T  G0 O8 x1 p. |
(texnum==19300342) ||4 E' t- j' G! f
(texnum==36200604) ||
0 K% a* ^/ l% V0 t+ h% {; K(texnum==21300290) ||( @) k3 |. j9 [- t+ Q$ ]0 T
(texnum==35700558) ||
2 D% f# T# Q4 O/ d* G(texnum==22100396) ||, S: P& }/ X2 M2 W( @
(texnum==36100604) ||- {7 d# E2 p% W6 Y3 {* K
(texnum==27100464) ||# |5 r) `+ G8 {3 {
(texnum==11400180) ||0 `& P) F# v( {4 A& h9 _
(texnum==34900580) ||) _5 q9 \1 d, P& d, g
(texnum==13200212) ||
8 @$ `' i  y# [- l- b! s(texnum==34700538) ||$ N& V2 |8 M& K6 B
(texnum==19500352)&&
, K! B) c% b5 D$ x(nNumVertices == 448 && nPrimitiveCount == 776)), e! x" g( M+ ?; r

* y! o3 h( H, H  U. [* d* w{
0 U' ~, ]( X9 x0 dpDevice->SetTexture(0,Blue);
4 Q3 N. ]  Z6 ~& Q2 A}
; \. U& V9 t9 j: ?# ?! b* }6 }. D% v* B' L6 U1 g

. R; _# p6 _& A3 m0 i0 V{
( c# h" t! D, \' ?pDevice->SetRenderState(D3DRS_FOGENABLE,false);
& J, A9 M3 H3 L( s}
7 @% v7 Y) j) U( m9 p# K$ U" w! ?4 q# O' K0 J$ F' c: [: t
/*Logger2 v: h1 P2 _% A, ?0 |! U
if(m_Stride==40){7 b* }/ E. n  I( O( o& |

5 M' s  u  K/ N9 S& _% Z+ ~5 @8 e- M3 @' r
while(GetAsyncKeyState(VK_NUMPAD1)&1) arrc--; //Used as manual index for adding textures to delarray
. l, a( W- ^! d+ ?8 M- C+ ?6 Y. qwhile(GetAsyncKeyState(VK_NUMPAD3)&1) arrc++;
+ e- Q" H# p1 N/ e6 g$ }/ k8 Tbool alrdy=false;
' @; X7 S% f9 E) {# j' ^5 d3 nbool inarr=false;
: W7 A) b6 x# W( b4 z. W
/ |" x; J- O) L* Y5 O% O0 J8 aif(texarray[arrc]==texnum); a! V4 e$ @2 D  j% g
if(delarray==texarray[arrc])
. }1 h5 j, `' o9 h! G# Zalrdy=true;4 d- A$ k; V+ |
for(int i=0;i<dcount;i++) //sees if said texture is in delarray
! e6 v' e6 l3 c6 C2 jif(delarray==texnum)' r, Y) Z' Y% Z  Z6 o3 C$ R3 [6 J
inarr=true;/ i+ d$ Y% e# r
if(texarray[arrc]==texnum || inarr){ //If true, color model differently
$ ~7 g8 D8 _2 A; V1 GLPDIRECT3DTEXTURE8 texCol;( p7 Z' T( G1 Q) }7 y8 d
DWORD dwOldZEnable = D3DZB_TRUE;
8 M/ v2 F" J) q# D. opDevice->SetTexture(0, NULL);
; k" w2 B( b" Q  y" g% y7 kpDevice->GetRenderState(D3DRS_ZENABLE, &dwOldZEnable); " S! y. C, f) I* ^8 l- s
pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);' P# C; [$ J" ?% ^6 G: C
if(alrdy) //Different colors for selected models that are already being logged (For removal from array)
  H1 F: F5 E# l# @# E: ?- D+ r2 \texCol=Blue;8 u1 J+ s% ^5 N
else& r+ R. e2 I1 @% Z2 u5 @
texCol=Red;
. \, T' x0 w& O; |$ D/ `, A5 opDevice->SetTexture(0, texCol);
; L2 r+ ~# @" B3 Y6 @pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
1 s) P/ e' D' {8 R0 PpDevice->SetRenderState(D3DRS_ZENABLE, dwOldZEnable);
; E% n; b( ?( ?, U5 k: f. z6 D/ P, h( V5 E
}
: y0 U5 J# u: {% z" U3 T4 }}0 b$ O$ A8 u4 ?/ q# e3 H
if(GetAsyncKeyState(VK_F5)&1) add_log("Logged tesx: %i", texarray[arrc]); //F5 will print currently selected texnum to logfile' I. f- Y% k& ~: G0 S
if(GetAsyncKeyState(VK_F6)&1) { //For adding/removing textures to array9 D; y/ Y" d) g' ^  }& V( S
bool inarr=true;$ ]0 J6 g4 Y- F, x1 p
for(int k=0;k<dcount;k++){
* n3 Z: r5 o  c9 |( Cif(delarray[k]==texarray[arrc])
6 ^/ m4 V) b, q3 ?& j{) ^" N9 n6 j* Z/ V7 M
inarr=false;//Found selected texture to already exist
2 |' e, d2 O3 d1 T- `5 fdelarray[k]=0;//Delete texture  G5 I' k' @& R, G) u+ R- Q
break;//Cancel loop
1 v% ?( z/ L+ j) F5 u, Y/ L! J}
1 [: Q$ ?/ y- \' e& s1 B3 l, E}; T8 K( j! Q* b' `% W5 Y
if(inarr==true)
" K8 P7 o2 C& C* s* P{
$ J; K$ R& Q& e+ ddelarray[dcount]=texarray[arrc];//Add texture# q3 ~, k% z! q5 V; i
dcount++;
; u) w& X! T6 C$ |8 t. |; q}4 R  Q4 F( s9 Y& r( }* F9 L% l
}  j. x8 e" I, D1 e
if(GetAsyncKeyState(VK_F7)&1){1 L; o* l& K0 ^7 P3 b; v
int total=1;
6 Q' S/ {( _& c& Padd_log("omfg values?!? {");
3 `. x, S2 J# N" C& Z0 @& P* P2 ~1 bfor(int x=0;x<dcount;x++)//Loops through all recorded variables and prints them in a nice array based format
9 O% W' }( h* m! i) j( ?+ iif(delarray[x]){/ _* m( c) P$ @% B. Z' `
add_log("%i,",delarray[x]); //add_log2==add_log but without endl9 ~# ~% {3 f. G: I- N7 j# ^) _
total++;1 i- {: u! C% Z
}
! @% k0 I: l, \; Z0 |add_log("}; %i variables in array",total);
4 b) O0 A! u$ p  P7 k}
% D8 n4 L( U! N' L- z) @bool found = false; //THIS PART CREDITS TO KRYPTEC
- u( s/ j; C6 M3 k" m" {for(int y=0; y<arraycounter; y++) //THIS IS HIS LOGGING FUNCTION+ v2 @: M6 Q' }. H4 ?" ^9 R
{
  ^) M& `6 g6 r. n3 b2 I7 f% Bif(texnum==texarray[y])found=true; //I JUST CREATED AN INTERFACE FOR IT. J. _& O- z) l* n5 {
}: o7 ~: M7 A( \; v! k
if(!found && arraycounter < 1000)9 o  [7 h3 W+ s* L* g
{
% p0 I* v8 m) Rtexarray[arraycounter]=texnum;
: b* a8 \3 {8 x$ o. Karraycounter++;
4 j* _2 }8 G3 k. ]+ J2 Z& L6 X}*/
* H& I. ?" _2 ?, O7 O4 y# K  F5 P9 |2 b" p3 ?5 k% d5 }7 ^, w

2 z. x) C$ ]3 S: i! E" T}
6 \7 @1 U% B9 |( L+ Z3 q2 u! m( Ireturn pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);
" o+ D; _7 M! m& p* q}
6 @4 Q- {! a+ I" j//=====================================Dip_End====== ================================================== ===================//
8 n' j$ w$ a5 j/ u- ?  v3 \0 o- ]& ~
1 e  g* a0 y1 w' c* n
6 v* V4 d# r& Q$ Y9 N6 j7 B//=====================================Sss_Start==== ================================================== ====================//
& w- P0 M. h5 K4 j& ztypedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );
! k" h9 x" _- q( t6 Y9 `8 y2 ooSetStreamSource pSetStreamSource;
: V6 d8 U) @$ ~6 K  }, S: T6 d& G% u
HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)1 y0 q1 b( d* ~! g, f$ @
{
; i( j, b5 p. R3 Lif(nStreamNumber==0)' v1 L7 H5 q3 `) m6 y' Y# V
m_Stride = nStride;
/ S/ `0 _6 W, q* A4 [6 u( `: x
* K# |9 y8 l4 jreturn pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);
5 @5 M# w' y2 K* p; k}
6 r, z& ?+ l- h* z% P$ `* z//====================================Sss_End======= ================================================== ===================//
* E. o1 ^: z8 X4 V1 U: O# c, K9 ~
- Y& h* d) d7 w" s//====================================Svp_Start===== ================================================== ===================//+ @4 e. e: C2 o. A& b
typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);
6 `2 c9 v+ Q% e( q; BoSetViewport pSetViewport;
2 @8 ~* O2 M' [9 \: s) z7 E1 z% M
  l, ^% |3 I. |HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)+ d% G. e; u& K1 f+ R
{
; h0 C( G& b0 d9 ?1 L* A8 [ScreenCenterX = ( float )pViewport->Width / 2;# S5 k2 d, l. o2 o
ScreenCenterY = ( float )pViewport->Height / 2; $ G7 F) `8 J# i* B9 ~0 j# b

$ u" @& ]2 k  c$ @: ureturn pSetViewport(pDevice,pViewport);8 _8 w. `# ?7 O% j
}- |9 ~1 X2 N6 t6 M: |
//===================================Svp_End======== ================================================== ===================//" V: v2 ?4 ~3 C# O; H
6 q7 \4 |) q2 c, O* ~4 z9 m
typedef HRESULT ( WINAPI* oBeginScene ) ( LPDIRECT3DDEVICE8 pDevice );
* W* G5 W0 S# T1 k0 [% P1 z% }1 r# w7 ioBeginScene pBeginScene;! [: d) Z. o7 N' ^# ^
0 g' ~5 q3 i' c8 c! H
HRESULT WINAPI myBeginScene(LPDIRECT3DDEVICE8 pDevice)
% B4 G& T9 [% p" U4 K) T{
" F4 W+ z1 d$ h( b) ]$ G' N" nif((GetAsyncKeyState(VK_F6)&1)) / L  ]% t0 Y" D( g
{
9 r& O2 }: ]0 Y3 x; bpEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);
# u+ Q! V6 v' m( p% Y) i+ H, d' ApDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);
# A9 L- g' X/ {pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);, @1 R! S6 X& `3 X& S
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
* d3 o$ ^. M. S! u/ S+ |3 a}9 T' F5 Z2 B, Z: j

' G. b) T" Y3 |3 A8 `- freturn pBeginScene(pDevice);
! D$ z1 z, F$ E6 F  z}2 ?6 ?2 R( s( I
1 p* Z- p- n) U, A! T% U

1 q- P& F0 J: [9 _. vBOOL WINAPI DllMain ( HMODULE hModule, DWORD dwReason, LPVOID lpReserved )
# R/ Z/ C4 i) A{
* K6 q3 E) _# P  n5 Q1 TDisableThreadLibraryCalls(hModule);
2 X( E: ?( e1 E0 B. h3 P! s6 o7 p. h7 T+ C: v
if ( dwReason == DLL_PROCESS_ATTACH )
/ s% p% T$ z$ d  l{6 H6 }2 ~0 V+ t7 [& O0 y% M
" e- k- t, M3 P! |8 `: k& I
//=========Log==========================//* v+ U, D' Y6 r, r, I3 Y/ A
GetModuleFileName(hModule, dlldir, 512);0 n+ {# B, D) |$ F% @
for(int i = strlen(dlldir); i > 0; i--) { if(dlldir == '\\') { dlldir[i+1] = 0; break; } }; s  H) e& d# w% m2 f# \
ofile.open(GetDirectoryFile("log.txt"), ios::app); + k' S- }! H7 m/ z7 ^7 C$ ^
//=========Log=========================//# ~( E' Q' s- ~8 x- k& ~* I

$ Z5 h7 T' Y5 s+ M( v5 e/ A: BpBeginScene = (oBeginScene)DetourFunction((PBYTE)dwBeginScene, (PBYTE)myBeginScene);4 d. t' u- i, _2 f# @: D
pEndScene = (oEndScene)DetourFunction((PBYTE)dwEndScene, (PBYTE)myEndScene);5 T' y* \% _2 @7 P& E: K
pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunction((PBYTE)dwDra wIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive);+ f8 b# U/ V, S6 q
pSetStreamSource = (oSetStreamSource)DetourFunction((PBYTE)dwSetStrea mSource, (PBYTE)mySetStreamSource);- I1 g* v; Y1 S9 P
pSetViewport=(oSetViewport)DetourFunction((PBYTE)d wSetViewport,(PBYTE)mySetViewport);
' I# N" j. ^& e' E7 K6 X* m3 C6 T9 |
}! y2 Q* y  N% M: H
return TRUE;
+ ]" {( B) u; p4 ]8 ?$ T}
) v- ^8 Q; d" Y0 }, p5 v" G
( N+ L5 ]# h- F! @4 h
! E) s1 ~; a% [1 vLog.h (The header File):# M& S8 q: P4 ^# i9 W; ^$ `
+ w8 c- P: |. ~4 w/ e  ~1 _
#define WIN32_LEAN_AND_MEAN
& C9 y5 U. w. B4 Z
5 z) V7 D: B5 R7 `/ M! i#ifndef _MAIN_H
. G" `& Q2 R/ ]- q) M8 P  K0 ^$ d#define _MAIN_H
# O7 Y" q4 U* V' [$ n4 @2 {) I: I+ l) I* s5 b, ]- q; b3 d) x
char *GetDirectoryFile(char *filename);
9 T* y7 Q1 o% h9 H5 {! J: D  N5 avoid __cdecl add_log (const char * fmt, ...);
+ h; q% ~1 i- B#endif . M: J+ m6 i8 J5 l

3 ]" h3 N- V6 w) q1 {* k) ^" INow after you have built your wallhack you will be able 2 find it in :
. S' \' e: X1 @+ h' |! jC:\Users\Your Name\Documents\Visual Studio 2008\Projects\Wallhack\debug (something like that)
; P# q' V  D+ O' [3 t/ U* s: x4 p
Now I will show you how to make your wallhack undetected:, ?7 K2 @6 v; b
1. Download D3d hooks' K2 Q* a8 Z# l
2. Open the file that says "create device code made by me.h"
$ |% [! m) A7 R3. You will need to make another header file in your project and then put name it create device and paste that code it.' z& H8 W' t6 L2 v$ f3 e9 \+ Z' Q6 n
4. Your wallhack is now undetected.
4 B. ?% i+ b4 E5 b0 i3 R2 l) M9 a2 L& v+ W" B* p
Credits:
# y2 S2 Z6 Q& B0 {  m1 b1. ME FOR THE TUTURIAL, {, u) }& g$ f7 h  ~( U7 h
2. THE1FEAR FOR THE VIDEO ON HOW TO COMPILE THE SOURCE CODE
: k  I0 x& @1 E  n3. FATBOY88 FOR THE SOURCE CODE" F  U! R% m# j% M) o; N+ ^" C+ y
4. THE INDIRECTX I JUST FOUND :P
  N9 g5 c0 q: `/ R; E
/ v- F8 D! o0 t% C' xAttachments:
( T! D6 Y6 s5 [! N2 v1 i- _/ VD3d_hooks: http://www.mediafire.com/?qzz0gwdjvj5. d; |  w2 l: h8 m4 h1 u. k! {4 l
IndirectX: http://www.mediafire.com/?gimzgmeny11
' P9 x3 f( _$ D, g  _; v* bMicrosoft Visual C++ 2008: http://www.mediafire.com/?vmyjjnk1qj50 W1 Y/ b* S  q* K
SEARCH THE LAST ONE UP& y% i- b  l" ~! ^" k: G
__________________+ E- b% D% @4 H1 i

& V0 @* b3 x2 b- L7 k0 X <---------- WALLHACKED

本帖子中包含更多资源

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

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

使用道具 举报

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

使用道具 举报

板凳
 楼主| 发表于 2009-5-26 17:13 | 只看该作者
把对DirectX 相关的函数调用都转发到我们自己的函数上,这就叫代理。- `3 @/ K7 @8 \& o6 H
主要用来对付众多的图片字库游戏。同时要结合图像识别技术来运用。
, _: M5 {7 c  M1 j: z这是我想出来的新技术,一旦研究出来,就可以实现不少图片字库游戏的汉化,这个技术有一定的通用性。
/ Q% J* @* e: C有个帖子,简单的说了一下,以后还会有大量资料放出来的。" I6 J( k( a8 S; X8 ?) h9 R
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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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