
- 帖子
- 11
- 积分
- 14
- 威望
- 17
- 金钱
- 10
- 在线时间
- 0 小时
|
全局动态调用笔记. N% ^7 ~! n' O4 l B' c! h% L% v
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h
5 s% ~% f2 [, Q3 ?, w( S! ] r----------------------------------------4 ]: c5 z/ C# @. q
DTDY.h:
- g: |3 K7 I" W9 C% A
) P" t- ~( X* T- V#if _MSC_VER>1000
7 c" {5 |, |$ W# O0 I#pragma once
T% c( f* I7 s+ B/ s#endif //_MSC_VER>1000. q2 q( p J3 h I8 J) a+ E
#include<windows.h>
6 I |: K7 p/ _ r- }% i; T8 P+ @1 d) ^# y% _) C- o) [
typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);! e5 J* R# j, s; m8 Y q" J5 [$ }
class DTDY2 Z" W1 J5 B/ z3 T' _% B8 M& b* P; ?) f
{
( l* W( {( A+ Lpublic:
* P* V$ _/ {& b' A& @DTDY(); G5 v% O* b2 g
virtual ~DTDY();
; P* t6 Y }! x7 p1 r. p* p+ J) E: e2 Zpublic:
# Z/ E4 g' Z4 E T) I! xstatic pGetModuleFileNameA MyGetModuleFileName;$ O" o) q. ~3 y' a6 F1 s6 O# ]
static BOOL FunInitiallization();
0 P' _( P: g" Y2 ?$ a};2 p$ |# Y- t& c) O
#endif# |: |0 C; U1 \0 ]5 O
----------------------------------------
8 s8 X# ]7 B$ v4 ^3 B' v) E7 B1 B1 J
0 Y9 w' l1 X& n) |4 hDTDY.cpp:& f$ _0 W$ I8 c( D( [
, p# z% E" g9 m0 V% m8 Y) M
#include "DTDY.h"6 K" O9 `/ V- F. { M. ~' {1 G
pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;1 r r; B p* ?% W
DTDY:TDY()
; v! c% V, A. G5 W) h{
1 W3 H! Q( h9 N6 A; m}' m/ X. ~* `9 q3 b: T
DTDY::~DTDY()
3 R( u" c: ^1 U4 q2 z4 F9 t0 ^{
- X& u) I' i( ^; P/ h F/ a}( z$ l3 B( Z7 Z7 _
BOOL DTDY::FunInitiallization()5 A. T; s* g% n- \
{
/ Z& g& U6 ]" Y/ M* @HMODULE hModule=LoadLibrary("kernel32.dll");0 R4 \1 n5 n7 X6 A6 C8 W
MyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");7 V, F3 t7 x7 f$ Q; ]
if(!MyGetModuleFileName=) return FALSE;' {4 y* e; V& V: b D! J# T
' t) z& l. }+ M V
return TRUE;( `) \3 z- y' [0 {
}
# z7 f# U! U8 L2 Q7 [----------------------------------------2 a' n4 L0 S7 N- G
svchost.cpp:
2 X# X# Y# z8 h# x7 T- O
8 B# d1 I& I$ p. x1 r, }; b' m#include "DTDY.h"
# z0 B4 c* ~, V% X4 g
0 N3 U9 l6 t j3 T8 r) V& l% sBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
0 R6 H# n d- }2 T{
( x- B9 v# W9 s, g$ g0 zswitch(ul_reason_for_call)
/ V3 k2 f4 p u' L" [{
9 e/ j( T; z6 T+ |& Icase DLL_PROCESS_ATTACH:7 v: D' b, \8 Z1 L+ U
if(!DTDY::FunInitiallization()) return FALSE;
& N1 S2 c( R- D0 P0 ^ D6 J+ \
0 E% Q6 h$ I& h. P- t: ^6 ?break;" H: L" Y4 G3 L2 x0 ~- {0 i' \
}
0 n @3 W6 Z8 a- ?/ h* S}& h2 h& m1 e2 c/ u# h
7 q7 ^0 T8 Z6 L3 U$ J
6 h3 A) e4 l3 r, t; nGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def6 F Y. b% l* E( x
改写为
" ^' q0 p$ A: W+ t H: j0 v9 }' QDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));/ }+ `$ h0 ~- L9 F5 q
----------------------------------------
5 X1 e8 m- ]$ RKernelManager.cpp:
- q. T6 l0 O X1 y x. z- L9 R/ H
* r4 l1 b- O$ m# u! P: e#include "../DTDY.h" e9 [) L8 h9 S0 M& A8 k) c
GetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));: V3 S: j7 q8 N2 m. x& i7 w
改写为5 r, l5 ^. ~( x9 z, h2 x* x# k* q
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
0 f. m; m* C* n% r6 q---------------------------------------- |
|