文章总结: 本文介绍petobin工具将exe转换为bin格式以实现免杀的思路,通过bootstrap、descriptor和peloader在内存中还原并运行exe,支持自定义加载器,避免静态落地特征,并附使用教程及工具分享。
综合评分: 80
文章分类: 红队,安全工具,恶意软件
PetoBin把EXE转成bin工具思路
原创
词不达意
词不达意
词不达意安全团队
2026年9月23日 16:51
上海
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
工具免杀思路
在实现工具免杀时,我们常常使用petobin类的程序,如Donut、EXEToShellcode,将自定义的工具程序转换为.bin(raw shellcode类型),再自实现加载器去运行工具,实现工具免杀
tobin
使用ai实现了一个petobin的程序,方便自己使用,而且无开源的明显特征,接下来分享下实现思路。
普通 EXE 不能直接复制到内存后运行,因为 Windows 平时会替它完成很多准备工作:分配内存、复制节、修正地址、加载 DLL、填写函数地址,最后才跳到程序入口。tobin 生成的 out.bin,就是把这些准备工作一并打包进去。
整体流程
生成的.bin文件结构
out.bin
├─ 64 字节 bootstrap 自定位并找到 loader
├─ 192 字节 descriptor 描述各部分位置、大小和校验值
├─ PE loader 在内存中装载 EXE
├─ 可选默认参数
└─ 原始 EXE 文件
具体流程
输入 EXE
│
▼
检查是不是合法 x64 PE
│
▼
加入 bootstrap + descriptor + loader
│
▼
生成 out.bin
│
▼
普通 RAW loader 从 offset 0 调用
│
▼
bootstrap 找到 PE loader
│
▼
PE loader 在内存中还原并运行 EXE
Builder 拼装器
它把各部分按照 16 字节边界排列,并生成 descriptor。descriptor 记录:
- • 整个 RAW 文件大小;
- • loader 的位置和大小;
- • 参数的位置和大小;
- • 原始 EXE 的位置和大小;
- • EXE 的 ImageBase;
- • SizeOfImage;
- • 入口 RVA;
- • EXE 使用了哪些 PE 功能;
- • 原始 EXE 的 SHA-256;
- • descriptor 自身的 CRC32。
这样 loader 不需要猜测“EXE 从哪里开始”,只需要读取 descriptor。
bootstrap 是什么
bootstrap只有 64 字节,可以理解为一个很小的“接力跳板”。
它做的事情是:
- 1. 通过 RIP 相对寻址找到 out.bin 自身的内存基址。
- 2. 保存 Windows x64 ABI 要求保护的寄存器。
- 3. 调整栈对齐并预留 shadow space。
- 4. 从 descriptor 读取 loader_offset。
- 5. 调用真正的 tobin_loader。
- 6. loader 返回后恢复寄存器并返回调用者。
关键技术点是 PIC,也就是位置无关代码。无论 out.bin 被复制到哪个内存地址,它都能找到自己内部的 descriptor 和 loader。
PE loader 做什么
相当于一个简化版 Windows PE 装载器,执行顺序大致为:
- 1. 验证 descriptor 的 magic、版本和 CRC32。
- 2. 计算 payload SHA-256,确认 EXE 没被修改。
- 3. 再次解析内嵌 PE。
- 4. 从 PEB 找到已经加载的 kernel32.dll。
- 5. 从导出表解析所需 Windows API。
- 6. 使用 VirtualAlloc 分配 SizeOfImage 大小的内存。
- 7. 复制 PE 头和各个 section。
- 8. 如果实际地址不同,处理 DIR64 重定位。
- 9. 加载依赖 DLL,填写 IAT。
-
- 初始化安全 cookie 和部分 TLS 数据。
-
- 根据节属性设置最终内存权限。
-
- 刷新指令缓存。
-
- 跳转到 EXE 的 OEP,也就是原始入口点。
它不会直接静态链接 Windows API。相反,它从 PEB 获取 kernel32.dll,再读取 PE 导出表找到 VirtualAlloc、LoadLibraryA 等函数。这也是 loader 能保持位置无关的重要原因。
- 跳转到 EXE 的 OEP,也就是原始入口点。
使用教程
将mimikatz转换为out.bin,简单写个loader去加载执行,正常运行支持go、rust、c/c++程序转换
纷传介绍
圈子往期文件内容如下
群友反馈
- •冲锋马一键生成工具(一键生成免杀loader)
- •lnk文件一键生成工具(一键生成免杀钓鱼lnk文件)
- •bypass内存扫描插件(可绕过火绒、卡巴斯基等杀软内存扫描cs插件)
- •暗涌在线免杀平台(白文件patch免杀loader(分离、单文件)一键生成平台、支持反沙箱)
- •bypass任务计划工具(普通权限可添加、钓鱼快速免杀维权)
- •后渗透工具免杀(petobin,分离加载避免静态落地被秒)
- •BYOVD攻击一键结束赛门铁克进程
- •BinPatch免杀工具过国内主流杀软
- •白影(whiteShadow)自动化白加黑免杀工具v1.0
- •白影(whiteShadow)自动化白加黑免杀工具v2.1
- •Windows恶意软件常见API一览(PDF)
- •Maldev Academy 恶意软件开发完整课程(源码+VM镜像)
- •SplitRun一款exe免杀工具v1.0
- •cs4.5二开过火绒内存扫描
- •binfileBinder文件捆绑工具
- •RPC添加计划任务绕过360核晶
- •RunPack内部版单文件loader免杀1.3
- •VoidShell/VoidShell-fe内部版:x86-64 Linux ELF 加壳混淆工具
- •白影(whiteShadow)自动化白加黑免杀工具v2.4
- •RRR C2 v1.2
重要声明
本文所涉及的技术、思路和工具仅用于本地靶场安全测试和防御研究,切勿将其用于非法入侵或攻击他人系统等目的,一切后果由使用者自行承担,禁止用于任何非法渗透测试,以及无授权违法测试,请遵守中华人民共和国网络安全法。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:词不达意安全团队 词不达意
词不达意《PetoBin把EXE转成bin工具思路》