Skip to content
net 实现InlineHook
C# C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Properties
obj
549875165.png
Csharp_InlineHook.csproj
Form1.Designer.cs
Form1.cs
Form1.resx
Inline_Hook.cs
LICENSE
Methods.cs
NativeAPI.cs
README.md
WeChetHook.cs
dllmain.cpp

README.md

csharp_InlineHook

net 实现InlineHook

目录

背景介绍

csharp_InlineHook,是一个可以将托管dll注入到非托管进程hook。

项目介绍

此项目设计初衷是提供一个可方便扩展的hook库。

写此库之前查阅大量的资料并只有两个实现 一个是esayhook 缺点是不支持任意点hook,只能hook系统api 一个是网友实现的只支持托管进程hook

本项目可以支持InlineHook 任意点hook 函数或者流程 使用非托管dll当作跳板用于加载非托管dll实现注入 剩下的hook全部在非托管实现

使用说明

net可以直接编译,

dllmain.cpp自己新建项目编译

使用样例

Inline_Hook.InlineHook(3212659,5, byteSource.ToArray(), getInt(Method),11+10,"接收消息",(obj) =>{
                StringBuilder sb = new StringBuilder();
                sb.Append("接收消息:");
                int a = 0x68;
                try
                {
                    if (obj.ESP == 0)
                        return;
                    int MsgPtr = NativeAPI.ReadMemoryValue(obj.ESP);
                    if (MsgPtr == 0)
                        return;
                    MsgPtr = NativeAPI.ReadMemoryValue(MsgPtr);
                    if (MsgPtr == 0)
                        return;
                    MsgPtr = NativeAPI.ReadMemoryValue(MsgPtr + 0x68);
                    if (MsgPtr == 0)
                        return;
                    int len = NativeAPI.lstrlenW(MsgPtr);
                    if (len == 0)
                        return;
                    sb.Append(NativeAPI.ReadMemoryStrValue(MsgPtr, len*2+2));
                    sb.Append("\r\n");
                    listBox1.Items.Add(sb.ToString());
                }
                catch (Exception es)
                {
                    File.AppendAllText("error.txt", es.Message);
                }
            });

Shurnim icon

其他

时间仓促,功能简陋,望您包涵。特别希望看到该项目对您哪怕一点点的帮助。任意的意见和建议,欢迎随意与我沟通,联系方式:

项目的Bug和改进点,可在OSChina上以issue的方式直接提交给我。

You can’t perform that action at this time.