Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

C/C++ HOOK API£¨Ô­ÀíÉîÈëÆÊÎöÖ®

9Ô¶¼¿ì½áÊøÁË£¬Ö®Ç°Ò»Ö±Ã¦µ½Ð´×Ô¼ºµÄ¶«Î÷¼ÓÉÏÉÏ°à¡£»ù±¾Ã»ÓÐʱ¼äÑо¿Ï»ã±àºÍC C++·½ÃæµÄ¸ÐÐËȤµÄ¶«Î÷¡£ÔÙÔõô˵Â9Ô»¹ÊǵÃдһƪÈö£¬ÒÔºóÿÔÂÖÁÉÙһƪ°É¡£¸ø×Ô¼º¶¨ÁË£¬Ï£Íû´ó¼Ò¼à¶½¡£ºÙºÙ£¡
ÕâƪÎÄÕ¾ÍÀ´Ì¸Ì¸Æ½³£ºÜ³£¼ûµÄHOOK¼¼Êõ£¬ÕâÀïÄØ¡£Ð´µÃ±È½Ï¼òµ¥£¬·½·¨ºÜ¶à¡£Ö»½²Ô­Àí£¡Ï£Íû´óÄñÃDZðÍÂÎÒ¿ÚË®¹þ - -¡£ºÃ£¡ÇÐÈëÕýÌâ¡£
Ê×ÏÈÊǸÅÄî°É¡£Ê²Ã´Êǹ³×Ó£¨HOOK£©£¿
¹³×Ó(Hook)£¬ÊÇWindowsÏûÏ¢´¦Àí»úÖƵÄÒ»¸öƽ̨,Ó¦ÓóÌÐò¿ÉÒÔÔÚÉÏÃæÉèÖÃ×Ó³ÌÒÔ¼àÊÓÖ¸¶¨´°¿ÚµÄijÖÖÏûÏ¢£¬¶øÇÒËù¼àÊӵĴ°¿Ú¿ÉÒÔÊÇÆäËû½ø³ÌËù´´½¨µÄ¡£µ±ÏûÏ¢µ½´ïºó£¬ÔÚÄ¿±ê´°¿Ú´¦Àíº¯Êý֮ǰ´¦ÀíËü¡£¹³×Ó»úÖÆÔÊÐíÓ¦ÓóÌÐò½Ø»ñ´¦ÀíwindowÏûÏ¢»òÌض¨Ê¼þ¡£
¹³×Óʵ¼ÊÉÏÊÇÒ»¸ö´¦ÀíÏûÏ¢µÄ³ÌÐò¶Î£¬Í¨¹ýϵͳµ÷Ó㬰ÑËü¹ÒÈëϵͳ¡£Ã¿µ±Ìض¨µÄÏûÏ¢·¢³ö£¬ÔÚûÓе½´ïÄ¿µÄ´°¿ÚÇ°£¬¹³×Ó³ÌÐò¾ÍÏȲ¶»ñ¸ÃÏûÏ¢£¬Ò༴¹³×Óº¯ÊýÏȵõ½¿ØÖÆȨ¡£Õâʱ¹³×Óº¯Êý¼´¿ÉÒÔ¼Ó¹¤´¦Àí£¨¸Ä±ä£©¸ÃÏûÏ¢£¬Ò²¿ÉÒÔ²»×÷´¦Àí¶ø¼ÌÐø´«µÝ¸ÃÏûÏ¢£¬»¹¿ÉÒÔÇ¿ÖƽáÊøÏûÏ¢µÄ´«µÝ¡£
ÕâÉÏÃæÖ»ÊÇÒ»¸ö¸ÅÄ¶ÔËüÓÐËùÁ˽â¶øÒÑ¡£ÉÏÃæÖ÷ÒªÓ¦ÓÃÔÚWindowsÏûÏ¢´¦Àí»úÖÆÀïÃæµÄÒ»¸ö½âÊÍ¡£ÕâÀïÎÒÖ»Êǵ¥´¿µÄ̸̸À¹½ØÎÒÃdz£ÓõÄLoadLibraryA¼ÓÔØÕâ¸öº¯Êý¡£ÈÃÎÒÃǵijÌÐò»òÕßÄ¿±ê³ÌÐòÔÚµ÷ÓÃÕâ¸öº¯Êý¼ÓÔØÁ´½Ó¿âµÄʱºò£¬ÏÈÖ´ÐÐÎÒÃÇ×Ô¼ºÐ´µÄº¯Êý£¬È»ºóÔÚ½øÐÐÕý³£¼ÓÔØ¡£Í¨Ë×µÄ˵¾ÍÊÇa----->b.  ÎÒÃÇÔÚÖмä¼ÓÉÏÒ»¸öc¡£ a-------->c----->bÈÃËûÏÈÖ´ÐÐcÈ»ºóÔÙÖ´ÐÐb¡£ÕâÀïµÄc¾ÍÊÇÎÒÃÇ×Ô¼ºµÄº¯ÊýÁË¡£
ºÇºÇ£¬¸ÅÄî˵µÃ²î²»¶àÁË£¬¿ªÊ¼Ðж¯Ð´´úÂëÈö£º
 
#include <iostream>
#include <Windows.h>
using namespace std;
#pragma warning( disable: 4309 )
#pragma warning( disable: 4311 )
 
typedef HMODULE ( WINAPI *HOOKAPI )( IN LPCSTR );
#define MYHOOKMETHOD ( __fun ) HMODULE WINAPI __fun
#define DECLARE_REGISTER ( __0bj, __lawfunc, __newfunc ) Inline_Hook< HOOKAPI, 1 > __Obj( __lawfunc, __newfunc )
 
struct __InlineHOOK_Base
{
    DWORD _argsBytes;
    void* _lawFunc;
    void* _newFunc;
    char  _lawByteCode[16];
    char  _newByteCode[16];
 
    bool unhook ( void )
    {
      &nbs


Ïà¹ØÎĵµ£º

UbuntuÖÐNetBeans C/C++ÅäÖᢱàÒë

ϵͳ»·¾³£ºUbuntu 9.04
Èí¼þ»·¾³£ºNetBeans 6.7.1 C/C++ ¡¢JDK1.6.0_16
±¾´ÎÄ¿µÄ£ºÍê³ÉNetBeans 6.7.1 C/C++ µÄÅäÖù¤×÷¡¢±àÒë²âÊÔ¼°¶ÔÖÐÎÄÖ§³Ö
      Ê×ÏÈ´Ó¹ÙÍøÉÏÏÂÔØ×îаæµÄNetbeans Ñ¡ÔñC/C++¹¤×÷̨ÏÂÔØ[µã»÷½øÈë]£¬µ¯³öµÄÐÂÍøÒ³½«»á×Ô¶¯ÏÂÔØ£¬ÈçÏÂͼ£º
ÔÚ½øÐа²×°Ö®Ç°£¬ÎÒÃÇÏÈ°²×°JDK£¬ ......

c/c++ÄÚ´æ»®·Ö

Ò»¡¢Ò»¸ö¾­¹ý±àÒëµÄC/C++µÄ³ÌÐòÕ¼ÓõÄÄÚ´æ·Ö³ÉÒÔϼ¸¸ö²¿·Ö£º
¡¡¡¡1¡¢Õ»Çø£¨stack£©£ºÓɱàÒëÆ÷×Ô¶¯·ÖÅäºÍÊÍ·Å £¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ¡¢¾Ö²¿±äÁ¿µÄÖµµÈ£¬ÉõÖÁº¯ÊýµÄµ÷Óùý³Ì¶¼ÊÇÓÃÕ»À´Íê³É¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£
¡¡¡¡2¡¢¶ÑÇø£¨heap£© £ºÒ»°ãÓɳÌÐòÔ±ÊÖ¶¯ÉêÇëÒÔ¼°ÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøʱ¿ÉÄÜÓÉOS»ØÊÕ ......

c µÄ struct£¬Ã»ÓнṹÌåÃûµÄ½á¹¹ÌåÊý¾ÝÀàÐÍ

Ò»Ö±¶Ô½á¹¹ÌåŪµÄÄ£ºý£¬½ñÌìÖÕÓÚÓлú»á³ÎÇåÁË¡£Óиö´í£º²»Ã÷°×ûÓнṹÌåÃûµÄ½á¹¹ÌåÈçºÎÏñ½á¹¹ÌåÃûÒ»ÑùʹÓá£
typedf struct                               st ......

emacs ¿ì½Ý¼ü£¨°üÀ¨C£¯C++ģʽ£©

·ûºÅ
      C-  Òâ˼ÊÇ°´×¡ Ctrol ¼ü
M-   ÒâÖ¸ Meta ¼ü (¼üÅÌÉÏÈôÎÞMeta ¼ü£¬Ôò¿ÉÒÔALT ESC ¼üÀ´È¡¶ø´úÖ®)
DEL  ÒâÖ¸Í˸ñ¼ü (²»ÊÇ É¾³ý(Delete) key)
RET  ÒâÖ¸»Ø³µ¼ü
SPC  ÒâÖ¸¿Õ¸ñ¼ü
ESC  ÒâÖ¸Escape¼ü
TAB  ÒâÖ¸Tab¼ü
Ïñ "C-M-" (or "M-C") ......

linux C ±à³Ì»·¾³µÄ×齨

ÓüÇʱ¾Ð´C³ÌÐò£¬²¢±àÒë¡£    ¸Õ×°ºÃµÄϵͳ
ÖÐÒѾ­ÓÐGCCÁË£¬µ«ÊÇÕâ¸öGCCʲôÎļþ¶¼²»ÄܱàÒ룬ÒòΪûÓÐһЩ±ØÐëµÄÍ·Îļþ£¬ËùÒÔÒª°²×°build-essentialÕâ¸öÈí¼þ
°ü£¬°²×°ÁËÕâ¸ö°ü»á×Ô¶¯°²×°ÉÏg++,libc6-dev,linux
-libc-dev,libstdc++6-4.1-devµÈһЩ±ØÐëµÄÈí¼þºÍÍ·ÎļþµÄ¿â¡£
    ¿ÉÒÔÔÚÐÂÁ¢µÃÀïÃæË ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ