AnyBackup
性能爆表
AnyShare
如何购买
我已是Anyshare 客户
AnyRobot
如何购买
购买 AnyRobot 订阅服务
我已是 AnyRobot 客户
一对一在线咨询
我是 AnyRobot 新客户
一对一在线咨询
AnyDATA

爱数博客

全部 AnyBackup AnyShare AnyRobot AnyDATA AnyFabric

HOOK 如何配置?点这里教你如何使用

2020-03-02 4943 3

注入与 HOOK 基础

我们程序要实现一些功能,比如触发下载,复制移动文件监控,这些都需要进行注入与 hook。

以触发下载为例子,我们双击一个文件的时候,一般是系统去启动一个进程,并且启动这个进程的时候带着需要打开的文件。

那么我们就需要在系统“启动进程”这个动作之前做“下载文件”的操作,这个时候就需要拦截住系统的操作,等待我们下载文件完成了,再继续进行系统操作,这个过程就是 HOOK 了。

由于“启动进程”这个动作是系统实现的,要拦截操作,并运行我们的下载,我们就需要将我们的部分代码注入到系统进程里。

总的来说,注入是实现 HOOK 的前提,注入是木马,HOOK 是木马里的士兵。


HOOK 的配置内容

总则,配置文件是一个 ini 文件,总体遵循 ini 文件格式。
在配置项中以 Path 开头的是路径相关配置,就是说,此配置路径下的所有进程都会适配此配置,一般这样的配置是用来调查问题的。
以 Process 开头的就是进程相关配置了,只适用对应的进程,可以用于调查问题和解决问题。

 

配置项详细说明

Global 段:

用来配置注入方式的,只有一个配置键 Mode,Mode 可以设置值0和1,其中0为默认值。
值0最大化注入,会注入所有能注入的进程,此时 Exclude 段生效。
值1最小化注入,只会注入必须注入的进程,此时 Include 段生效。目前是4个固定的 hook,分别为tray.exe,explorer.exe,vchost.exe 和 dllhost.exe,以保证最低的程序运行。
一般情况下都是0值进行的,因为我们不知道客户需要使用哪些进程来触发下载。
如果出现大面积进程卡死,可以考虑设置为1,某些情况下,也可以设置为1验证,是不是我们的 HOOK 导致的问题。
示例如下:

[Global]
Mode=0

Exclude 段:

用来配置无需注入的名单,就是我们所谓的白名单,只有在 Global 段 Mode=0 的时候才生效。
以 Path 开头的键,为配置某个目录下所有的进程不进行注入操作,第一个为 Path0,如需配置多个后缀数字依次递增,值为具体目录全路径。
以 Process 开头的键,为配置某个进程不进行注入操作,第一个为 Process0,如需配置多个后缀数字依次递增,值为具体进程名称,需要带 exe 后缀名。
一般我们用无需注入来解决一些冲突问题,比如安装了客户端后,导致某些软件卡死,无法启动,都可以加进不注入名单试试。
示例如下:

[Exclude]
Path0=C:\test\
Process0=test.exe

Include 段:

用来配置需要注入的名单,就是我们所谓的黑名单,只有在 Global 段 Mode=1 的时候才生效。
以 Path 开头的键,为配置某个目录下所有的进程进行注入操作,第一个为 Path0,如需配置多个后缀数字依次递增,值为具体目录全路径。
以 Process 开头的键,为配置某个进程进行注入操作,第一个为 Process0,如需配置多个后缀数字依次递增,值为具体进程名称,需要带 exe 后缀名。
这个段有几个固定的进程配置,目前是4个,分别为 tray.exe,explorer.exe,vchost.exe 和 dllhost.exe。
示例如下:

[Include]
Path0=C:\test\
Process0=test.exe

Delay 段:

用来配置延迟注入名单。
Path,PathMode,PathCondtion 联合使用,配置某个路径下所有进程的延迟注入,后缀从0开始依次递增。
键 Path 的值是需要延迟注入的目录全路径。
键 PathMode 的值是需要延迟注入的目录的延迟方式,值1是固定窗口等待,值2是固定时间等待。
键 PathCondtion 的值是需要延迟注入的目录的延迟条件,在 PathMode=1 时,写入等待窗口的ClassName,在 PathMode=2时,写入等待时间,以毫秒为单位。
Process,ProcessMode,ProcessCondtion 联合使用,配置某个进程的延迟注入,后缀从0开始依次递增。
键 Process 的值为具体进程名称,需要带 exe 后缀名。
键 ProcessMode 与 ProcessCondtion 用法跟 PathMode 与 PathCondtion 一样。
延迟注入一般适用某些程序由于我们的原因卡死或者启动崩溃,但是又必须进行注入的情况。
一般使用固定时间等待来进行设置。
示例如下:

[Delay]
Path0=C:\test\
PathMode0=2
PathCondtion0=1000

Process0=MindCAD2D.exe
ProcessMode0=1
ProcessCondtion0=AlphaSplashScreen

Limit 段:

用来配置条件 HOOK,已经深入到具体 HOOK 的函数了。
Path,PathFun 联合使用,配置某个路径下所有进程的条件 HOOK,后缀从0开始依次递增。
键 Path 的值是需要条件 HOOK 的目录全路径。
键 PathFun 的值是需要条件 HOOK 的目录的函数,有多个函数时,以竖线“|”隔开。
Process,ProcessFun 联合使用,配置某个进程的条件 HOOK,后缀从0开始依次递增。
键 Process 的值是需要条件 HOOK 的进程名称,需要带 exe 后缀名。
键 ProcessFun 的值是需要条件 HOOK 的进程的函数,有多个函数时,以竖线“|”隔开。
一般是我们某些进程必须注入,但是延迟注入还是没有效果的时候使用,这个需要程序员来进行操作了。
示例如下:

[Limit]
Path0=C:\test\
PathFun0=NtCreateFile|CreateProcess

Process0=test.exe
ProcessFun0=NtCreateFile|CreateProcess

Relevancy 段:

关联下载文件配置名单。
Process,ProcessSuffix 联合使用,配置某个进程的关联下载文件,后缀从0开始依次递增。
键 Process 的值是需要关联下的进程名称,需要带 exe 后缀名。
键 ProcessSuffix 的值是关联下载文件的后缀名,有多个后缀名时,以英文逗号“,”隔开。
使用某些进程,打开以文件的时候需要用到另外一个文件的内容。
示例如下:

[Relevancy]
Process0=test.exe
ProcessSuffix0=doc,txt

利用 HOOK 配置来排查问题以及解决问题的简单方法

更改 HOOK 配置,大部分是用来解决由于我们的软件导致其他软件卡死崩溃的情况。
我们的 HOOK 生效的前提是,服务”AnyShare Service“必须启动。
所以在出现其他进程卡死崩溃的情况下,只需要停止一下服务,看看问题是不是复现,可以判断是不是 HOOK 导致的。如果需要重启验证可以暂时将服务启动类型改为”手动“。
如果确认是由 HOOK 引起的,首先就设置为最小化 HOOK 进行验证。
如果最小化 HOOK 后,发现问题不出现了,那么可以恢复为最大化 HOOK,并将出现问题的进程加入到 Exclude 中。如果问题还是出现,那么只能交由程序员进行处理了。

案例:

问题描述:AnyShare Windows 客户端当前 HOOK 默认设置为最大化注入,导致 Windows 7电脑开机无法加载桌面,影响正常使用电脑。
解决办法:将 AnyShare Windows 客户端进行最小化 HOOK 可解决此问题,在客户端安装目录下添加 hookinifo.ini 文件,将 Mode 值改为1,即线程注入最小。
                  [Global]
                  Mode=1


                   
 

请就本文对您的益处进行评级:

标签

产品功能

相关文章

热门标签

版本发布 在线教学

拨打400

免费销售咨询热线

400 8216055

7*24 小时免费售后服务热线

400 880 1569

购买咨询

购买咨询

售后服务

售后服务

返回顶部

为了给您提供更优质的服务,请您先完善以下信息:
确认提交

扫码关注

爱数技术支持中心公众号