PetoBin把EXE转成bin工具思路

admin 2026-09-24 05:15:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍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. 1. 通过 RIP 相对寻址找到 out.bin 自身的内存基址。
  2. 2. 保存 Windows x64 ABI 要求保护的寄存器。
  3. 3. 调整栈对齐并预留 shadow space。
  4. 4. 从 descriptor 读取 loader_offset。
  5. 5. 调用真正的 tobin_loader。
  6. 6. loader 返回后恢复寄存器并返回调用者。 关键技术点是 PIC,也就是位置无关代码。无论 out.bin 被复制到哪个内存地址,它都能找到自己内部的 descriptor 和 loader。

PE loader 做什么

相当于一个简化版 Windows PE 装载器,执行顺序大致为:

  1. 1. 验证 descriptor 的 magic、版本和 CRC32。
  2. 2. 计算 payload SHA-256,确认 EXE 没被修改。
  3. 3. 再次解析内嵌 PE。
  4. 4. 从 PEB 找到已经加载的 kernel32.dll。
  5. 5. 从导出表解析所需 Windows API。
  6. 6. 使用 VirtualAlloc 分配 SizeOfImage 大小的内存。
  7. 7. 复制 PE 头和各个 section。
  8. 8. 如果实际地址不同,处理 DIR64 重定位。
  9. 9. 加载依赖 DLL,填写 IAT。
    1. 初始化安全 cookie 和部分 TLS 数据。
    1. 根据节属性设置最终内存权限。
    1. 刷新指令缓存。
    1. 跳转到 EXE 的 OEP,也就是原始入口点。 它不会直接静态链接 Windows API。相反,它从 PEB 获取 kernel32.dll,再读取 PE 导出表找到 VirtualAlloc、LoadLibraryA 等函数。这也是 loader 能保持位置无关的重要原因。

使用教程

将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工具思路》

评论:0   参与:  0