亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++實現修改函數代碼HOOK的封裝方法

2020-01-26 15:13:33
字體:
來源:轉載
供稿:網友

本文實例講述了C++實現修改函數代碼HOOK的封裝方法,分享給大家供大家參考。具體實現方法如下:

一、對外的接口如下:

1. 類初始化時對函數HOOK
2. 取消掛鉤:
void UnHook();
3. 重新掛鉤:
void ReHook();

在初始化時HOOK的代碼:

復制代碼 代碼如下:
*(DWORD*)(m_btNewBytes+1) = (DWORD)pfnHook;

8個字節的代碼地址 0xB8, 0x00, 0x00,0x40,0x00,0xFF,0xE0,0x00  只要把第二位和第三位的數據改成函數的地址,調用原先的函數時就會調到自定義的函數執行.

二、實現方法:

.h頭文件如下:

復制代碼 代碼如下:
#ifndef  _ULHOOK_H__ 
#define _ULHOOK_H__ 
 
#include <Windows.h> 
#pragma once 
class CULHook 

public: 
    CULHook(LPSTR lpszModName, LPSTR lpszFuncNme, PROC pfnHook); 
    ~CULHook(void); 
 
    //取消掛鉤 
    void UnHook(); 
    //重新掛鉤 
    void ReHook(); 
protected: 
    PROC m_pfnOrig; 
    BYTE m_btNewBytes[8]; 
    BYTE m_btOldBytes[8]; 
    HMODULE m_hModule; 
}; 
 
#endif

.cpp源文件如下:

復制代碼 代碼如下:
#include "ULHook.h" 
 
CULHook::CULHook(LPSTR lpszModName, LPSTR lpszFuncNme, PROC pfnHook) 

    BYTE btNewBytes[] = {0xB8, 0x00, 0x00,0x40,0x00,0xFF,0xE0,0x00}; 
    memcpy(m_btNewBytes, btNewBytes, 8); 
    *(DWORD*)(m_btNewBytes+1) = (DWORD)pfnHook; 
 
    m_hModule = ::LoadLibraryA(lpszModName); 
    if (NULL == m_hModule) 
    { 
        m_pfnOrig = NULL; 
        return; 
    } 
    m_pfnOrig = (PROC)::GetProcAddress(m_hModule, lpszFuncNme); 
    if (NULL != m_pfnOrig) 
    { 
        MEMORY_BASIC_INFORMATION mbi = {0}; 
        DWORD dwOldProtect; 
        ::VirtualQuery(m_pfnOrig, &mbi, sizeof(mbi)); 
        ::VirtualProtect(m_pfnOrig, 8, PAGE_READWRITE, &dwOldProtect); 
        memcpy(m_btOldBytes, m_pfnOrig, 8); 
        ::WriteProcessMemory(GetCurrentProcess(), (VOID*)m_pfnOrig, m_btNewBytes, 8, NULL); 
        ::VirtualProtect(m_pfnOrig, 8, dwOldProtect, NULL); 
    } 

 
CULHook::~CULHook(void) 

    UnHook(); 
    if (m_hModule!=NULL) 
    { 
        ::FreeLibrary(m_hModule); 
    } 

void CULHook::UnHook() 

    if (m_pfnOrig != NULL) 
    { 
        MEMORY_BASIC_INFORMATION mbi = {0}; 
        DWORD dwOldProtect; 
        ::VirtualQuery(m_pfnOrig, &mbi, sizeof(mbi)); 
        ::VirtualProtect(m_pfnOrig, 8, PAGE_READWRITE, &dwOldProtect); 
        ::WriteProcessMemory(GetCurrentProcess(), (VOID*)m_pfnOrig, m_btOldBytes, 8, NULL); 
        ::VirtualProtect(m_pfnOrig, 8, dwOldProtect, NULL); 
    } 

 
void CULHook::ReHook() 

    if (m_pfnOrig != NULL) 
    { 
        MEMORY_BASIC_INFORMATION mbi = {0}; 
        DWORD dwOldProtect; 
        ::VirtualQuery(m_pfnOrig, &mbi, sizeof(mbi)); 
        ::VirtualProtect(m_pfnOrig, 8, PAGE_READWRITE, &dwOldProtect); 
        ::WriteProcessMemory(GetCurrentProcess(), (VOID*)m_pfnOrig, m_btNewBytes, 8, NULL); 
        ::VirtualProtect(m_pfnOrig, 8, dwOldProtect, NULL); 
    } 
}

希望本文所述對大家的C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久综合九色九九| 国产中文日韩欧美| 国产精品福利在线观看| 成人黄色av网| 欧美高清自拍一区| 精品视频在线观看日韩| 97**国产露脸精品国产| 亚洲偷熟乱区亚洲香蕉av| 欧美超级免费视 在线| 国产精品偷伦视频免费观看国产| 亚洲女人天堂成人av在线| 亚洲成av人片在线观看香蕉| 国产精品99一区| 91久久久久久国产精品| 国产精品日韩在线| 伊人成人开心激情综合网| 国产精品精品一区二区三区午夜版| 亚洲最大的网站| 成人免费在线视频网址| 日韩麻豆第一页| 91久久精品国产91久久| 国模精品一区二区三区色天香| 久久九九全国免费精品观看| 国产色婷婷国产综合在线理论片a| 深夜福利一区二区| 欧美大尺度在线观看| 国产精品福利无圣光在线一区| 欧美电影免费观看高清| 国产精品九九久久久久久久| 亚洲精品白浆高清久久久久久| 国产精品福利网| 欧美高清在线视频观看不卡| 国产美女久久精品香蕉69| 色综合老司机第九色激情| 日韩a**站在线观看| 欧美大尺度激情区在线播放| 国内精品久久影院| 欧美高清不卡在线| 久热精品视频在线免费观看| 成人av资源在线播放| 国产精品99蜜臀久久不卡二区| 欧美福利视频在线| 国产美女久久久| 91中文精品字幕在线视频| 欧美一区二区大胆人体摄影专业网站| 久久久91精品国产一区不卡| 国产欧美亚洲视频| 久久偷看各类女兵18女厕嘘嘘| 国产精品免费观看在线| 色樱桃影院亚洲精品影院| 久久精品视频网站| 日韩精品中文字幕久久臀| 久久成人av网站| 亚洲第一区第一页| 最近2019年中文视频免费在线观看| 国产精品视频999| 久久国产加勒比精品无码| 欧美xxxx做受欧美| 中文亚洲视频在线| 精品久久久香蕉免费精品视频| 欧美国产在线电影| 日韩av成人在线观看| 麻豆一区二区在线观看| 北条麻妃一区二区在线观看| 亚洲电影免费观看高清| 日韩精品视频在线观看免费| 欧美日本啪啪无遮挡网站| 国产丝袜一区二区三区免费视频| 欧美亚洲视频在线看网址| 欧美裸体xxxx极品少妇软件| 成人免费观看网址| 亚洲人成网站色ww在线| 欧美性黄网官网| 韩国精品美女www爽爽爽视频| 精品久久久久久久久久| 欧美特级www| 成人网在线免费观看| 亚洲男子天堂网| 国产精品中文在线| 欧美成人四级hd版| 欧美人与性动交| 伊人久久久久久久久久久| 欧美日韩国产激情| 欧美性生交大片免费| 精品成人乱色一区二区| 91国自产精品中文字幕亚洲| 国产精品视频免费观看www| 国产亚洲aⅴaaaaaa毛片| 在线播放日韩欧美| 亚洲精品久久久久久久久| 亚洲老板91色精品久久| 91国产精品视频在线| 亚洲精品国产欧美| 欧美激情一二三| 欧美精品电影在线| 黑人巨大精品欧美一区二区| 国产精品最新在线观看| 亚洲欧美日韩第一区| 日本国产欧美一区二区三区| 亚洲综合日韩在线| 91九色国产社区在线观看| 亚洲精品国产精品国自产观看浪潮| 日韩成人性视频| 精品国产91久久久久久老师| 亚洲www在线| 久久久噜噜噜久久中文字免| 亚洲欧洲国产精品| 欧美午夜精品久久久久久浪潮| 欧美亚洲第一页| 尤物精品国产第一福利三区| 亚洲最新av网址| 在线精品91av| 九九热这里只有精品免费看| 欧美一区在线直播| 日韩欧美精品网址| 国产精品三级网站| 精品国产一区二区三区久久狼黑人| 羞羞色国产精品| 国产精品自拍小视频| 久久九九国产精品怡红院| 热草久综合在线| 精品久久久久久久久久久| 26uuu另类亚洲欧美日本一| 国产日韩一区在线| 国产91精品久久久久久久| 视频一区视频二区国产精品| 91香蕉嫩草影院入口| 日韩最新免费不卡| 欧美巨乳在线观看| 亚洲欧美日韩爽爽影院| 久久久久久久久综合| 91高清免费在线观看| 国产精品主播视频| 欧美性xxxx极品hd欧美风情| 欧美色xxxx| 性欧美暴力猛交69hd| 日韩av影视综合网| 日本伊人精品一区二区三区介绍| 成人亚洲综合色就1024| 日韩av影片在线观看| 美日韩精品免费观看视频| 18久久久久久| 成人免费视频a| 欧美大码xxxx| 欧美日韩国产123| 欧美最猛性xxxxx免费| 91亚洲精品一区二区| 91精品久久久久久久久久久久久久| 国产精品99久久久久久久久| 欧美—级a级欧美特级ar全黄| 亚洲精品狠狠操| 国产亚洲aⅴaaaaaa毛片| 国产精品一区二区电影| 岛国av一区二区在线在线观看| 热re99久久精品国产66热| 亚洲欧美色婷婷| 亚洲成人激情在线观看| 81精品国产乱码久久久久久| 国产精品草莓在线免费观看| 中文字幕免费精品一区高清| 日韩中文字幕在线| 亚洲成人1234| 中文字幕免费精品一区| 亚洲自拍小视频免费观看|