Frida对HIPS的补充测试

如果你的日常主力是沙盒类软件,那么此内容对你不会有实质帮助


之前讨论过配置HIPS策略限制拦截流氓程序扫盘,不安分的进程间/注册表行为。个人日常中又陆续发现了其他问题,加上了解到HIPS对于的在内存调用系统读取API的行为似乎有盲区,于是了解接触了Frida

由于不善言辞,加之为了阐明前因后果,清晰描述借助Frida助力Win端隐私保护的思路,下面的内容全由AI对“个人试错尝试过程”的总结生成

image


起点:对“扫盘”的警觉

一切的起因源于对个人隐私最朴素的防御心理——防止扫盘。在 Windows 环境下,那些知名软件对用户硬盘空间的“过度关心”早已不是秘密。我最初折腾 HIPS 的初衷,就是想构建一道物理隔绝之外的逻辑屏障,限制这些软件只能在指定的白名单目录内活动。

通过对 explorer.exe 访问权的严格管控,我切断了它们试图通过注入资源管理器来获取更高权限或窥探文件系统的路径。但这仅仅是冰山一角,随着规则的深入,我发现这些软件对网络环境的“执念”远超想象。

为何选择 ESET

我使用 ESET 已有多年。虽然市面上有很多专业的 HIPS 软件(如 Comodo 或各类沙盒),但我并不想在系统里塞入更多过重的程序,导致驱动冲突或资源浪费。

ESET 内置的 HIPS 已经具备了极高的灵活性,它完全符合专业 HIPS 对 AD(应用程序防护)FD(文件防护)RD(注册表防护) 的“3D标准”。作为一款付费软件,如果只把它当成一个静态的病毒库扫描器,而不去挖掘其复杂的规则定义能力,在我看来是一种极大的资源浪费。因此,我决定用这柄“手术刀”去解剖那些潜伏在后台的行为。

旧版与新架构的内网嗅探差异

在配置规则的过程中,我利用旧版 QQ(9.7.25)、微信以及最新的 QQ NT 版作为实验对象。

通过 HIPS 日志,我发现了一个显著的差异:
旧版 QQ 的探测行为非常“吵闹”。在常规环境下,它会周期性地尝试调用系统的 ipconfig.exearp.exe。当我开启了某种工作在网络层的虚拟适配器工具后,这种行为变得异常疯狂,调用频率呈指数级上升。伴随而来的,是 QQ 因为无法执行这些被 HIPS 拦截的命令而频繁掉线。

相比之下,微信和 QQ NT 则表现得异常“安静”。即便它们同样在进行复杂的内网嗅探,HIPS 日志中却几乎找不到任何子进程启动的记录。这种沉默让我更加不安——这意味着它们已经进化到了更隐蔽、更底层的架构。

从进程到 API

为了搞清楚那些“安静”的软件到底在做什么,我先后动用了 Process ExplorerAPI Monitor

通过 PE 工具,我确认了这些软件加载了 iphlpapi.dllws2_32.dll。在 API Monitor 的监听下,真相大白:
它们不再依赖臃肿的外部命令。微信和 QQ NT 直接在进程内部调用 GetAdaptersAddresses 等底层函数。而且它们调用的标志位中明确包含了“请求网关信息”。这意味着它们在内存中直接勾勒出了我的本地网络拓扑,包括虚拟适配器的存在、真实的内网 IP 映射,甚至是局域网内的网关细节。

这种“直接问系统要答案”的行为绕过了HIPS 3D 层面的监控。

为什么选择 Frida

既然 HIPS 只能实现“允许或阻止”的二元论,且无法有效拦截只读类的 API 调用,我需要更高级的手段:欺骗

我选择了 Frida。它不是沙盒,而是一个动态插桩工具。它的优势在于“致盲”:当软件请求真实的网卡信息时,Frida 可以像滤镜一样,在数据返回给软件前的最后一毫秒,将其篡改为我伪造的假数据,或者干脆返回一个“空结果”。

而且其在Android上也能使用,借此熟悉也是为了将来能在更加黑盒的 Android 上发力。不过遗憾的是,后续发现想要在 Android 上简单易用,首先需要root设备,否则需要进行重打包等操作。

通过AI降低入坑门槛

在 Windows 上部署 Python 3 和 Frida 环境并不复杂,难点在于编码。没有时间和精力去系统性学习 Python 和 Frida 复杂的 API,但好在如今AI已能堪一用。

我构建了一套 “BAT + Python + JS” 的三层架构:

  1. JS 脚本层:存放具体的 Hook 逻辑(例如修改网卡描述、拦截后台读取剪贴板等)。
  2. Python 注入层:负责将 JS 代码注入到目标进程,并处理异常。
  3. BAT 启动层:作为快捷入口,一键带起环境并运行程序。

这套架构极其便捷:如果想增加新的 Hook 功能,只需提供需求给 AI ,让其生成对应的代码,新建一份 JS 文件作为“模块”;如果想 Hook 一个新软件,只需新建一个 BAT 文件修改路径即可。

当然,这种方式也有代价:由于不具备系统性编写这类代码的能力,当脚本出现复杂的异步冲突或内存错误时,调试过程会变得异常耗时。加上 Windows 海量的 DLL 和 API 需要了解其功能,Frida 注定只能作为 HIPS 或其他防护手动的补充,无法作为主力。

覆盘总结

对于通过 Frida 对敏感 API 进行结果篡改,我也才算勉强完成了试错尝试,Hook 的 API 范围还极其有限,目标程序也仅仅是QQ和微信。但足以表明在 HIPS 的行为规则管控之外,这是可行的有限范围补充方案。


2 个赞

系统安全的软件用Vibe Coding来写…….

让别的小白鼠上吧,我就不用了。

2 个赞

所以这个过程真的很折磨人。虽然本身也是搞这行的,能看个大概,但没系统学过Frida和Python,只能多个模型交叉对比脚本,出错了得调半天

不过只要windows没大变化,调好的脚本基本就是通用的了

第一次听说Frida,这不是安卓平台上的吗?
手动控制 HIPS 和软件斗智斗勇太累了,这些东西扔到虚拟机或沙盘里去吧,除了一个共享目录和系统运行库,其他的都限制读取。

算个人的洁癖吧,AV带hips就不像再用功能重复的软件了,再加上之前已经用hips配了很多东西以及只有16G内存,不想再折腾常驻程序了。以后换电脑了倒是能尝试下沙盒

试试Sandboxie-Plus呢?

这个想法没错,一方面现在几乎没有手动型的 HIPS 了,另一方面大多数安全软件都趋同了,没必要重复。搭配沙盘是个可以考虑的方案,就是沙盘的兼容性和隔离性没有虚拟机好,但比虚拟机来得方便。