C# 优雅的实现ApiHook
全部源码下载: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相关推荐
- 如何优雅的在python中暂停死循环?
死循环 有时候在工作中可能会遇到要一直执行某个功能的程序,这时候死循环就派上用途了,python中死循环的具体形式大致如下 while True:run_your_code() 结束死循环 通常我们结 ...
- 如何通过HTTP优雅调用第三方-Feign
Java常用HTTP客户端 Java原生HttpURLConnection Apache HttpClient OkHttp Spring RestTemplate 示例 public interfa ...
- 如何更优雅地对接第三方API
如何更优雅地对接第三方API 本文所有示例完整代码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/ ...
- java redis管理_优雅时间管理Java轻松做到,想学么?
原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...
- 拒绝了我们的连接请求_职场上,我们该如何巧妙而优雅的拒绝同事忙的请求呢?...
Hi!点击上方 李香浓Shannon 关注我:) 态度对人 说话对事 --知心美容院 如何优雅拒绝,同事的不合理请求? 点击视频查看? 面对同事的不合理请求 如何正确地拒绝,你学会了吗? Total ...
- java build path entries 为空_同事的代码简直没法看,我来教你如何更优雅的设计Java异常...
点击上方蓝色字体,选择"设为星标" 回复"666"获取面试宝典 异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的 ...
- java 逻辑校验工具_SpringBoot2.0实战(10)整合fluent-validator优雅业务校验
相关知识 FluentValidator是一个工具类库,使用流式(Fluent Interface)调用风格让校验跑起来更优雅,代码更简洁,同时验证器(Validator)可以做到开闭原则,实现最大程 ...
- 用代码优雅的终止springboot服务
用代码优雅的终止springboot服务 1. 法一: configurableApplicationContext.close() 2. 法二: System.exit(SpringApplicat ...
- 新的工作电脑 神州优雅A550-i7
新的工作电脑,神州优雅A550-i7,也推荐给大家,只想讲给大家买神州很好,一点也不丢脸,不要为了牌子多花钱,世界上80%的笔记本出自中国(包括台湾),我们应该支持价廉物美. 我评价A550-i7 价 ...
最新文章
- Disruptor-net
- 基于Python预测股价的那些人那些坑,请认真看完!
- Django 3.2.5博客开发教程:体验django模板
- python加载函数包_Python wrapt包_程序模块 - PyPI - Python中文网
- win10笔记本电脑合上屏幕休眠该怎么设置
- 20165332第八周课下作业
- Python使用类来创建对象
- [转]输入框对齐问题
- 【数据结构初阶-oj】入门二叉树的入门oj
- IE浏览器url中出现中文访问404问题解决
- 适合后端开发人员的html笔记
- ffmpeg视频剪辑视频长度问题,视频无声音,视频卡顿问题
- 使用GDI/GDI+绘制到D3D9缓冲区的方法
- 藏在煤箱中的文明:一个会说话的箱子能告诉我们什么?
- SQL 根据身份证号码提取出出生日期
- AI+安防,怎样引领安防行业的变革?
- 习题4-5 换硬币 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?
- 由前序序列与中序序列实现后序遍历
- [SWPUCTF 2021 新生赛]caidao
- 机器学习--高等数学篇--线性代数篇04--矩阵03(完)