Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Bitmancer — 用于攻击性安全开发的 Nim 库 | Kitploit
工具/GitHubGitHub/zimawhit3/bitmancer
IDS/IPS规避Shellcode后渗透利用实用工具与框架二进制分析红队Payload 开发
GitHubzimawhit3/bitmancer

Bitmancer

用于攻击性安全开发的 Nim 库

查看仓库
2002153年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Bitmancer

Bitmancer 是一个用 Nim 编写的、面向 Windows 操作系统的进攻性安全工具开发库。它旨在提供通用的 API、例程和宏,并具有高度可配置、位置无关、独立的实现。

如果你正在寻找开发 Implant、测试快速 PoC 或编写全新闪亮工具,Bitmancer 可以帮助你快速入门!

⚠️ 该仓库目前是一个巨大的 WIP(正在进行中的工作)!使用它可能会出现问题,并且目前不保证稳定性。 ⚠️

依赖项

Bitmancer 部分使用 winim 作为其类型。要安装,请运行:

nimble install winim

安装

Bitmancer 尚未被纳入 nimble 仓库。目前,你只需运行以下命令即可从 Github 安装:

nimble install https://github.com/zimawhit3/Bitmancer

编译

MingW 和 Nim 会引入对 MSVCRT 和 Kernel32 的依赖,以及 Nim 系统模块使用的全局变量。如果你想为位置无关代码避免这些依赖,请使用提供的 nim.cfg。

要编译: nim c -d:mingw <Your_Nim_File>

用法

对于所有模块:

root@kitploit:~
import Bitmancer

如果你不需要 NTDLL 例程或系统调用,只需使用:

root@kitploit:~
import Bitmancer/core

如果只需要哈希过程:

root@kitploit:~
import Bitmancer/core/obfuscation/hash

当前的待办事项:

  • 简化编译期定义(YAML?)
  • CI/CD
  • 示例
  • 文档
  • 更大的编译期哈希种子
  • 测试!

功能特性

当前支持的功能:

  • ApiSet 名称解析
  • 常用 API(GetProcAddress、GetModuleHandle、GetSystemTime 等)
  • 哈希
    • 编译期
    • 运行期
  • 手动映射器
    • 从磁盘
    • 从内存 🚧
      • DLL 🚧
      • COFF 🚧
  • NTDLL
    • Nt* 系统调用
    • Rtl* 过程
  • NTLoader 数据库
    • 链表(LDR_DATA_TABLE_ENTRY)
    • 红黑树(RTL_BALANCED_NODE)
  • 可移植可执行文件(PE)解析与实用工具
  • SSN 枚举
    • Hell's Gate
    • Halo's Gate
    • Tartarus' Gate
    • LdrThunkSignatures
    • ZwCounter
  • 堆栈字符串
  • 系统调用规避技术
    • 直接系统调用
    • 间接系统调用

我计划支持的未来功能:

  • 反调试例程和实用工具
  • 加密
  • 异常处理
  • 回调
    • 检测(Instrumented)
    • 原生(Native)
    • VEH
  • 更多 NTDLL 包装器
  • 睡眠规避技术
    • Death Sleep
    • CreateTimerQueueTimer
  • 堆栈欺骗
  • 系统调用规避技术
    • Tamper
  • x86 支持

如果你希望实现某个功能或技术,请告诉我!

示例

堆栈字符串:

root@kitploit:~
var wStr {.stackStringW.} = "Hello!"
var cStr {.stackStringA.} = "World!"

如果你想为当前不可用的系统调用生成包装器,基本流程如下:

root@kitploit:~
## Import syscalls
import Bitmancer/syscalls

## For hashing
import Bitmancer/core/obfuscation/hash

## Define your type
type NtClose = proc(h: HANDLE): NTSTATUS {.stdcall, gcsafe.}

## Generate the wrapper
genSyscall(NtClose)

## Define configurations for how to retrieve and execute the syscall

## The procedure's symbol enumeration method - available options are:
## UseEAT - use the export address table to resolve the symbol
## UseIAT - use the import address table to resolve the symbol
## UseLdrThunks - use the NTLoader's LdrThunkSignatures to map a clean NTDLL to resolve symbols from
const symEnum = SymbolEnumeration.UseEAT

## The SSN enumeration method - available options are:
## HellsGate
## HalosGate
## TartarusGate
## ZwCounter
const ssnEnum = SsnEnumeration.HellsGate

## Finally, the execution method - available options are:
## Direct   - use the direct syscall stub
## Indirect - use the indirect syscall stub
const exeEnum = SyscallExecution.Indirect

## Define an ident to use to identify the symbol
const NtCloseHash = ctDjb2 "NtClose"

## Retrive NTDLL
let Ntdll = ? NTDLL_BASE()

## Call ctGetNtSyscall, retrieving the NtSyscall object containing the SSN, pointer to the address of the function
## and a casted stub to your type.
let NtSyscall = ctGetNtSyscall[NtClose](Ntdll, ModuleHandle(NULL), NtCloseHash, symEnum, ssnEnum, exeEnum)

## Finally, call the wrapper!
NtCloseWrapper(h, NtSyscall.wSyscall, NtSyscall.pSyscall, NtSyscall.pFunction)

有关完整示例,请参阅 runShellCode 示例。
更多示例也可以在 ntdll 中找到。

下载工具