Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Codecepticon — .NET/PowerShell/VBA 攻击性安全混淆器 | Kitploit
工具/GitHubGitHub/sadreck/codecepticon
防御工具静态分析代码分析IDS/IPS规避脚本与自动化渗透测试红队Payload 开发
GitHubsadreck/codecepticon

Codecepticon

.NET/PowerShell/VBA 攻击性安全混淆器

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Codecepticon version

目录

  • 简介
  • 请先阅读
  • 先决条件
    • Visual Studio
    • Roslyn 编译器
    • 检查是否正常工作
  • 使用 Codecepticon
    • C#
    • VBA/VB6
    • PowerShell
    • 混淆命令行参数
    • 功能深入解析
    • 提示
    • 已知问题
    • 签名可执行文件
  • 常见问题
  • 故障排除
  • 贡献
  • 参考资料 / 致谢

简介

Codecepticon 是一个 .NET 应用程序,可用于混淆 C#、VBA/VB6(宏)以及 PowerShell 源代码,专为红队/紫队等攻击性安全演练而开发。Codecepticon 与其他混淆器的区别在于,它针对的是源代码而非编译后的可执行文件,并且是专门为规避 AV/EDR 而开发的。

Codecepticon 允许你混淆和重写代码,同时还提供了重写命令行等功能。

请先阅读

! 在开始之前 !

  • 本文档仅介绍如何安装和使用 Codecepticon。不提供 Rubeus 和 SharpHound 等工具的编译、使用和支持。更多信息请分别参阅各项目的仓库。

  • Codecepticon 在 VS2022 中积极开发和测试,但_应该_也能在 VS2019 中工作。任何针对 VS2019 及更低版本创建的工单/问题,除非该问题能在 VS2022 中复现,否则将不予调查。因此请使用最新最好的 VS2022。

  • 以下包必须为 v3.9.0 版本,因为较新版本存在以下仍未解决的问题:https://github.com/dotnet/roslyn/issues/58463

    • Microsoft.CodeAnalysis.CSharp.Workspaces
    • Microsoft.CodeAnalysis.Workspaces.MSBuild

    Codecepticon 会在运行时检查这些包的版本,如果版本与 v3.9.0 不同,会通知你。

  • 这一点再怎么强调也不为过:务必先在本地测试你混淆后的代码。

先决条件

Visual Studio Pro/Community 2022

VS2022 .NET

Roslyn 编译器

VS2022 Roslyn

打开并编译

打开 Codecepticon,等待所有 NuGet 包下载完成,然后生成解决方案。你也可以下载预编译的 Release 版本。

使用 Codecepticon

使用 Codecepticon 有两种方式:要么将所有参数放在命令行中,要么传入单个 XML 配置文件。由于支持高度自定义,不建议手动浏览 --help 输出来尝试弄清该使用哪些参数以及如何使用。请使用 CommandLineGenerator.html 快速生成你的命令:

命令行生成器

命令生成器的输出格式可以是 Console 或 XML,取决于你的偏好。控制台命令可以这样执行:

Codecepticon.exe --action obfuscate --module csharp --verbose ...etc

使用 XML 配置文件时,如下所示:

Codecepticon.exe --config C:\Your\Path\To\The\File.xml

如果你想深入了解 Codecepticon 的功能,请查看此文档。

有关可使用的技巧,请查看此文档。

C#

对 C# 项目进行混淆很简单,只需选择你想要针对的解决方案即可。请注意,不会对解决方案本身进行备份,当前的解决方案就是将被混淆的那个。在尝试对目标项目运行 Codecepticon 之前,请确保你可以独立编译该项目。

VBA/VB6

VBA 混淆针对的是源代码本身,而不是 Microsoft Office 文档。这意味着你不能将 doc(x) 或 xls(x) 文件传递给 Codecepticon。它必须是模块本身的源代码(按 Alt-F11 并从那里复制代码)。

PowerShell

由于 PowerShell 脚本的复杂性,以及它在编写脚本方式上提供的自由度,要覆盖所有边缘情况并确保混淆后的结果完全可用是具有挑战性的。尽管 Codecepticon 预期可以很好地处理简单的脚本/功能,但针对像 PowerView 这样的复杂脚本运行它将无法正常工作——这是一项正在进行中的工作。

混淆命令行参数

对应用程序或脚本进行混淆后,命令行参数很可能也已被重命名。解决方法是使用 HTML 映射文件来查找新的名称。例如,让我们转换以下命令行:

SharpHound.exe --CollectionMethods DCOnly --OutputDirectory C:\temp\

通过在 HTML 映射文件中搜索每个参数,我们得到:

Mapping One

Mapping Two

Mapping Three

替换所有字符串后,结果为:

ObfuscatedSharpHound.exe --AphylesPiansAsp TurthsTance --AnineWondon C:\temp\

不过,有些值可能存在于多个类别中:

Mapping Four

因此,务必先在本地环境中测试你的结果。

对可执行文件进行签名

也可以使用 Codecepticon 对可执行文件(即你的编译输出)进行数字签名。Codecepticon 既能为你生成签名证书,也能使用该证书(或你提供的任何其他证书)来对你的目标文件进行签名。

常见问题

为什么 Releases 下没有可供下载的编译版本?

编译输出中包含大量依赖 DLL,由于许可要求,未经书面同意我们无法重新分发这些文件。

Codecepticon 是否只适用于已有受支持配置文件的 C# 项目?

不是,Codecepticon 应当适用于所有情况。配置文件只是对目标项目进行的一些额外调整,目的是使其更可靠、更易于处理。

但由于所有代码都是独一无二的,在某些情况下,对项目进行混淆最终会导致一两个错误,使其无法编译或执行。在这种情况下,可能需要新建一个配置文件——如果遇到这种情况,请提交一个新的 issue。

同样的原则也适用于 PowerShell/VBA 代码——尽管这些目前没有随 Codecepticon 提供的配置文件,但如果需要,添加起来也很容易。

我可以贡献吗?

如需报告 bug 和建议新功能,请创建一个 issue。

如需提交 pull request,请参阅贡献部分。

故障排除

我对一个 C# 项目使用 Codecepticon,它能运行,但之后我无法编译目标项目。

在运行 Codecepticon 之前,请确保你能编译目标项目的干净版本。出现此问题时,通常是由于目标解决方案缺少依赖项,而不是 Codecepticon 的问题。但如果仍然无法编译:

  • 它是公开项目吗?创建一个 issue 并粘贴链接,尽可能提供详细信息。如果该工具属于 SharpCollection,那就更好了。
  • 它是私有项目吗?本着改进 Codecepticon 的精神,我们将尽可能通过截图和错误/调试消息提供支持。但我们不会通过私有仓库等方式访问/运行任何干净或混淆后的代码。

与上面相同,但它是 PowerShell/VBA 脚本——你能帮忙吗?

我会尽力而为,但由于 PowerShell 脚本可能非常复杂,而且 PSParser 不如 C# 的 Roslyn 先进,因此无法做出任何承诺。VBA/VB6 也是如此。

我一直遇到:“Method not found: 'System.Collections.Immutable.ImmutableArray”

你可能会在某个时候遇到以下错误:

Method not found

目前仍在调查此问题,一个快速的解决方法是:从 NuGet 包管理器中卸载并重新安装 System.Collections.Immutable 包。

贡献

无论是拼写错误、bug 还是新功能,Codecepticon 都非常欢迎贡献,只要我们达成以下共识:

  • 你接受本项目的 MIT 许可证。
  • 在创建 pull request 之前,请先创建一个 issue,以便在开始任何工作之前进行讨论,因为内部开发不会通过公开的 GitHub 仓库进行跟踪。否则,如果例如我们已经在开发相同/类似的功能,或出于任何其他原因,你的 pull request 可能会被拒绝。

参考资料 / 致谢

  • https://blog.xpnsec.com/building-modifying-packing-devops/
  • https://twitter.com/EmericNasi/status/1460640760928296966
  • https://github.com/MagicMau/ProceduralNameGenerator
  • https://github.com/uwol/proleap-vb6-parser
  • https://github.com/dwyl/english-words
  • https://github.com/Danielku15/SigningServer
下载工具