EasyHook(一)】的更多相关文章

EasyHook远程代码注入 最近一段时间由于使用MinHook的API挂钩不稳定,经常因为挂钩地址错误而导致宿主进程崩溃.听同事介绍了一款智能强大的挂钩引擎EasyHook.它比微软的detours好的一点是它的x64注入支持是免费开源的.不想微软的detours,想搞x64还得购买. 好了,闲话不多说,先下载EasyHook的开发库,当然有兴趣的同学可以下载源码进行学习.下载地址:http://easyhook.codeplex.com/releases/view/24401.我给的这个是2…
http://www.csdn 123.com/html/itweb/20130827/83559_83558_83544.htm 免费开源库EasyHook(inline hook),下面是下载地址 http://easyhook.codeplex.com/releases/view/24401 把头文件 lib文件全拷贝在工程文件夹中,把dll拷贝在%system32%中(PS: 64位 应该放在C:\Windows\SysWOW64文件夹中) 好的,现在切入正题. 假设我们的工程是要监控T…
代码比较简单,就不做注释了.  包含一个sockethookinject.DLL 和sockethook.exe 有一点不清楚, SetExclusiveACL可以添加当前线程的hook, 但是easyhook如何 detach dll 并且释放hook呢? 知道的大神麻烦告知一下. public class SocketInterFace : MarshalByRefObject { public delegate void LogArgsHander(BufferStruct argsbuf…
前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的,整个系统都是通过消息的传递来实现的.当进程有响应时(包括响应鼠标和键盘事件),则Windows会向应用程序发送一个消息给应用程序的消息队列,应用程序进而从消息队列中取出消息并发送给相应窗口进行处理. 而Hook则是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消…
完整代码,原创无藏私,绝对实用.Windows10 X64 下调试通过,对 w3wp.exe, sqlserver.exe,notepad.exe,iexporer.exe 注入后,长时间运行稳定,未见异常. 要注入的全局dll(需强命名): using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices; usin…
using System; using System.Runtime.InteropServices; using System.Windows.Forms; using System.Collections.Generic; using System.Diagnostics; namespace EasyHook { public enum HookType { WH_MSGFILTER = -, WH_JOURNALRECORD = , WH_JOURNALPLAYBACK = , WH_K…
EasyHook远程进程注入并hook api的实现 http://blog.csdn.net/v6543210/article/details/44276155…
我们要先看看微软官方的著名HOOK库: Detours Professional 3.0 售价:US$9,999.95 功能列表: Detours 3.0 includes the following new features over Detours 2.x: Support for 64-bit code on x64 and IA64 processors (Professional Edition only). Support for all Windows processors (Pr…
所谓实用指南就是全是干货,没那么多虚头巴脑的东西,真正要用的人会发现对自己有用的东西,浅尝辄止的人看起来会不知所云. FileMon自己实做的过程中遇到的问题: 1. exe和dll文件必须强命名,对于VS2010来说在项目属性中就可以设置,无需手工用命令行产生再手工加入,位置在“项目属性”->“签名”->选中“为程序集签名”,然后在下拉框中选择“<新建...>”,输入合适的名字即可. 没有强命名的错误提示类似于:程序集生成失败 -- 引用的程序集“WindowsHook”没有强名…
此文的产生花费了大量时间对EasyHook进行深入了解同一时候參考了大量文档 先来简单比較一下EasyHook与Detour钩取后程序流程 Detours:钩取API函数后.产生两个地址,一个地址相应真Hook函数地址.一个相应真实API地址 EasyHook:钩取API函数后,所有API指向同一地址.通过ACL控制是否跳转到真实API地址 Detour:仅仅要钩取之后,相关于一个API变成两个函数 EasyHook:钩取之后,相关于还是一个API,通过控制ACL来推断是否跳转到真实API Ea…
C# Hook原理及EasyHook简易教程 前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的,整个系统都是通过消息的传递来实现的.当进程有响应时(包括响应鼠标和键盘事件),则Windows会向应用程序发送一个消息给应用程序的消息队列,应用程序进而从消息队列中取出消息并发送给相应窗口进行处理. 而Hook则是Windows消息处理机制的一个平台,应…
在调用 RemoteHooking.Inject 时,报错 查看easyhook源代码,出错位置如下 if(!RtlFileExists(UserLibrary)) { #ifdef _M_X64 THROW(STATUS_INVALID_PARAMETER_5, L"The given 64-Bit library does not exist!"); #else THROW(STATUS_INVALID_PARAMETER_4, L"The given 32-Bit li…
EasyHook 中申请钩子的原理介绍 函数原型 内部使用的函数,为给定的入口函数申请一个hook结构. 准备将目标函数的所有调用重定向到目标函数,但是尚未实施hook. EASYHOOK_NT_INTERNAL LhAllocateHook( void* InEntryPoint, void* InHookProc, void* InCallback, LOCAL_HOOK_INFO** OutHook, ULONG* RelocSize) 参数说明       InEntryPoint—如果…
EasyHook 中的注入方法. 函数原型 // EasyHook 中的命名比较有意思,Rh 代表的就是Remote Hook,此函数就是远程钩子的一个子过程----注入,前面的宏代表它是导出函数. EASYHOOK_NT_EXPORT RhInjectLibrary( ULONG InTargetPID, ULONG InWakeUpTID,//如果当前函数是通过RhCreateAndInject 调用过来的,这个指示主线程的ID. //之后可以通过RhWakeUpProcess 唤醒进程.否…
easyhook简要说明: easyhook是一个开源的hook库(http://easyhook.github.io/),其支持托管代码(.NET)和非托管代码(C/C++)hook,这里只分析了其非托管下的hook代码,根据目前分析的情况来看,其有如下几个特点: 1. 同时支持X86和X64. 2. 支持针对不同的线程进行hook,例如可以设置当线程ID为0x1234的线程执行时执行hook功能函数,而线程ID为0x4321执行时不执行hook功能函数. 3. 支持在hook功能函数中执行被…
一.前言 最近自己在研究一个项目,需要实现对explorer资源管理器文件操作的监控功能,网上找到一些通过C++实现Hook explorer文件操作的方法,由于本人习惯用.NET开发程序,加之C/C++基础较差,所以一直在研究如何用.NET实现,花了一周多的时间,终于基本实现了通过C# Hook资源管理器文件操作的功能,这里给出一些核心的内容,供大家参考. 二.EasyHook 1.简介 EasyHook是一款功能强大的挂钩引擎,开源免费,支持64位,可通过.NET语言调用(如C#.VB.NE…
In this tutorial we will create a remote file monitor using EasyHook. We will cover how to: 使用EasyHook创建一个全局文件监控程序,包括   Inject a managed assembly into an existing target process based on the process Id 将托管程序集(dll)注入到已存在的进程ID Inject a managed assembly…
EasyHook实用指南 所谓实用指南就是全是干货,没那么多虚头巴脑的东西,真正要用的人会发现对自己有用的东西,浅尝辄止的人看起来会不知所云. FileMon自己实做的过程中遇到的问题: 1. exe和dll文件必须强命名,对于VS2010来说在项目属性中就可以设置,无需手工用命令行产生再手工加入,位置在“项目属性”->“签名”->选中“为程序集签名”,然后在下拉框中选择“<新建...>”,输入合适的名字即可. 没有强命名的错误提示类似于:程序集生成失败 -- 引用的程序集“Win…
前言 在说C# Hook之前,我们先来说说什么是Hook技术.相信大家都接触过外挂,不管是修改游戏客户端的也好,盗取密码的也罢,它们都是如何实现的呢? 实际上,Windows平台是基于事件驱动机制的,整个系统都是通过消息的传递来实现的.当进程有响应时(包括响应鼠标和键盘事件),则Windows会向应用程序发送一个消息给应用程序的消息队列,应用程序进而从消息队列中取出消息并发送给相应窗口进行处理. 而Hook则是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消…
无壳,使用IDA直接分析主函数 逻辑很简单,问题的关键是Hook,题目也是EasyHook, 会发现在生成文件后,文件内容是被加密后的,那就怀疑加密函数参与Hook 动态调试一步步来看,先进入401220函数 发现这里有获取writefile函数地址的操作,初步怀疑可能进行hook操作 然后又进行一系列操作计算sub_401080函数和writefile函数的地址偏移,就进一步确认了这个想法 最后进入sub_4010D0 发现这里对内存进行了修改,成功实现了Hook操作,也就是说当执行write…
EASYHOOK XCTF 4th-WHCTF-2017 1 data=[ 0x61, 0x6A, 0x79, 0x67, 0x6B, 0x46, 0x6D, 0x2E, 0x7F, 0x5F, 2 0x7E, 0x2D, 0x53, 0x56, 0x7B, 0x38, 0x6D, 0x4C, 0x6E, 0x00] 3 data[18]^=0x13 4 for i in range(17,-1,-1): 5 t=i^data[i] 6 if i%2: 7 data[i]=t+i 8 else:…
http://bbs.msdn5.com/thread-75-1-1.html http://pan.baidu.com/s/1pJDgHcR…
目标:使calc程序输入的数自动加1 (当别人使用时,总会得不到正确的结果,哈哈) 编写注入程序 ————————————————————————————————— class Program中的方法,注入dll到目标进程 ——————————————————————-—————————— static String ChannelName = null; static void Main(string[] args) { Int32.TryParse(args[], out TargetPID…
1.现象 cef3加载flash,会出现弹出命令行窗口,显示not sandboxed,影响使用体验. 网上的解决方法,参考此文. http://blog.csdn.NET/zx2356/article/details/51514403 按照该文及提供的下载挂钩createProcessA,在xp上无效. 2.解决方法 有可能createprocessw也得挂钩.但懒得修改了.因此决定改为反编译flash插件,看看显示命令行窗口的逻辑. 反编译flash插件.发现显示cmd的逻辑是,读取环境变量…
1. Polly,重试 Polly is a .NET 3.5 / 4.0 / 4.5 / PCL library that allows developers to express transient exception and fault handling policies such as Retry, Retry Forever, Wait and Retry, or Circuit Breaker in a fluent manner. http://www.thepollyprojec…
Castle是.NET里走过了三年的开源框架,下载地址如:http://www.castleproject.org/index.html ,当然如果你是从事过JAVA开发并用过spring,hibernate的话,那看这个框架应该说是很清晰.另付上在这个框架上有研究的一些Blog文章:http://terrylee.cnblogs.com/,,看过他整理制作的新版本C#设计模式的人大概知道. Nbear 是另一个.NET开源框架http://nbear.org/ or http://www.co…
easyhook 开始还可以调试,几次过后 其自己去找c:\windows\assembly\ 下的包,编译多少次都不行. c:\windows\assembly\  卸载不掉 cmd cd \windows\assembly\GAC_MSIL (3.5)的 del easyhook --demo-- :进入vs console %comspec% /k ""G:\Program Files\Microsoft Visual Studio 11.0\Common7\Tools\VsDe…
原因剖析 UI僵死无非只是因为UI线程因繁忙而无法去接受用户的响应.详细说来内在原因有以下两个: 正常的业务代码写在UI线程中执行,业务代码的任务繁重导致UI线程无法分身去接受用户的界面输入 UI控件在非UI线程中创建.原因如下如述: 每一个UI控件创建后都向SystemEvents注册UserPreferenceChanged事件,并且创建了控件的线程会被自动安装WindowsFormsSynchronizationContext作为其同步上下文 系统默认在UI线程里创建一个隐藏窗口“.NET…
64位下Hook NtOpenProcess的实现进程保护 + 源码 (升级篇 ) [PS: 如果在64位系统下,出现调用测试demo,返回false的情况下,请修改Hook Dll的代码] glhHook = SetWindowsHookEx(WH_SHELL,ShellHookProc, 0 , 0); //改成跟X86下一样的 glhHook = SetWindowsHookEx(WH_SHELL,ShellHookProc,glhInstance, 0); 2013.09.11代码修改,…
要让某个游戏(程序)加载我们的MOD,目前有想到的有三种方式: 静态注入:静态注入,即我们HACK入游戏的某个dll,然后修改里面的代码,让程序在运行后加载我们的ModDll,比如U3D的游戏可以直接修改Assembly-CSharp.dll,找到Main脚本然后让他加载我们的东西 动态注入:在游戏运行时,可以通过各种工具(例如EasyHook)Hook到游戏进程,然后强行注入代码启动我们的ModDll,这种方式需要在游戏运行后再手动执行外挂程序Hook,例如各种“游戏XX项修改器” DLL劫持…