Astral-PE 是Windows PE 文件(、 )的低级变异器(标头混淆器和修补程序) ,可在编译后(或构建后保护)重写结构元数据,而不会中断执行。.exe.dll
它不会打包、加密或注入。相反,它会改变一些容易实现但关键的结构,例如时间戳、标题、节标志、调试信息、导入/导出名称等。
-
🛠下载适用于 Windows/Linux x64 的 Astral-PE 版本
https://github.com/DosX-dev/Astral-PE/releases/tag/Stable
🔧 在什么情况下有用?
您已经保护了二进制文件 - 但公共解包器或 YARA 规则仍然针对其未改变的结构。
👨🏼💻 使用 Astral-PE 作为后处理步骤来:
-
防止自动解包
-
打破静态解包器逻辑
-
使逆向工程签名无效
-
破坏沙箱中的集群
-
剥离元数据、覆盖(仅当文件已签名时)、调试跟踪......
🤩适合:
-
对于打包/受保护的版本(例如旧版 Enigma)
-
在此基础上创建自己的保护者
-
强化加载程序,保持结构默认
-
创建有趣的 crackme 任务
-
用于教育目的
✨ 它修改了什么
Astral-PE 应用精确、兼容且执行安全的突变:
目标 | 描述 |
---|---|
🕓 时间戳 | 清除TimeDateStamp 文件头 |
🧠 丰富的标题 | 完全删除——破坏工具链指纹识别 |
📜 章节名称 | 已擦除(.text 、.rsrc 等 → null) |
📎 校验和 | 重置为零 |
📦覆盖 | 如果文件已签名则删除 |
🧵 TLS 目录 | 如果未使用则删除 |
⚙ 加载配置 | 已删除(如果 CFG 不存在) |
🧬 搬迁 | 如果文件中未使用则删除 |
🧱 大地址感知 | 为 32 位进程启用 4 GB 内存范围 |
🧩 标题标志 | 剥离:DEBUG_STRIPPED ,,LOCAL_SYMS_STRIPPED LINE_NUMS_STRIPPED |
🧼 子系统版本 | 最低操作系统和子系统版本设置为零 |
🧠 栈和堆的保留 | 如果太低,则增加到安全默认值(32/64 MB) |
📋 版本信息 | 从可选标题中删除 |
📁 原始文件名 | 定位并归零二进制尾部 |
🔎 调试信息 | PDB 路径已擦除,调试目录已删除 |
🚀 入口点补丁 | 替换或改组序言、更改AddressOfEntryPoint …… |
🧪 导入表 | DLL 名称变异:大小写、前缀、随机格式 |
🏷 导出表 | 不存在则伪造(诱饵某些扫描仪) |
📚 数据目录 | 清除所有未使用的条目 |
💾 权限 | R/W/X + 代码标志应用于所有部分 |
📄 DOS 存根 | 重置以清理“MZ”,已修补e_lfanew |
📝不支持 .NET 二进制文件。仅限原生 PE。🚀 使用方法
Astral-PE.exe <input.exe> -o <output.exe>
-
-o, --output— 输出文件名(可选)。默认输出:<input>_ast.exe
-
-l——--legacy-win-compat-mode指定以确保与 Windows 7、8 或 8.1 兼容。混淆效果会降低!
-
没有参数?显示帮助
Astral-PE.exe payload.exe -o payload_clean.exe
🔎 前后对比
选择通过 Microsoft Visual C++ 编译的文件作为演示样本。
文件分析器变得疯狂。
使用Detect It Easy扫描。除启发式分析外,没有其他可靠结论。
进口已发生变异。
这使得所有现有的 PE 文件分析器都很难分析该文件。
PE 中没有调试数据!
自动删除对 PDB 文件、嵌入式调试信息或其他可以简化分析的模式的引用(例如 Rich 签名)
项目地址:
https://github.com/DosX-dev/Astral-PE
原文始发于微信公众号(Ots安全):Astral-PE 是用于本机 Windows PE 文件(x32/x64)的低级变异器(Headers/EP 混淆器)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论