lobsterrev/remotethreat

GitHub: lobsterrev/remotethreat

一个仅含头文件的 C/C++ 库,在 Windows x86/x64 上提供四种远程线程注入方法并支持 WOW64 跨架构执行。

Stars: 0 | Forks: 0

# 远程 Threat 仅包含头文件的 C 语言库,用于在 Windows (x86/x64) 上进行远程线程注入,并提供 WOW64 跨架构支持。 可由 C11 及以上版本调用,或通过捆绑的 `remotethreat.hpp` 包装器从 C++ 调用,该包装器还原了 RAII `RT::Execution` 类。 ## 方法 | 方法 | 描述 | |---|---| | `RT_NtCreateThread` | 通过 `NtCreateThreadEx` 创建新的远程线程 | | `RT_Hijack` | 挂起现有线程,通过上下文劫持重定向执行 | | `RT_APC` | 通过 `NtQueueApcThreadEx2` 将特殊用户 APC 排入队列 | | `RT_ProcessInformationCallback` | 安装进程插桩回调 (PICI),在下一次系统调用返回时触发 | ## 用法 (C) ``` #include "remotethreat.h" HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); RT_Execution exec = RT_Create(hProcess, startAddress, lParam, RT_Hijack); if (!RT_IsValid(&exec)) { /* handle failure */ } RT_Wait(&exec, INFINITE); // block until the remote code has run RT_Close(&exec); // release owned thread handle (if any) ``` `RT_Create` 返回一个 `RT_Execution` 结构体。特意不通过 `RT_Close` 释放远程 stub 分配——目标进程可能仍在异步执行它。一旦确定执行已完成,请使用 `VirtualFreeEx` 将其释放。 ### 轮询代替阻塞 ``` while (!RT_IsDone(&exec)) Sleep(10); RT_Close(&exec); ``` ## 用法 (C++ 包装器) ``` #include "remotethreat.hpp" // optional RAII wrapper HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); RT::Execution exec = RT::Create(hProcess, startAddress, lParam, RT::Hijack); if (!exec) { /* handle failure */ } exec.Wait(); // blocks until completion; RT_Close called automatically on destruction ``` ## 环境要求 - Windows x86 或 x64 - 针对特权进程时,需以管理员身份运行 - C11 或更高版本(C++ 调用者:通过 `remotethreat.hpp` 需 C++11 或更高版本) ## 许可证 [MIT](LICENSE)
标签:APC注入, C/C++, SSH蜜罐, 事务性I/O, 客户端加密, 端点可见性, 系统编程, 进程注入, 远程线程