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

扫码关注

爱数技术支持中心公众号

请选择:

请选择咨询类型

AnyShare
AnyBackUp
AnyRobot

扫码关注

爱数技术支持中心公众号

contact us

提交成功!

我们将在 24 小时之内联系你。

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

爱数博客

全部 AnyBackup AnyShare AnyRobot AnyDATA AnyFabric

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

2020-03-02 5508 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


                   
 

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

标签

产品功能

相关文章

热门标签

版本发布 在线教学
ai-assistant
chat
support
trial
需求助手 (内容由 AI 大模型生成,请仔细甄别)