使用detours库hook windows API 程序经常崩溃 [问题点数:50分]

Bbs1
本版专家分:0
结帖率 0%
Bbs12
本版专家分:378805
Blank
状元 2017年 总版技术专家分年内排行榜第一
Blank
榜眼 2014年 总版技术专家分年内排行榜第二
Blank
探花 2013年 总版技术专家分年内排行榜第三
Blank
进士 2018年总版新获得的技术专家分排名前十
2012年 总版技术专家分年内排行榜第七
使用detours技术hook系统API
// myDetours.cpp : 定义控制台应用<em>程序</em>的入口点。//#pragma once  #include &quot;stdafx.h&quot;#include &amp;lt;iostream&amp;gt;#include &amp;lt;<em>windows</em>.h&amp;gt;  #include &amp;lt;syelog.h&amp;gt;  #include &amp;lt;<em>detours</em>.h&amp;gt; #include &amp;lt;TlHelp32.h&amp;g...
Detours 库使用(一)
Detours是微软开发的一个函数库,可用于捕获系统API。rnDetours库的编译方法:http://blog.csdn.net/hewei0241/article/details/38326899rn测试环境:win7 x86rnPS:win x64 在注入的时候,所有测试<em>程序</em>是32位的。如果<em>使用</em>创建远程线程函数的方法来注入动态库,在win7 x64下,CreateRemoteThread会
Detours4.0最新版HOOK库源码,支持32及64位程序,这是正版源码。官方是收费的。
Detours4.0最新版,支持32及64位<em>程序</em>,这是正版源码。官方是收费的。
C# 优雅的实现ApiHook
全部源码下载:https://download.csdn.net/download/vblegend_2013/10680642nn 通过继承NtAPIHook&amp;lt;泛型委托&amp;gt; 定义API ,并提供绕过Hook的源函数Origin委托nn此模块支持 32位和64位nn nnHook处理类nnnusing System;nusing System.Runtime.InteropService...
QT下 hook自定义API
依赖detour实现了<em>hook</em>自定义API,使其跳转到mock API。
Hook MessageBox 全局Hook
原文地址http://blog.csdn.net/xugangjava/article/details/14001685, <em>使用</em>Detour3.0在Hook其他进程的MessageBox。
(二) 使用Detours调试远程线程注入的dll
调试远程线程注入的DLL
Detours 3.0 HOOK库
最新版Detours 3.0 HOOK库。最新版Detours 3.0 HOOK库。
C++ detours实现简单的系统函数拦截
哎,将近半年没写了,失踪人口回归,因为博主参加工作了。之前上学的时候,看到很多在学校读书的大牛参加工作之后也很少更新博客,之前不以为意。现在发现确实是工作的空闲时间不如上学的时候,所以也想念以前在大学里面一个人在图书馆一台电脑一瓶矿泉水一天的时光,哈哈。但是呢,有空写写博客,也不是一件坏事呢。nnn今天实现一个简单的调用<em>detours</em>.lib的静态库实现一个对系统函数(system)的拦截。
APIHook(detours)
HOOK API <em>detours</em> HOOKAPIHOOK API <em>detours</em> HOOKAPI 微软内部 HOOKAPI 32位库
[32/64]关于DLL注入与Hook(minihook)的简单介绍与使用
因为工作有时候用到,简单的介绍下相关的知识,都是很基础的,部分在网上收集整理。n0x01关于DLL注入 nDLL注入技术的用途是很广泛的,这主要体现在: n- 假如你要操纵的对象涉及的数据不在进程内;n- 你想对目标进程中的函数进行拦截或者修改(API)。n- 你想编写一些函数用于增强或增加目标进程功能,比如可以给目标进程的某个窗口插入个消息循环增加其响应能力。(Mfc Windows程
HOOK如何用C++调用detours劫持WindowsAPI?
00 <em>detours</em>nn<em>detours</em>是微软亚洲研究院出品的信息安全产品,用于劫持nn可用Detours Express 3.0编译生成<em>detours</em>.libnn01 劫持MessageBoxW()nnvs2015创建空项目,源文件中添加msg.cnn把<em>detours</em>.h、<em>detours</em>.lib、detver.h文件复制到msg.c同目录下nn输入MessageBoxW()右键选择查看定...
图解Detour安装及简单使用实例(Win7+VC6)
相关下载:rnhttp://pan.baidu.com/s/1o7OEMc6rnrndetour6.rar是本文工程rnrnDetoursExpress30是微软下载的detour安装文件rnrndetoured是编译好的库rnrnrnrn参考rnhttp://www.cnblogs.com/weiqubo/archive/2011/06/01/2065534.htmlrnhttp://blog.
利用Detours对程序进行劫持
一、下载Detours与安装nnnnDetours Express现在更新到3.0版本n下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=52586nn安装过程:一路NEXTn安装目录为X:\%Root\Microsoft Research\Detours Express 3.0n安装完成后到目录下 利用V
Linux下HOOK动态链接库中API的方法
        2012年,我写了一篇介绍Windows系统下Ring3层API的<em>hook</em>方案——《一种注册表沙箱的思路、实现——Hook Nt函数》,其在底层<em>使用</em>了微软的Detours库。5年后,我又遇到这么一个问题,但是系统变成了Linux。我最开始的想法是找一个Linux下的Detours库,于是找到了sub<em>hook</em>。其原理是:修改被Hook函数起始地址处的汇编代码,让执行流程跳到我们定义的...
windows下的API拦截---利用detours库操作
API拦截技术是一种比较常见的技术,对某个软件<em>使用</em>的系统API进行拦截,可以改变软件的行为,从而达到自己的目的。关于拦截技术的原理,Jeffy在《Windows核心编程》里面介绍的非常详尽,就是通过PE文件的导入表获取到保存了Windowsn API函数地址的那个地方,然后把API的内存地址保存起来,把存放API地址的那个地方的内容改成我们自定义函数的地址,这样就实现拦截效果了。可以简单看下流程
API Hook总结之一
6,API Hook总结rn实际上, droidplugin框架一共Hook了十多个服务对应的API接口, ServiceManager和LocationManager API的Hookrn在前面已经详细论述了。rn这些Hook一般都是在HookFactory的installHook方法中构造和安装的。rn其实主要就是三要素,Hook类, Hook 代理类以及Hook 方法实现类。rn6.1, A
API HOOK 全局钩子, 防止进程被杀
API拦截 防止进程被控制台杀死. 用的是全局钩子 通过修改进程的导入表修改OpenProcess的地址指向我们自定义的函数
Detours C++ HOOK类库
包含 1.微软的 Detour 3.0 2.列宁的大作 Detours 已测试正常
Detours库简单使用程序
一个简单<em>使用</em>Detours库的例子。Hook系统API,send和recv函数。
IAT-Hook 劫持进程Api调用
✪ω✪ n鹅厂面试的时候回答劫持API的各种Hook方式的时候,IAT-Hook应该算是最简单的一个。比IAT-Hook更难的是R3的5字节Hook,然后是热补丁Hook,SSDT-Hook….. n5字节Hook在前两篇进程隐藏中用过了,7字节主要是对API的要求比较高,这篇就更新IAT-Hook的实现代码,后续再更新复制原始API部分代码的热补丁Hook和SSDT-HooknnT_T n本来昨...
Detours API HOOK快速入门
Detours API HOOK 网络编程 c++ java
Windows内核编程 文件监控(ssdt hook
本文主要针为进行内核编程的一些初学者提供一些错误,如有错误,希望大家能够指出。n        这里先简单介绍一下概念。说到SSDT HOOK,可以从MEP技术说起,MEP(即执行路径修改)主旨就是拦截系统函数或相关处理例程,让它们转向我们自己的函数进行处理,这样就能实现过滤参数或者修改目标函数处理结果的目的。而SSDT(即 系统服务描述符表),主要是将位于Ring3的应用API函数和Ring0
windows下的内联hook实现
HOOK技术正如其名,就像是代码中放下的一个“钩子”,它在静静地等待捕获系统中的某个消息或动作。在编程技术中,钩子技术在DOS时代就已经存在了。在<em>windows</em>下,钩子按照实现技术的不同和挂钩位置的不同,其种类也是越来越多,但是设置钩子的本质却是始终不变的。n那么钩子究竟有什么用?它能干的事非常多,例如输入监控、API拦截、消息捕获、改变<em>程序</em>执行流程等。杀毒软件会用HOOK技术钩住一些API函数
第一课 记事本的WriteFile API HOOK
前面一直在写dll <em>hook</em>技术的学习心得,但是现在又来写API <em>hook</em>的体会,很多人都不理解,为什么要学习API <em>hook</em>,dll <em>hook</em>已经那么强大,为什么还要把API <em>hook</em>单独拿出来学习?在我学习完这些内容之后,我深刻的认识到二者的差别,请听我说。nn<em>使用</em>dll注入技术可以驱使目标进程强制加载用户指定的dll文件,<em>使用</em>该技术时,先在要注入的dll中创建<em>hook</em>代码和设置代码,然后在D...
detours 2.1
<em>detours</em> 2.1 <em>api</em> <em>hook</em> librarymicrosoft
Detours Express 3.0
Detours Express 3.0 <em>hook</em>任意<em>api</em>
强力的API HOOK开发包detours和配置说明
强力的API HOOK开发包<em>detours</em>和配置说明
关于各种钩子的应用(C++ VS08 环境)
钩子 @ VS08 ; 线程钩子; 全局钩子; API HOOK; 跨进程API HOOK; Detours应用
《Windows核心编程》之“API Hooking”(一)
《Windows核心编程》中介绍了两种API Hooking的方法 —— “Overwritting Code”(代码覆盖)和“API Hooking by Manipulating a Module's Import Section”(修改导入段)。本文在以学习这两种API Hooking为目的,介绍相关的内容,包括:API Hooking的作用、导入段的获取和修改、<em>detours</em>库、<em>使用</em>WM_
[Win32] API Hook(2)在64位系统上的实现
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/47979603n本文是对上一篇的补充。关于<em>api</em><em>hook</em>的原理,效果动画,代码分析,实现细节和32位<em>hook</em>的源码请见上一篇:[Win32]n API Hook(1)在32
远程线程注入+Api劫持实现锁主页
功能: 无聊写的一个锁主页的工具,可以锁死相关浏览器主页,具体细节可以通过修改源码来设置。 原理: 写一个dll注入到explorer里,然后<em>hook</em>掉启动进程的相关API,当用户手动启动浏览器的时候其实是explorer自己调用启动进程相关函数的, 然后我们劫持到之后直接改改参数就OK。
(一) Windows环境下的Detours编译
软件名称n n n 版本n n n 安装路径n n n 下载地址n n n mysqln n n 5.6n n n C:\Program Files\MySQL\MySQL Server 5.6\binn n n 点此下载n n n visual studion n n 2013n...
detours hook 完整代码
win7 x64 可用于64位进程 ring3 级<em>detours</em>钩子ntquerysysteminformation
浅谈屏幕取词划词与API HOOK、远程注入的关系以及技术原理
说到屏幕取词,就是通过拦截<em>windows</em>的显示API,获取输出的文本,然后提取出自己想要的信息的一个技术手段。<em>windows</em>有这么几个常用的,TextOutA,TextOutW,ExtTextOutA,ExtTextOutW以及Diretc3D的一些绘制函数(nopad,IE的输入框<em>使用</em>的是ExtTextOut, chrome<em>使用</em>的D3D的绘制函数,一些UI库的静态文本框基本是<em>使用</em>textOut)
vc6 编写的sniffer
<em>hook</em> 8个socket<em>api</em>,send/sendto/recv/recvfrom (WSA~) <em>hook</em><em>api</em>部分利用<em>detours</em>库 <em>hook</em> sokcet <em>api</em>后把数据sendmessage到界面UI 注意:<em>hook</em>工程有个UninstallHook() 改成UnInstallHook(),这个拼写错误,会使得界面<em>程序</em>无法卸载钩子
HookWindowTextDll-detours-code.rar
<em>使用</em><em>detours</em>库进行动态注入<em>程序</em>,截获DrawText和SetWindowText API函数
windows下面hook系统api实现禁止任务管理器关闭程序
为了保护我们的进程不被人随便强制关闭,我们需要一种机制来实现,网上大概有几种方式:1.写一个驱动<em>程序</em>,在驱动<em>程序</em>里面<em>hook</em>系统的<em>api</em>来实现,例如ssdt方式,等等。2.就是在应用层挂钩系统<em>api</em>,这种方式也就远程注入,全局钩子啊等等,只是网上也有很多,不过很多在xp上是正常的到了win7 64就失效了。还有最简单的就是启动两个进程相互监视对方,(这个可能看起来不专业)。 网上方法很多,我写这个
API拦截的应用,网址劫持
之前我有说过API拦截的技术,这篇文章中向大家展示一个应用,那就是拦截浏览器中网络通信API,实现网址跳转。n其效果就是,你在浏览器中输入百度的网址,当回车后跳转到了搜狗。n这个可以通过拦截多个API实现,也可以只拦截一个。n做这件事之前你要熟悉网络通信的原理,知道浏览器是怎么访问网站的。n首先,你在浏览器中输入网址后回车。浏览器会拿网址访问域名服务器,将域名转换为web服务器的IP地址。
获得真正硬盘序列号类源码(非调用系统API)
实用的获得硬盘序列号的,不是调用GetVolumeInformation系统API来获得“硬盘序列号”, 这个是真正的获得硬盘上的物理序列号,不管是重装系统了,还是格式化硬盘了,序列号都是一样的,当然你可以利用它来做软件保护,绑定一个机器生产注册号。
Windows平台Ring3下DLL注入(HOOK)方法整理汇总
1.dll劫持,粗略整理了下,可以劫持的dll有(持续更新):rnrnrnlpk.dll、usp10.dll、msimg32.dll、midimap.dll、ksuser.dll、comres.dll、ddraw.dllrnrn以lpk为例,在win7下由于lpk被加入KnownDLLs且该注册表值不可修改,使得lpk强制从系统目录加载,rnrn不过可以将lpk.dll加入ExcludeFromK
Windows Hook经验总结之二:API Hook实践
前一篇介绍了API Hook的几种方法,本文则直接以CopyFile为例采用DLL注入的方法来展示编码流程。在目标进程中创建远线程执行LoadLibrary将用户DLL加载进来,用户DLL中实现自己的API并修改IAT表项;反注入的过程则完全相反,先在用户DLL中恢复IAT表项,然后在目标进程中创建远线程执行FreeLibrary释放用户DLL。
使用detours Hook api的问题..
<em>使用</em><em>detours</em>做了一个监控文件系统操作的<em>程序</em>.遇到些小问题."新建""打开"操作什么的都没问题.唯独"读""写"操作有问题.感觉函数构造应该差不多啊.怎么会有这么大差别.rn先附上成功的<em>api</em>的代码rn[code=c]HANDLE WINAPI NEW_CreateFileA(LPCSTR lpFileName, DWORD dwDesiredAccess, rn DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes,rn DWORD dwCreationDisposition, DWORD dwFlagAndAttributes, HANDLE hTemplateFile)rnrn if(lpFileName != "C:\\dlllog.log") rn switch(dwCreationDisposition)rn case CREATE_ALWAYS:;rn case CREATE_NEW:;rn case OPEN_ALWAYS:AppendMessageToLog("创建新文件:","C:\\dlllog.log");rn AppendMessageToLog((char *)lpFileName,"C:\\dlllog.log");rn break;rn case OPEN_EXISTING:;rn case TRUNCATE_EXISTING:AppendMessageToLog("打开文件:","C:\\dlllog.log");rn AppendMessageToLog((char *)lpFileName,"C:\\dlllog.log");rn break;rn rn rn HANDLE ret = OLD_CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagAndAttributes, hTemplateFile);rn //MessageBoxW(NULL,lpFileName,L"[测试]",MB_OK);rn return ret;rn[/code]rn有问题的函数如下rn[code=c]BOOL WINAPI NEW_WriteFile(HANDLE hFile,LPCVOID lpBuffer,DWORD nNumberOfBytesToWrite,rn LPDWORD lpNumberOfBytesWritten,LPOVERLAPPED lpOverlapped)rnrn AppendWMessageToLog(L"修改文件:",L"C:\\dlllog.log");rn AppendWMessageToLog((wchar_t *)hFile,L"C:\\dlllog.log");rn BOOL ret=OLD_WriteFile(hFile,lpBuffer,nNumberOfBytesToWrite,lpNumberOfBytesWritten,lpOverlapped);rn return ret;rn[/code]rn当把上面这个函数加入后,就不正常了..
函数劫持
#include &amp;lt;stdio.h&amp;gt;n#include &amp;lt;stdlib.h&amp;gt;n#include &amp;lt;Windows.h&amp;gt;n#include&amp;lt;string.h&amp;gt;n#include &quot;<em>detours</em>.h&quot;n#pragma comment(lib,&quot;<em>detours</em>.lib&quot;)nn//指针存储系统函数nstatic BOOL (WINAPI *poldCrea...
Windows Hook经验总结之一:API Hook方法汇总
HOOK的目的是用我们自己的代码取代一些函数的代码以改变<em>程序</em>的行为。n静态HOOK:在进程运行前挂钩,采用用户级进程即可完成。比如:有些<em>程序</em>会在启动时需要原光盘,如果我们修改获取驱动类型的函数则可以从硬盘启动。n动态HOOK:挂钩系统进程(如服务)时要动态挂钩n本文介绍常见的<em>hook</em>方法和实现机制。
detours express3.0(微软hook封装库)
VS2013编译最新版<em>detours</em>库,可直接下载<em>使用</em>。
API Hook Detours技术
目前本人正在研究恶意<em>程序</em>行为分析,分析的前提是提取到进程的行为。提取进程行为的可选技术就是Hook,适用过中的Hook,效果不好。现在把目光投向Detours。rnrn大家有觉得怎么样,Detours能完成行为提取的任务吗?rnrnPlease feel free to comment.
下载Detours源代码、编译Detours Express Lib库(32位静态库,版本3.0)
下载以及编译Detours Lib库(32位静态库)。
监控及篡改MSN消息
<em>使用</em>Detours库对MSN进行Hook,全面监控及篡改MSN收发消息,老外写的,灰常强大:}
x86进程隐藏
ntquerysysteminformation 的<em>hook</em> <em>detours</em> x86
Detours Express源码(微软API HOOK库)
Detours是微软开发的一个函数库, 用于修改运行中的<em>程序</em>在内存中的影像,从而即使没有源代码也能改变<em>程序</em>的行为。具体用途是: 拦截WIN32 API调用,将其引导到自己的子<em>程序</em>,从而实现WIN32 API的定制。 为一个已在运行的进程创建一新线程,装入自己的代码并运行。 ---- 本文将简介Detours的原理,Detours库函数的用法, 并利用Detours库函数在Windows NT上编写了一个<em>程序</em>,该<em>程序</em>能使有“调试<em>程序</em>”的用户权限的用户成为系统管理员,附录利用Detours库函数修改该<em>程序</em>使普通用户即可成为系统管理员 (在NT4 SP3上)。 一. Detours的原理 ---- 1. WIN32进程的内存管理 ---- 总所周知,WINDOWS NT实现了虚拟存储器,每一WIN32进程拥有4GB的虚存空间, 关于WIN32进程的虚存结构及其操作的具体细节请参阅WIN32 API手册, 以下仅指出与Detours相关的几点: ---- (1) 进程要执行的指令也放在虚存空间中 ---- (2) 可以<em>使用</em>QueryProtectEx函数把存放指令的页面的权限更改为可读可写可执行,再改写其内容,从而修改正在运行的<em>程序</em> ---- (3) 可以<em>使用</em>VirtualAllocEx从一个进程为另一正运行的进程分配虚存,再<em>使用</em> QueryProtectEx函数把页面的权限更改为可读可写可执行,并把要执行的指令以二进制机器码的形式写入,从而为一个正在运行的进程注入任意的代码 ---- 2. 拦截WIN32 API的原理 ---- Detours定义了三个概念: ---- (1) Target函数:要拦截的函数,通常为Windows的API。 ---- (2) Trampoline函数:Target函数的复制品。因为Detours将会改写Target函数,所以先把Target函数复制保存好,一方面仍然保存Target函数的过程调用语义,另一方面便于以后的恢复。 ---- (3) Detour 函数:用来替代Target函数的函数。 ---- Detours在Target函数的开头加入JMP Address_of_ Detour_ Function指令(共5个字节)把对Target函数的调用引导到自己的Detour函数, 把Target函数的开头的5个字节加上JMP Address_of_ Target _ Function+5作为Trampoline函数。例子如下: 拦截前:Target _ Function: ;Target函数入口,以下为假想的常见的子<em>程序</em>入口代码 push ebp mov ebp, esp push eax push ebx Trampoline: ;以下是Target函数的继续部分 …… 拦截后: Target _ Function: jmp Detour_Function Trampoline: ;以下是Target函数的继续部分 …… Trampoline_Function: ; Trampoline函数入口, 开头的5个字节与Target函数相同 push ebp mov ebp, esp push eax push ebx ;跳回去继续执行Target函数 jmp Target_Function+5 ---- 3. 为一个已在运行的进程装入一个DLL ---- 以下是其步骤: ---- (1) 创建一个ThreadFuction,内容仅是调用LoadLibrary。 ---- (2) 用VirtualAllocEx为一个已在运行的进程分配一片虚存,并把权限更改为可读可写可执行。 ---- (3) 把ThreadFuction的二进制机器码写入这片虚存。 ---- (4) 用CreateRemoteThread在该进程上创建一个线程,传入前面分配的虚存的起始地址作为线程函数的地址,即可为一个已在运行的进程装入一个DLL。通过DllMain 即可在一个已在运行的进程中运行自己的代码。 二. Detours库函数的用法 ---- 因为Detours软件包并没有附带帮助文件,以下接口仅从剖析源代码得出。 ---- 1. PBYTE WINAPI DetourFindFunction(PCHAR pszModule, PCHAR pszFunction) ---- 功能:从一DLL中找出一函数的入口地址 ---- 参数:pszModule是DLL名,pszFunction是函数名。 ---- 返回:名为pszModule的DLL的名为pszFunction的函数的入口地址 ---- 说明:DetourFindFunction除<em>使用</em>GetProcAddress外,还直接分析DLL的文件头,因此可以找到一些GetProcAddress找不到的函数入口。 ---- 2. DETOUR_TRAMPOLINE(trampoline_prototype, target_name) ---- 功能:该宏把名为target_name 的Target函数生成Trampoline函数,以后调用 trampoline_prototype在语义上等于调用Target函数。 ---- 3. BOOL WINAPI DetourFunctionWithTrampoline(PBYTE pbTrampoline, BYTE pbDetour) ---- 功能:用Detour 函数拦截Target函数 ---- 参数:pbTrampoline是DETOUR_TRAMPOLINE得到的trampoline_prototype,pbDetour是 Detour 函数的入口地址。 ---- 4. BOOL WINAPI DetourRemoveWithTrampoline(PBYTE pbTrampoline,PBYTE pbDetour) ---- 功能:恢复Target函数 ---- 参数:pbTrampoline是DETOUR_TRAMPOLINE得到的trampoline_prototype,pbDetour是 Detour 函数的入口地址。 ---- 5. BOOL WINAPI ContinueProcessWithDll(HANDLE hProcess, LPCSTR lpDllName) ---- 功能:为一个已在运行的进程装入一个DLL ---- 参数:hProcess是进程的句柄,lpDllName是要装入的DLL名 三. <em>程序</em>实例 ---- 以一个能使有“调试<em>程序</em>”的用户权限的用户成为系统管理员的<em>程序</em>做例子说明Detours 库函数的用法。<em>程序</em>的设计思路是找一个以System帐号运行的进程,如spoolss.exe, rpcss.exe, winlogon.exe, service.exe等,<em>使用</em>ContinueProcessWithDll在其中注入把当前用户加入到 Administrators本地组的DLL,因为该DLL在这些进程的安全上下文环境运行,所以有相应的权限。 ---- 先编写相应的DLL: /*admin.dll, 当进程装入时会把名为szAccountName 的用户加入到Administrators本地组。*/ #include #include #include #include /*以下创建一共享段实现进程间的数据通讯, szAccountName 是用户名,bPrepared说明 szAccountName是否已初始化。*/ #pragma data_seg(".MYSHARE") BOOL bPrepared=FALSE; wchar_t szAccountName[100]={0}; #pragma data_seg() #pragma comment(linker, "/SECTION:.MYSHARE,RWS") /*<em>程序</em>调用SetAccountName设置要加入到Administrators 本地组的用户名,并通知DllMain 已初始化szAccountName , 以后被装入时可调用ElevatePriv */ __declspec(dllexport) VOID WINAPI SetAccountName(wchar_t *Name) { wcscpy(szAccountName,Name); bPrepared=TRUE; } /*把名为szAccountName的用户加入 到Administrators本地组*/ __declspec(dllexport) VOID WINAPI ElevatePriv() { LOCALGROUP_MEMBERS_INFO_3 account; account.lgrmi3_domainandname=szAccountName; NetLocalGroupAddMembers(NULL,L"Administrators", 3,(LPBYTE)&account,1); } __declspec(dllexport) ULONG WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, PVOID lpReserved) { switch (dwReason) { case DLL_THREAD_ATTACH: if (bPrepared) ElevatePriv(); } return TRUE; } <em>程序</em>如下: /*AddMeToAdministrators.exe 把当前用户加入到 Administrators本地组。<em>使用</em>方法为:(1) ---- 运行任务管理器找到spoolss.exe或rpcss.exe或winlogon.exe或sevice.exe的进程ID (2)执行AddMeToAdministrators.exe procid, 其中procid为(1)记下的进程ID (3)签退再签到,运行用户管理器,即可发现自己已在Administrators本地组中。*/ #include #include #include #include #include extern VOID WINAPI SetAccountName(wchar_t *Name); /* GetCurrentUser得到自己的用户名称*/ void GetCurrentUser(wchar_t *szName) { HANDLE hProcess, hAccessToken; wchar_t InfoBuffer[1000],szAccountName[200], szDomainName[200]; PTOKEN_USER pTokenUser = (PTOKEN_USER)InfoBuffer; DWORD dwInfoBufferSize,dwAccountSize = 200, dwDomainSize = 200; SID_NAME_USE snu; hProcess = GetCurrentProcess(); OpenProcessToken(hProcess,TOKEN_READ,&hAccessToken); GetTokenInformation(hAccessToken,TokenUser, InfoBuffer, 1000, &dwInfoBufferSize); LookupAccountSid(NULL, pTokenUser->User.Sid, szAccountName, &dwAccountSize,szDomainName, &dwDomainSize, &snu); wcscpy(szName,szDomainName); wcscat(szName,L"\"); wcscat(szName,szAccountName); } /* EnablePrivilege启用自己的“调试<em>程序</em>”的用户权限*/ BOOL EnablePrivilege(LPCTSTR szPrivName,BOOL fEnable) { HANDLE hToken; if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES, &hToken)) return FALSE; TOKEN_PRIVILEGES tp; tp.PrivilegeCount = 1; LookupPrivilegeValue(NULL, szPrivName, &tp.Privileges[0].Luid); tp.Privileges[0].Attributes = fEnable ? SE_PRIVILEGE_ENABLED : 0; AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(tp), NULL, NULL); return((GetLastError() == ERROR_SUCCESS)); } int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprev, LPSTR lpszCmdLine, int nCmdShow) { INT argc; WCHAR **argv; argv = CommandLineToArgvW(GetCommandLineW(), &argc); INT nProcessId = -1; if (argc!=2){ wprintf(L"usage %s pid", argv[0]); return 1; } nProcessId = _wtoi(argv[1]); printf("%d ",nProcessId); ---- /*要成功执行ContinueProcessWithDll,要对winlogon.exe等进程的进程句柄有读写存储器内容和创建线程的权限,EnablePrivilege使本进程有这样的权利。*/ if (!EnablePrivilege(SE_DEBUG_NAME, TRUE)){ printf("AdjustTokenPrivilege Fail %u ", (UINT)GetLastError()); return 1; } HANDLE gNewHandle = OpenProcess(PROCESS_ALL_ACCESS , TRUE, nProcessId); if (!gNewHandle){ printf("OpenProcess Fail %u ", (UINT)GetLastError()); return 1; } wchar_t szName[100]; GetCurrentUser(szName); SetAccountName(szName); If (!ContinueProcessWithDll(gNewHandle, L"c:\temp\admin.dll")) { printf("ContinueProcessWithDll failed %u", (UINT)GetLastError()); return 3; } return 0; } ---- 因为“调试<em>程序</em>”的用户权限缺省情况下仅赋予给管理员,因此并不会造成安全漏洞。但该<em>程序</em>揭示出“调试<em>程序</em>”的用户权限其实是至高无上的用户权限,只能授予给可信用户。 四. 结论 ---- Detours是一强大的工具,提供了简单易用的函数接口来拦截WIN32 API调用和为一个已在运行的进程装入一个DLL。
EasyHook 2.7 c#非常简单的HOOK处理类库
c#非常简单的HOOK处理类库,可用于托管和非托管的hooK技术
[Win32] API Hook(1)在32位系统上的实现
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:nAPI Hook技术,虽然很老了,但是依旧是很有用的技术,同时网上的资料往往不能直接拿过来用,c语言的太少。这回呢,我要用C语言来完整的编写一个Win32SDK编程的API Hook源码,但是我还是用cpp保存编译,为哈?因为微软对c语言标准支持的很不好,我不知道vs2013支持c
HOOK API 完美支持 x86 x64
完美支持 x86、x64 HOOK,有多种选项,x64 下支持 5字节跳转,12字节跳转和14字节跳转,另有内核版本。
Detours V3.0 x64 hook
Detours V3.0 x64 <em>hook</em>
Detours 4.0.1 Professional
Detours 全功能版 微软的HOOK库 支持x86 x64 IA64 arm
Detours静态库
Detours 静态库,无需Detours.DLL,但此库只支持32位<em>程序</em>API函数拦截替换
64位系统下编译Detours的傻瓜式处理
在64位系统下编译Detours会报错。本资源是帮助那些编译遇到困难的朋友。包内包含Detours需要修改的代码,以及一个编译用的批处理文件,一个readme。 详情请参阅 http://blog.csdn.net/genesisbible/article/details/6771988
使用Detours库拦截API的程序
利用Detours开源库进行API拦截的例子
Windows核心编程 - API HOOK应用
Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行<em>hook</em>后,一旦发生已<em>hook</em>事件,对该事件进行<em>hook</em>的<em>程序</em>就会受到系统的通知,这时<em>程序</em>就能在第一时间对该事件做出响应。
mhook HOOK库 支持X86 X64 含Demo VS2010
m<em>hook</em>是一个免费的非常优秀的API HOOK库,我一直用它,现在分享给大家. m<em>hook</em>类似于微软的Detour库,优点是容易<em>使用</em>,支持X64位的CPU
Ring3 下 API Inline Hook 优化方案探索与实现
本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.csdn.net/zuishikonghuan/article/details/51302024 n n以前写过两篇“[Win32] API Hook(1)在32/64位系统上的实现”博客,介绍并给出了 API inline <em>hook</em> 代码,如下: nbl
win7资源管理器总是崩溃
电脑配置信息nnnn<em>windows</em>自身记录nn或者直接输入这个(然后进去点点就知道有哪些<em>程序</em><em>崩溃</em>,设置更详细的那个文件导致的)nnnnnn查看原因截图:nnnn比如:(10点56的)nnnn好吧,自己的 EstCreateProcessHook64.dll 导致的,有时间去看为啥nnwin7 的 dump 日志 <em>windows</em> + R ——》%systemRoot% 寻找文件 Mindum...
64位的Win7下拦截malloc函数
目前大多数项目都在64位系统下开发,很多时候不知道是否malloc溢出,所以我专门花了些时间,写了一个如何拦截malloc的示例<em>程序</em>。nnn注意:该<em>程序</em>必须在64位Release版本下运行,如果是DeBug版本的话,因为编译器没做优化和加了一些debug代码,所以会内存读写报错nnafn// 说明:此test.cpp文件为win7下,对msvcr100.dll动态库中的maollc函数
驱动中全局hook应用层API函数
extern "C" NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING RegistryPath)n{nn DbgBreakPoint();n DriverObject->DriverUnload = DriverUnload;n NTSTATUS status;n PEPROCESS Process =
EasyHook 函数钩子 最好的完整稳定的钩子Demo程序(VS2010 C++ 版本)
目前最好的EasyHook的完整Demo<em>程序</em>,包括了Hook.dll动态库和Inject.exe注入<em>程序</em>。 Hook.dll动态库封装了一套稳定的下钩子的机制,以后对函数下钩子,只需要填下数组表格就能实现了,极大的方便了今后的<em>使用</em>。 Inject.exe是用MFC写的界面<em>程序</em>,只需要在界面上输入进程ID就能正确的HOOK上相应的进程,操作起来非常的简便。 这个Demo的代码风格也非常的好,用VS2010成功稳定编译通过,非常值得下载<em>使用</em>。 部分代码片段摘录如下: //【Inject.exe注入<em>程序</em>的代码片段】 void CInjectHelperDlg::OnBnClickedButtonInjectDllProcessId() { ////////////////////////////////////////////////////////////////////////// //【得到进程ID值】 UINT nProcessID = 0; if (!GetProcessID(nProcessID)) { TRACE(_T("%s GetProcessID 失败"), __FUNCTION__); return; } ////////////////////////////////////////////////////////////////////////// //【得到DLL完整路径】 CString strPathDLL; if (!GetDllFilePath(strPathDLL)) { TRACE(_T("%s GetDllFilePath 失败"), __FUNCTION__); return; } ////////////////////////////////////////////////////////////////////////// //【注入DLL】 NTSTATUS ntStatus = RhInjectLibrary(nProcessID, 0, EASYHOOK_INJECT_DEFAULT, strPathDLL.GetBuffer(0), NULL, NULL, 0); if (!ShowStatusInfo(ntStatus)) { TRACE(_T("%s ShowStatusInfo 失败"), __FUNCTION__); return; } } //【Hook.dll动态库的代码片段】 extern "C" __declspec(dllexport) void __stdcall NativeInjectionEntryPoint(REMOTE_ENTRY_INFO* InRemoteInfo) { if (!DylibMain()) { TRACE(_T("%s DylibMain 失败"), __FUNCTION__); return; } } FUNCTIONOLDNEW_FRMOSYMBOL array_stFUNCTIONOLDNEW_FRMOSYMBOL[]= { {_T("kernel32"), "CreateFileW", (void*)CreateFileW_new}, {_T("kernel32"), "CreateFileA", (void*)CreateFileA_new}, {_T("kernel32"), "ReadFile", (void*)ReadFile_new} }; BOOL HookFunctionArrayBySymbol() { /////////////////////////////////////////////////////////////// int nPos = 0; do { /////////////////////////////// FUNCTIONOLDNEW_FRMOSYMBOL* stFunctionOldNew = &g_stFUNCTIONOLDNEW_FRMOSYMBOL[nPos]; if (NULL == stFunctionOldNew->strModuleName) { break; } /////////////////////////////// if (!HookFunctionBySymbol(stFunctionOldNew->strModuleName, stFunctionOldNew->strNameFunction, stFunctionOldNew->pFunction_New)) { TRACE(_T("%s HookFunctionBySymbol 失败"), __FUNCTION__); return FALSE; } } while(++nPos); /////////////////////////////////////////////////////////////// return TRUE; } HANDLE WINAPI CreateFileW_new( PWCHAR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile ) { TRACE(_T("CreateFileW_new. lpFileName = %s"), lpFileName); return CreateFileW( lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); }
Win10 Hook 进程创建的研究
Win7甚至在它之前开始,想要<em>hook</em>进程创建已经不能简单的HookCreateProcessInternalW这一个函数了,因为Vista开始引入了UAC机制。如果一个进程想要通过UAC弹窗创建管理员进程,<em>hook</em>这个进程的CreateProcessInternalW已经不起作用,我在几年前的博文《Win7/VistaHookn CreateProcess 的特别之处》(http://blog
windows API编程(冉林仓)第六章源代码
第6章 API HOOK  6.1 API HOOK 综述  6.2 <em>使用</em>增强图元文件实现屏幕截获  6.3 用Detours 实现API HOOK  6.4 内核态应用<em>程序</em>的拦截实现  6.5 基于SPI实现的HTTP Tracer  6.6 Windows 9x环境目录隐藏  6.7 小结  6.8 思考题  6.9 练习题
Windows Hook经验总结之三:Mouse Hook实践
前面已经写过API注入的Hook应用场景,本文则展示Hook的另一个应用场景:安装WH_MOUSE钩子监控mouse事件(keyboard等类似)。
detours2.1.rar
<em>detours</em>2.1.rar Hook钩子库文件(<em>detours</em>) 2.1
detours hook其它进程的api
我想监视串口通信的数据,<em>使用</em><em>detours</em> <em>hook</em>了createfile和readfile,进程中可以实现拦截,但是其它进程的就拦截不到。现在,通过串口通信的软件是不能做改动的,我该怎么实现呢?
Xposed框架的HOOK流程
1.创建项目后,右键app创建一个目录lib,将XposedBridgeApi-54.jar,拖拽进lib目录,然后右键添加进本地链接库2.更改app下的build.gradle文件, 在依赖关系dependencies里最后一行加上provided files('lib/XposedBridgeApi-54.jar')3.新建文件夹assets4.在assets下创建文件xposed_init文...
使用Detours HOOK API防DLL注入
我要写一个<em>程序</em>,具体作用是这样的:rn1.HOOK相关的API,防止外挂的DLL起作用,但是我的代码做的是全局钩子,把游戏的API也拦截了,导致游戏一被钩就关闭。应该怎么办?rn我的想法是指定不钩游戏,只钩其他的<em>程序</em>,不知道该怎么做,也不知道行不行得通。rnrn不吝赐教~~~~~~~~~~~~~rnrn代码里调用InstallHook安装全局钩子rn只放出DLL代码rn[code=C/C++]rn// InterceptDll.cpp : 定义 DLL 应用<em>程序</em>的入口点。rn//rnrn#include "Hook.h"rn#include "<em>detours</em>.h"rnrn#pragma warning(disable: 4099) rn#pragma comment(lib,"<em>detours</em>.lib")rnrnrnHHOOK g_hHook = NULL;rnHANDLE g_hInst = NULL;rnrnrnDETOUR_TRAMPOLINE( HHOOK WINAPI Real_SetWindowsHookEx( int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId),SetWindowsHookEx);rnrnHHOOK WINAPI Replace_SetWindowsHookEx( int idHook, HOOKPROC lpfn, HINSTANCE hMod, DWORD dwThreadId)rn rn if(g_hHook != NULL)rn rn return 0;rn rn return Real_SetWindowsHookEx(idHook,lpfn,hMod,dwThreadId);rn rnrnvoid Intercept()rnrn DetourFunctionWithTrampoline((PBYTE)Real_SetWindowsHookEx, (PBYTE)Replace_SetWindowsHookEx);rnrnrnvoid UnIntercept()rnrn DetourRemove((PBYTE)Real_SetWindowsHookEx, (PBYTE)Replace_SetWindowsHookEx);rnrnrnBOOL APIENTRY DllMain( HANDLE hinstDLL, DWORD fdwReason, LPVOID lpvReserved )rnrn g_hInst = hinstDLL;rn rn switch (fdwReason)rn rn case DLL_PROCESS_ATTACH:rn Intercept();rn break;rn case DLL_THREAD_ATTACH:rn break;rn case DLL_THREAD_DETACH:rn break;rn case DLL_PROCESS_DETACH:rn UnIntercept();rn break;rn rn return TRUE;rnrnrnLRESULT CALLBACK MyShellProc (int nCode, WPARAM wParam, LPARAM lParam)rnrn return ::CallNextHookEx( g_hHook, nCode, wParam, lParam );rnrnrnvoid InstallHook()rnrn if(g_hHook == NULL)rn rn g_hHook = ::SetWindowsHookEx( WH_GETMESSAGE , MyShellProc ,(HINSTANCE)g_hInst, 0); rn rnrnrnvoid UninstallHook()rnrn if(::Un<em>hook</em>WindowsHookEx( g_hHook ))rn g_hHook = NULL;rn[/code]rnrnrn2.还有就是问下外挂把DLL注进来后 还有调用到什么API函数么? 外挂的DLL注入后是如何起作用的?
HOOKAPI——detours_X64库
64位版本的<em>detours</em>库并附带文档,微软64位 HOOKAPI ,有需要的可以学习,64位HOOK编程
qt界面崩溃与假死问题
在开发图表项目时,项目要求如下:rn同时打开100多个图表,单个图表的数据5W左右,结果图表出现了<em>崩溃</em>与假死的现象,每天好几次,不是必定出现现象,有的电脑未出现,有的电脑出现频繁rn尝试了以下方式去解决问题:rn首先出现了<em>崩溃</em>的现象rn1.认为是历史修改代码导致,则通过svn查看历史版本的log,注释掉关键的代码继续测试rn仍然<em>崩溃</em>rn2.猜测是指针或者内存<em>使用</em>问题,则利用dbughelp配置在项
mhook-2.3稳定版本,最好用的版本
开源神器m<em>hook</em>-2.3稳定版本,最好用的版本。接口简单,功能强大,支持32位和64位进程API <em>hook</em>,比Detours好用得多!
C++成员函数的拦截方法
概述利用preload方式对动态库中C语言函数调用进行拦截,有时候会达到剑走偏锋的效果。例如,在DVB+Dongle的产品中,我们就采用了这种方案,在不需要修改甚至重新编译原中间件及SDK的前提下,截获了SDK库中的部分接口调用,从而轻松抓取到OSD图层数据及解扰后的视频流。preload原理如下图,图1 注入libhack.so前后的接口调用路径如图,利用ld_preload向应用的进程空间高地...
鼠标键盘全局钩子以及windows api hook代码
鼠标键盘全局钩子以及<em>windows</em> <em>api</em> <em>hook</em>代码, 鼠标键盘全局钩子以及<em>windows</em> <em>api</em> <em>hook</em>代码 vs2013 工程
Windows Hook原理与实现
Windows Hook原理与实现nnnn教程参考自《逆向工程核心原理》nnnnnn1.概述nnHook技术被广泛应用于安全的多个领域,比如杀毒软件的主动防御功能,涉及到对一些敏感API的监控,就需要对这些API进行Hook;窃取密码的木马病毒,为了接收键盘的输入,需要Hook键盘消息;甚至是Windows系统及一些应用<em>程序</em>,在打补丁时也需要用到Hook技术。接下来,我们就来学习Hook技术的原理...
Windows下用breakpad抓取C++程序崩溃报告
  breakpad是一组用于实现<em>崩溃</em>报告系统的客户端和服务器组件,然而我在google官方及网上仅能找到客户端的<em>使用</em>方法,google官方似乎并没有提供服务端的东西,仅提供了用于上传<em>崩溃</em>文件的方法(详情见源码中的src\tools\<em>windows</em>\symupload文件夹)。 n  breakpad源码见 https://chromium.googlesource.com/breakpad/br...
第一课 Windows消息的HOOK
本文是我学习《逆向工程核心原理》一书dll注入部分的学习总结,如有理解不到位或错误的地方欢迎大家以评论的方式完善指正nn nn很多朋友一谈到Hook就觉得很神秘,其实Hook很好理解nnnnnnnnnnnn那么如何打开spy++呢?nn如下图所示nnnnSpy++ (SPYXX.EXE) 是一个基于 Win32 的实用工具,它提供系统的进程、线程、窗口和窗口消息的图形视图。<em>使用</em> Spy++ 可以执...
mysql运行过程中经常崩溃问题
前段时间在做wifi项目时,调试过程中数据库突然拒绝连接。。。n/etc/init.d/mysqld restart 重启mysql报错,,n尝试重启vagrant,才算解决,结果一段时间之后数据库又报错拒绝连接!!!n一天之内重启了四五次~~~n今天终于有时间打算找下问题:nshow variables like ‘log_%’;(查看是否启用了日志)nmysql&amp;gt; show varia...
利用apihook,实现微信电脑版音量放大
微信电脑版,pc上运行。工作聊天利器。但是用下来发现,播放语音音量很小,如果把系统音量调大最大,凑合能听到,但是其他app的音量又太大,闲来无事,就写了音量放大器。nn背景分析:nn经过od分析,微信电脑版,播放声音调用的waveout打头的一系列<em>api</em>,播放用的是waveOutWrite,该函数原型如下:nnMMRESULT mywaveOutWrite(n    HWAVEOUT  hwo,n...
E语言微信Hook 价值1500
E语言编写的微信Hook源代码,本地测试可以正常进行<em>使用</em>,价值1500
API HOOK检测工具编写,以及过程中遇到的问题总结
这几天GitHub上面一个作者的源码,于是自己决定了也来实现一下API HOOK检测工具,这是原作者的源码链接,我自己的就不发啦~~~GayHub源码nn nn目录nn一 、IAT,EAT,Inline HOOK原理:nn二 、检测原理:nn三 、检测步骤:nn四、写的过程中所遇到的问题、以及没有解决的一些东西:nn一 、IAT,EAT,Inline HOOK原理:nn1.IAT Hook:nnH...
通过Hook动态注入方法
问题背景很长时间没写东西了,这段时间在做移动平台,包括组件化和插件化。这中间的坑数不胜数。 n这次需要<em>hook</em>的地方应用背景是: n- 我有一个Base module,包含基础框架,Activity管理、网络请求、BaseActivity等的封装等等。 n- 我有一个Host module,里面只有360 Replugin的宿主初始化,继承Host的app就是一个宿主。 n- Base module
detours-src-1.2.exe
<em>windows</em>开发的<em>hook</em>库
hook更改硬盘序列号 转载
在驱动层<em>hook</em> ZwDeviceIoControlFile,当有请求获取硬盘物理SN时,返回指定SN,从而达到模拟硬盘物理SN的效果. 本工具包含源码,可自行编译.
调试远程注入下的DLL并解决namke生成的问题
事情的起因是这样的最近在研究x64下的inline Hook不会调试,一直用MessageBox加Cheat Engine,很郁闷想着有简单的办法没有,于是百度了下,原作者连接然后我知道了远程调试的话要Detours库,好吧那就整这个库翻墙下载后,Detours打开发现居然是Makefile什么乱七八糟的我的内心是<em>崩溃</em>的,只能继续百度,原作者连接我用的是VS2017啊大哥,<em>崩溃</em>之余只能推理之搜索VC
老外写的sockethook代码 实现socket钩子
老外写的socket<em>hook</em>代码 实现socket钩子,提供<em>hook</em>代码和测试例<em>程序</em>-Written by foreigners socket<em>hook</em> <em>hook</em> socket code to provide <em>hook</em> procedure code and test cases
python学习之路--hook(钩子原理和使用)
**什么是钩子** n 之前有转一篇关于回调函数的文章http://blog.csdn.net/Mybigkid/article/details/67644490 n 钩子函数、注册函数、回调函数,他们的概念其实是一样的。 n 钩子函数,顾名思义,就是把我们自己实现的<em>hook</em>函数在某一时刻挂接到目标挂载点上。 n 1. <em>hook</em>函数,就是我们自
Detour实例(DETOUR库HOOK API)
一份利用DETOUR库HOOK API的实例代码,值得借鉴。。。。
codeblocks异常退出及解决办法
大致是这种情况:nExceptionnAn exception has been raised!nThe application encountered an error atnC:\CB1312\src\sdk\configmanager.cpp,on line 245.nThe error message is:nTinyXML error: Error document empty.nIn ...
detours_sdk(x86)
x86环境采用<em>detours</em>开发<em>hook</em>的头文件和lib
API HOOK测试实例
API HOOK测试实例,vc++6.0实现,开始HOOK后 可以打开记事本查找弹出对话框作测试,本实例<em>使用</em>HOOk拦截 MessageBox()函数,<em>windows</em> 核心<em>api</em>编程
自己写的一个hook库 比较适合做inline hook
自己<em>经常</em>没事做做单机游戏的作弊软件玩,<em>经常</em>遇到需要写<em>hook</em>的时候 ,于是乎就自己写了一个小巧的<em>hook</em>类库,rn<em>使用</em>了beaengine的汇编引擎,如果是用来做系统<em>api</em><em>hook</em> 也可以做到 只是没有detour那么简单无脑好用,我主要是用来做一些inline <em>hook</em> ,rn监控/修改某些寄存器的值,刚刚随手写完了 就想着发上来吧,以后有需要也可以自己慢慢的拓展,目前只支持x86 。rnrnr
C++ HOOK源码 全局钩子
HOOK 源码 全局钩子 键盘钩子 亲测可用 部分中文注释。
09下半年网络工程师考试上午卷下载
2009下半年网络工程师考试上午卷(无答案) 相关下载链接:[url=//download.csdn.net/download/fxsfb/2111903?utm_source=bbsseo]//download.csdn.net/download/fxsfb/2111903?utm_source=bbsseo[/url]
嵌入式操作系统VxWorks 中文教材下载
嵌入式操作系统VxWorks 中文教材,主要嵌入式实时操作系统的概念,ARM汇编语言,Vxworks 操作系统的的使用及BSP移植。 相关下载链接:[url=//download.csdn.net/download/niyubo/2413863?utm_source=bbsseo]//download.csdn.net/download/niyubo/2413863?utm_source=bbsseo[/url]
jquery跨域调用wcf下载
jquery调用不同服务器、不同地址下的wcf服务,解决了jquery的跨域调用问题 相关下载链接:[url=//download.csdn.net/download/allensir/2989736?utm_source=bbsseo]//download.csdn.net/download/allensir/2989736?utm_source=bbsseo[/url]
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 微信hook开发教程 大数据工程师经常加班
我们是很有底线的