全部源码下载:https://download.csdn.net/download/vblegend_2013/10680642

通过继承NtAPIHook<泛型委托> 定义API ,并提供绕过Hook的源函数Origin委托

此模块支持 32位和64位

Hook处理类

using System;
using System.Runtime.InteropServices;namespace NativeHook.Test
{public delegate Int32 MessageBoxW(IntPtr hWnd, [MarshalAs(UnmanagedType.LPWStr)] string lpText, [MarshalAs(UnmanagedType.LPWStr)] string lpCaption, UInt32 uType);public class MessageBoxHook : NtAPIHook<MessageBoxW>{[DllHook("user32", EntryPoint = "MessageBoxW")]public Int32 MessageBox(IntPtr owner, string text, string caption, UInt32 options){//拦截信息Console.Title = caption;Console.WriteLine(text);//调用源函数return Origin.Invoke(owner, text, caption, options);}}
}

创建Hook 及 Hook作用域

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;namespace NativeHook.Test
{class Program{[STAThread]static void Main(string[] args){using (var hook = new MessageBoxHook()){//绕过Hook直接调用源函数hook.Origin(IntPtr.Zero, "111", "222", 0);//调用Api 被HookMessageBox.Show("Hello world", "666", MessageBoxButtons.YesNoCancel);}//Hook解除拦截不到MessageBox.Show("Hello world", "666", MessageBoxButtons.YesNoCancel);}}
}

C# 优雅的实现ApiHook相关推荐

  1. 如何优雅的在python中暂停死循环?

    死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...

  2. 如何通过HTTP优雅调用第三方-Feign

    Java常用HTTP客户端 Java原生HttpURLConnection Apache HttpClient OkHttp Spring RestTemplate 示例 public interfa ...

  3. 如何更优雅地对接第三方API

    如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...

  4. java redis管理_优雅时间管理Java轻松做到,想学么?

    原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...

  5. 拒绝了我们的连接请求_职场上,我们该如何巧妙而优雅的拒绝同事忙的请求呢?...

    Hi!点击上方 李香浓Shannon 关注我:) 态度对人 说话对事 --知心美容院 如何优雅拒绝,同事的不合理请求? 点击视频查看? 面对同事的不合理请求 如何正确地拒绝,你学会了吗? Total ...

  6. java build path entries 为空_同事的代码简直没法看,我来教你如何更优雅的设计Java异常...

    点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的 ...

  7. java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验

    相关知识 FluentValidator是一个工具类库,使用流式(Fluent Interface)调用风格让校验跑起来更优雅,代码更简洁,同时验证器(Validator)可以做到开闭原则,实现最大程 ...

  8. 用代码优雅的终止springboot服务

    用代码优雅的终止springboot服务 1. 法一: configurableApplicationContext.close() 2. 法二: System.exit(SpringApplicat ...

  9. 新的工作电脑 神州优雅A550-i7

    新的工作电脑,神州优雅A550-i7,也推荐给大家,只想讲给大家买神州很好,一点也不丢脸,不要为了牌子多花钱,世界上80%的笔记本出自中国(包括台湾),我们应该支持价廉物美. 我评价A550-i7 价 ...

最新文章

  1. Disruptor-net
  2. 基于Python预测股价的那些人那些坑,请认真看完!
  3. Django 3.2.5博客开发教程:体验django模板
  4. python加载函数包_Python wrapt包_程序模块 - PyPI - Python中文网
  5. win10笔记本电脑合上屏幕休眠该怎么设置
  6. 20165332第八周课下作业
  7. Python使用类来创建对象
  8. [转]输入框对齐问题
  9. 【数据结构初阶-oj】入门二叉树的入门oj
  10. IE浏览器url中出现中文访问404问题解决
  11. 适合后端开发人员的html笔记
  12. ffmpeg视频剪辑视频长度问题,视频无声音,视频卡顿问题
  13. 使用GDI/GDI+绘制到D3D9缓冲区的方法
  14. 藏在煤箱中的文明:一个会说话的箱子能告诉我们什么?
  15. SQL 根据身份证号码提取出出生日期
  16. AI+安防,怎样引领安防行业的变革?
  17. 习题4-5 换硬币 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
  18. 由前序序列与中序序列实现后序遍历
  19. [SWPUCTF 2021 新生赛]caidao
  20. 机器学习--高等数学篇--线性代数篇04--矩阵03(完)

热门文章

  1. 有时 这就是生活的路
  2. 历嫁两姓三辈四任可汗的大唐公主
  3. vscode自动补全标签失效的解决方法
  4. 面试必备——python100题
  5. Python七天作业
  6. php 解析网页内容,PHP 获取远程网页内容的代码
  7. Python进阶(九)Python陷阱:Nonetype
  8. 安卓TV插件化9.0内联崩溃原因及解决方案
  9. 【0527】身份鉴别技术
  10. 在linux中强制终止任务的执行