示例:
注意: Stryker 期望 cpuz141.sys 和 procexp152.sys 位于程序本身所在的同一目录中。
使用本工具风险自负。某些懒惰的防病毒软件可能将其标记为黑客工具/恶意软件。
它使用 CPU-Z (https://www.cpuid.com/softwares/cpu-z.html) 的内部驱动(版本 1.41,对应 CVE-2017-15303)来读写物理内存并读取 CPU 控制寄存器。
根据命令,Stryker 将作为 DSEFix/TDL 工作,或修改内核模式进程对象(EPROCESS)。
在 -load 模式下,Stryker 将使用 SysInternals Process Explorer 软件(驱动版本 1.52)的第三方签名驱动,将小的加载器 Shellcode 放置在其 IRP_MJ_DEVICE_CONTROL/IRP_MJ_CREATE/IRP_MJ_CLOSE 处理程序中。这是通过覆盖 Process Explorer 分发处理程序所在的物理内存,并调用驱动 IRP_MJ_CREATE(CreateFile 调用)来触发的。触发的 Shellcode 会将输入驱动作为代码缓冲区映射到内核模式并运行,当前 IRQL 将为 PASSIVE_LEVEL。
此外,稍加修改,该 Shellcode 可用于在内核模式下简单执行您的小段代码(本工具未实现此功能)。
Stryker 提供完整源代码。 要从源代码构建,您需要 Microsoft Visual Studio 2015 U1 及更高版本。对于驱动构建,您需要 Microsoft Windows Driver Kit 8.1 及更高版本。
除了对 Stryker 本身的严重错误修复外,不提供任何支持。对其工作不提供任何保证。 使用本程序可能导致计算机蓝屏。编译后的二进制文件和源代码按“原样”提供,希望其有用,但不提供任何形式的担保。
对本软件的任何使用风险完全自负。
问:除了 Process Explorer 驱动,还有其他东西可以用来执行 Shellcode 吗?
答:可以,但您需要仔细检查候选程序,以确保其能够存储和执行 Shellcode。
问:最新版本的 CPU-Z 呢?它们能用来读写物理内存、CPU 控制寄存器吗?
答:CPU-Z 驱动已重新设计以解决 CVE-2017-15303,某些功能不再可用。然而,旧版本的 CPU-Z 可能仍具有相同功能。
问:是否有其他具有与 CPU-Z 相同功能的类似驱动?
答:是的,有很多,例如 WinIO.sys、AsIO64.sys、Asmmap64.sys。它们通常以不同方式提供对物理内存的读写访问(\Device\PhysicalMemory)。
问:这适用于所有 Windows 版本吗?包括尚未发布的版本?
答:已在 Windows 7 / 8.1 / 10 上测试至 RS3。未来版本可能无法工作。
问:是否会对 Windows 10 NEXT 或 Windows XX NEXT 增加支持?
答:可能性不大。
(c) 2018 Stryker 项目