• 大小: 59KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: 其他
  • 标签: Hook  win10x64  

资源简介

The Minimalistic API Hooking Library for x64/x86,win10 X64 可用

资源截图

代码片段和文件信息

/*
 *  MinHook - The Minimalistic API Hooking Library for x64/x86
 *  Copyright (C) 2009-2017 Tsuda Kageyu.
 *  All rights reserved.
 *
 *  Redistribution and use in source and binary forms with or without
 *  modification are permitted provided that the following conditions
 *  are met:
 *
 *   1. Redistributions of source code must retain the above copyright
 *      notice this list of conditions and the following disclaimer.
 *   2. Redistributions in binary form must reproduce the above copyright
 *      notice this list of conditions and the following disclaimer in the
 *      documentation and/or other materials provided with the distribution.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 *  “AS IS“ AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED
 *  TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 *  PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER
 *  OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL
 *  EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE DATA OR
 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 *  LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 *  SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#include 
#include “buffer.h“

// Size of each memory block. (= page size of VirtualAlloc)
#define MEMORY_BLOCK_SIZE 0x1000

// Max range for seeking a memory block. (= 1024MB)
#define MAX_MEMORY_RANGE 0x40000000

// Memory protection flags to check the executable address.
#define PAGE_EXECUTE_FLAGS \
    (PAGE_EXECUTE | PAGE_EXECUTE_READ | PAGE_EXECUTE_READWRITE | PAGE_EXECUTE_WRITECOPY)

// Memory slot.
typedef struct _MEMORY_SLOT
{
    union
    {
        struct _MEMORY_SLOT *pNext;
        UINT8 buffer[MEMORY_SLOT_SIZE];
    };
} MEMORY_SLOT *PMEMORY_SLOT;

// Memory block info. Placed at the head of each block.
typedef struct _MEMORY_BLOCK
{
    struct _MEMORY_BLOCK *pNext;
    PMEMORY_SLOT pFree;         // First element of the free slot list.
    UINT usedCount;
} MEMORY_BLOCK *PMEMORY_BLOCK;

//-------------------------------------------------------------------------
// Global Variables:
//-------------------------------------------------------------------------

// First element of the memory block list.
PMEMORY_BLOCK g_pMemoryBlocks;

//-------------------------------------------------------------------------
VOID InitializeBuffer(VOID)
{
    // Nothing to do for now.
}

//-------------------------------------------------------------------------
VOID UninitializeBuffer(VOID)
{
    PMEMORY_BLOCK pBlock = g_pMemoryBlocks;
    g_pMemoryBlocks = NULL;

    while (pBlock)
    {
        PMEMORY_BLOCK pNext = pBlock->pNext;
        VirtualFree(pBlock 0 MEM_RELEASE);
        pBlock = pNex

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-23 02:45  minhook-master\
     文件         410  2017-05-23 02:45  minhook-master\.editorconfig
     文件         355  2017-05-23 02:45  minhook-master\.gitignore
     文件         214  2017-05-23 02:45  minhook-master\AUTHORS.txt
     文件        4365  2017-05-23 02:45  minhook-master\LICENSE.txt
     文件        4125  2017-05-23 02:45  minhook-master\README.md
     目录           0  2017-05-23 02:45  minhook-master\build\
     目录           0  2017-05-23 02:45  minhook-master\build\MinGW\
     文件         929  2017-05-23 02:45  minhook-master\build\MinGW\Makefile
     文件         319  2017-05-23 02:45  minhook-master\build\MinGW\make.bat
     目录           0  2017-05-23 02:45  minhook-master\build\VC10\
     文件       10395  2017-05-23 02:45  minhook-master\build\VC10\MinHook.vcxproj
     文件        2108  2017-05-23 02:45  minhook-master\build\VC10\MinHookVC10.sln
     文件        9511  2017-05-23 02:45  minhook-master\build\VC10\libMinHook.vcxproj
     文件        1813  2017-05-23 02:45  minhook-master\build\VC10\libMinHook.vcxproj.filters
     目录           0  2017-05-23 02:45  minhook-master\build\VC11\
     文件       10571  2017-05-23 02:45  minhook-master\build\VC11\MinHook.vcxproj
     文件        2108  2017-05-23 02:45  minhook-master\build\VC11\MinHookVC11.sln
     文件        9717  2017-05-23 02:45  minhook-master\build\VC11\libMinHook.vcxproj
     文件        1813  2017-05-23 02:45  minhook-master\build\VC11\libMinHook.vcxproj.filters
     目录           0  2017-05-23 02:45  minhook-master\build\VC12\
     文件       10572  2017-05-23 02:45  minhook-master\build\VC12\MinHook.vcxproj
     文件        2185  2017-05-23 02:45  minhook-master\build\VC12\MinHookVC12.sln
     文件        9832  2017-05-23 02:45  minhook-master\build\VC12\libMinHook.vcxproj
     文件        1813  2017-05-23 02:45  minhook-master\build\VC12\libMinHook.vcxproj.filters
     目录           0  2017-05-23 02:45  minhook-master\build\VC14\
     文件       10572  2017-05-23 02:45  minhook-master\build\VC14\MinHook.vcxproj
     文件        2183  2017-05-23 02:45  minhook-master\build\VC14\MinHookVC14.sln
     文件        9832  2017-05-23 02:45  minhook-master\build\VC14\libMinHook.vcxproj
     文件        1813  2017-05-23 02:45  minhook-master\build\VC14\libMinHook.vcxproj.filters
     目录           0  2017-05-23 02:45  minhook-master\build\VC15\
............此处省略27个文件信息

评论

共有 条评论