开源的Nektra HookLib

hook 源库 C 源码库 ,用于进程中的线程控制 在很多著名的服务器中都用到,如ZLMediakit 立即下载
 
HookLib Overview

HookLib is a code interception engine for Microsoft Windows?
This library is the core of our Deviare technology, it has the functionality offered by Microsoft Detours?but we have released it under a GNU LGPL license, this way we offer it as a free download and we allow the use of it for any purpose, including commercial purposes.
The library is coded in C++ and provides all the facilities required to hook any code during runtime. If you need to intercept any Windows API function this tool makes it easier than ever.


This is a fragment of assembler code which shows a code interception in a Win32 API function.
The image shows that every call to the FindNextFile function is handled by the HookLib library, and allows you to execute your custom code.
To check it's functionality you can read the HookLib article in our Blog and use the C++ Example included in the package.
You can download HookLib for free clicking here.
http://nektra.com/products/deviare/hooklib/



Nektra’s hook engine for Windows.
Today we are releasing HookLib, our hook engine, under LPGL license. It has been a part of Deviare since its early beginning. And we think it reached a maturity level that any developer can appreciate.
There are several libraries that provide some of the functionality we give here. But most of them are theoretical examples, or very custom, that do not adjust well to every situation. In contrast, we designed it to suit to most situations and solve most common mistakes, as the ones seen on multithreading environments.
Inside the library, you’ll find a small yet powerful example. Let’s take a look at it:
The example’s goal is to deny access to a complete folder tree ( My Documents) and hide any executable file from the dialog. Two kernel’s functions will be intercepted:

For our first task, we hook FindFirstFileW. From here we block any access attempt to our folder or any child in it.

This hook is handled before the actual call is made. So, when we set the last error to access denied and ask our hook to skip the call, the kernel function is never reached, and the caller is prevented from enumerating it. Also, we are returning an invalid handle, as defined by the documentation.
To hide executable extensions from the user, we will hook FindNextFileW. A program call this function to navigate files in a folder. What we do here is intercept calls just before they return to the caller. There we see if the file found is of any interest to us.


As shown, if we need to skip this call, we simply call the function again. This way, the result goes unknown from the caller. To cleanly return the next item, we make sure that the return value and last error get to the caller.
Please remember that this an open source project. Feel free to add any changes you see fit. We’ll keep on using it on our products, so don’t hesitate in sending us any bug report of feature request. We’ll try our best to add them.

附件是HookLib的安装文件,也可以去网站上下载.
HookLib v 1.0 by Nektra 立即下载

相关推荐

react-hooks-lib:一组可重复使用的React Hooks

React钩子库· 一组可重复使用的 。 挂钩是React 16.8中的新增功能。 它们使您无需编写类即可使用状态和其他React功能。 安装 npm i react-hooks-lib --save 例子 参观 钩子 名称 争论 退货 生命周期 F -- F -- f,条件 -- 状态 最初的 {ContextProvider,ContextConsumer,set,useSelector,useSet} 最初的 {GlobalProvider,GlobalConsumer,set,useSelector,useSet} useMergeState 最初的 {状态,设定} useNestedState 最初的 {陈述,取得,设定} useStateCallback 初始,f {状态,设定} useUndo 最初的 {过去,现在,将来,设置,撤消,重做

读书笔记_windows的APIHook技术

首先介绍一下rootkits,rootkits是一种高端的黑客技术,能够运行在内核态,与杀毒软件处于同一级别,很难被发现与清除。 在windows系统中,大多数的进程都依赖于3个子系统:Win32,POSIX和OS/2子系统,这些子系统包含了一组良好的说明的API,大多数的程序都依赖与这些API,因此它们都是rootkit的极佳目标。 来看一个应用程序调用FindNextFile函数的过程...

wodamazi 239

【报错】sqli-labs靶场搭建出现“Unable to connect to the database: security”

搭建sqli-labs靶场时,“Unable to connect to the database: security”报错解决

九芒星的博客 2996

一种hook libc库函数的简易方案

有时候我们分析/逆向ELF文件时,可能想直接运行ELF看看效果,同时又想捕获ELF文件用了哪些字符串、回连地址&端口、操作了哪些文件等等特征信息。这时我们可以巧妙的借用LD_PRELOAD,来实现一种简易的hook libc库函数方案来打印我们想要的特征信息。

夏天夏天悄悄过去留下小眯眯 4437

将AAL图谱对应到Yeo7大网络中【原理,代码分析】

本文介绍了将AAL2图谱映射到Yeo7大功能网络的方法。通过整合皮层(Yeo2011)、小脑(Buckner2011)和纹状体(Choi2012)三个区域的功能网络图谱,采用投票机制确定每个AAL区域的网络归属。具体步骤包括:1)统计每个AAL区域体素在各网络图谱中的分布;2)选择体素数量最多的网络作为该区域的最终标签。该方法实现了从解剖结构到功能网络的映射,可获得120个AAL区域对应的7大功能网络标签。

yes666666的博客 2208

VC Spyglass CDC实战:如何快速定位和解决重汇聚问题(附详细调试步骤)

本文深入探讨了在SoC设计中利用VC Spyglass进行CDC验证时,如何高效定位和解决棘手的重汇聚问题。通过实战演练,详细解析了重汇聚的本质、VC Spyglass的检测逻辑,并提供了从报告筛选、GUI原理图分析到制定设计修复或约束豁免方案的全套调试步骤,帮助工程师快速攻克这一常见验证难题。

weixin_29219539的博客 755

Linux/Windows下的静态库、动态库及.lib转.a文件方法

Linux的库文件是.a、.so、.o。 Windows的库文件是.lib。

丨晋丨 1万+

射频收发机(RF Transceiver)

2,既然原来外差的思路是把声音频率的信号,通过混频搬移到高频电磁波频率,那对高频率信号放大的时候,是不是也可以先在比较低的射频频率进行放大,然后再通过频率搬移的方式,将放大后的信号搬移到高频率呢?频率搬移过程中,中间预先设定的固定射频频率被称为“中频”(中间频率,IF,Intermediate Frequency),由于这个频率超出了声音可听的范围,是“超声波”(supersonic),所以被命名为“超外差”(Super-Heterodyne)。混频后的信号在0频率附近,可能会发生DC偏移。

2301_77317229的博客 1123

HOOK SOCKET

记牌器教程二 hook socket教程 c++ 记牌器教程二 hook socket教程 c++ http://hi.baidu.com/752664788/item/20d87bcf7f3a2f3198b498d2       分析完了数据,我们开始写程序了   首先我们创建一个MFC的解决方案,然后在解决方案中添

1711

告别黑窗口!用VSCode+Native Debug调试C/C++程序,比GDB命令行舒服多了

本文介绍了如何使用VSCode配合Native Debug扩展来调试C/C++程序,替代传统的GDB命令行方式。通过可视化调试环境,开发者可以更高效地管理断点、查看变量和调用栈,大幅提升调试效率。文章详细讲解了环境配置、核心调试功能及高级技巧,帮助开发者快速上手这一现代调试工具。

weixin_26833139的博客 251

【YOLOv11】070、YOLOv11异常检测:正常数据训练下的异常目标识别

本文探讨了如何利用YOLOv11模型进行工业异常检测,重点介绍了仅使用正常样本训练模型的创新方法。文章首先通过产线误报案例引出异常检测的核心问题,阐述了YOLOv11作为特征提取器的改造思路,包括正常数据训练、特征空间构建和异常度量等关键步骤。实战部分提供了精简代码示例,强调数据增强控制、特征层选择和自编码器应用等技巧。作者还总结了容易出错的细节,如特征选择、阈值设定和计算效率优化等,并给出实用建议:从简单方法入手、重视可视化、确保数据质量、部署时设置复核机制等。最后指出该方法虽能减少对异常样本的依赖,但需

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 235

HookLib:深入、高效、可定制的钩子库

HookLib:深入、高效、可定制的钩子库 HookLibThe functions interception library written on pure C and NativeAPI with UserMode and KernelMode support项目地址:https://gitcode.com/gh_mirrors/ho/HookLib 项目简介 是一个由HoShiMin开发的...

gitblog_00050的博客 666

(五)激光线扫描-位移台标定

线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大,也会导致速度变慢。下面以位移台为例讲解,如何标定位移台。

FlyWine的博客 2891

HookLib 项目使用教程

HookLib 项目使用教程 1. 项目的目录结构及介绍 HookLib 项目的目录结构如下: HookLib/ ├── hooklib/ │ ├── hooklib.cpp │ ├── hooklib.h │ └── ... ├── hooklib_tests/ │ ├── test_hooklib.cpp │ └── ... ├── .gitignore ├── LICEN...

gitblog_00785的博客 500

某勾网之登录过程逆向

拉勾网的登录过程逆向,包含请求头(X-S-HEADER、X-K-HEADER、X-SS-REQ-HEADER等) 以及 请求参数/返回数据的加解密。

shanf7921的博客 3万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Hook技术

linux上基于C和C++的hook尝试

jinking01的专栏 4418

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

分享大恩开源的微信hook

分享大恩开源的微信hook

m0_68138958的博客 1932

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

如何解决 HookLib 函数拦截库的 5 个常见问题:完整指南

HookLib 是一个基于纯 C 和 NativeAPI 编写的轻量级函数拦截库,支持用户模式和内核模式。作为 Windows 平台上最高效的挂钩解决方案之一,HookLib 在开发过程中可能会遇到一些典型问题。本文将为您提供 5 个常见问题的解决方案,帮助您快速上手并解决实际使用中的困扰。🚀 ## 🔧 安装配置问题与快速解决方案 **问题 1:项目引用配置失败** 在 Visual S

gitblog_00081的博客 482

163MusicLyrics:免费批量下载网易云QQ音乐LRC歌词的终极指南

还在为音乐播放器里那些没有歌词的歌曲烦恼吗?你是否收藏了数百首好歌,却要为每首歌手动搜索下载歌词?现在,有了163MusicLyrics这款开源工具,你可以轻松解决这些烦恼!这是一款专门为音乐爱好者设计的免费歌词下载工具,支持网易云音乐和QQ音乐两大平台,能够智能批量下载LRC格式歌词,让你的音乐库瞬间变得完整。 想象一下,只需几个简单步骤,你就能为整个音乐文件夹自动匹配并下载歌词。无论你是普通

gitblog_00879的博客 852

Linux下C++中可使用的3种Hook方法

Hook即钩子,截获API调用的技术,是将执行流程重定向到你自己的代码,类似于hack。如使程序运行时调用你自己实现的malloc函数代替调用系统库中的malloc函数。这里介绍下Linux下C++中可使用的3中Hook方法: 1. GNU C库允许你通过指定适当的钩子函数(hook function)来修改malloc、realloc和free的行为,钩子函数的声明在malloc.h文件中,如__malloc_hook, __free_hook,你可以使用这些钩子来帮助你调试使用...

网络资源是无限的 8221

libhooker 开源项目安装与使用教程

libhooker 开源项目安装与使用教程 1. 项目目录结构及介绍 libhooker 是一个专为 iOS 逆向工程和 jailbreak 社区设计的项目,由 CoolStar 维护。下面是其主要的目录结构概览及其简要说明: ezinject_libhooker_二进制:可能包含用于注入 dylib 的可执行工具。 libhooker API:这个部分包含了库的接口定义,用于开发者集成到自己的...

gitblog_00306的博客 680

简单进行曲/Android对so进行简单hook_0基础白帽子教程

1、什么是HookHook 技术又叫做钩子函数,在系统没有调用该函数之前,钩子程序就先捕获该消息,钩子函数先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为

程序员三九的博客 1634

推荐开源项目:AllHookInOne - 全面的Android钩子技术实现

推荐开源项目:AllHookInOne - 全面的Android钩子技术实现 1、项目介绍 AllHookInOne 是一个集大成的Android钩子库,它包含了针对Android系统各种方法拦截(hook)技术的实现,包括Dalvik Hook、ART Hook、ELF Hook以及Inline Hook。这个项目由开发者BoyLiang创建,并持续更新以适应最新的Android版本和开发需求...

gitblog_00079的博客 507

微软技术日报 11-09:.NET 8 与 9 明日同时停止支持,注册表编辑器出了 WinUI 3 版

今天这四条消息的共同点是收口。.NET 8 和 9 的支持期到点,注册表编辑器的新界面只放在仓库里给人看,GitHub 把一类危险触发器按住默认,微软在安全报告里把防线从地址黑名单挪到行为。收口并不等于关门。.NET 10 还在支持期里,被按住的触发器可以用策略按文件放回来,实验室里的样例随时可能变成产品。区别在于这些动作要有人签字,不再是默认开着。如果今天只做一件事,去看一眼构建机上的 .NET 版本。明天之后,8 和 9 的漏洞补丁不会再来了。

海盗Sharp的博客 390
上一篇: detours 通过修改输入表注入DLL -- UpdateImports 函数的分析
下一篇: 利用CreateEvent函数不让微点启动
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值