Twitter: @AzizWho
NoArgs 是一款旨在动态伪造和隐藏进程参数且保持不被检测的工具。它通过挂钩 Windows API 来动态操纵 Windows 内部机制,从而实现对进程参数的隐蔽更改。




该工具主要通过拦截 Windows API 函数 CreateProcessW 发起的进程创建调用来工作。当进程启动时,该函数负责生成新进程以及任何指定的命令行参数。该工具干预此进程创建流程,确保在新进程启动之前,参数被隐藏或操纵。
通过 Detours(一种流行的用于拦截和重定向 Win32 API 函数的库)实现对 CreateProcessW 的挂钩。Detours 允许将函数调用重定向到自定义实现,同时保留原始功能。通过挂钩 CreateProcessW,该工具能够拦截进程创建请求,并在允许进程生成前执行其自定义逻辑。
进程环境块 (PEB) 是 Windows 用于存储进程环境和执行状态信息的数据结构。该工具利用 PEB 来操纵新创建进程的命令行参数。通过修改 PEB 中存储的命令行信息,工具可以更改或隐藏传递给进程的参数。
Process Hacker 视图:

Process Monitor 视图:

注入命令提示符 (cmd): 该工具将其代码注入命令提示符进程,作为位置无关代码 (PIC) 嵌入。这使其能够无缝集成到 cmd 的内存空间,确保隐蔽操作,不依赖特定内存地址。(仅适用于发布页面的混淆可执行文件)
Windows API 挂钩: 使用 Detours 拦截对 CreateProcessW 函数的调用。通过将执行流程重定向到自定义实现,该工具可以在原始 Windows API 函数之前执行其逻辑。
自定义进程创建函数: 拦截到 CreateProcessW 调用后,执行自定义函数,创建新进程并根据需要操纵其参数。
PEB 修改: 在自定义进程创建函数中,访问并修改新创建进程的进程环境块 (PEB),以实现操纵或隐藏进程参数的目标。
执行重定向: 完成操纵后,执行流程无缝返回命令提示符 (cmd),不会造成中断。这种动态重定向确保后续输入的命令在隐蔽状态下被操纵,从而规避那些依赖从 PEB 获取进程细节的检测和日志记录机制。
选项 1:编译 NoArgs DLL:
你需要安装 Microsoft Detours。
编译 DLL。
将编译好的 DLL 注入到任意 cmd 实例中,以动态操纵新创建的进程参数。
选项 2:从 发布页面 下载编译好的可执行文件(开箱即用)。