windows - 可执行文件的文件大小怎么会这么小?

标签 windows portable-executable malware

我一直在 Metasploit 上生成有效载荷,我一直在试验不同的模板和一个模板,您可以像 exe-small 一样拥有有效载荷。我生成的有效负载类型是 windows/meterpreter/reverse_tcp 并且仅使用普通的 exe 模板,它的文件大小约为 72 KB,但是 exe-small 输出大小为 2.4kb 的有效载荷。为什么是这样?我如何将其应用到我的编程中?

最佳答案

尽可能小 PE文件只有 97 个字节 - 它什么也不做(只是返回)。

目前最小的可运行可执行文件是 133 字节,因为 Windows 需要加载 kernel32。无法执行没有导入的 PE 文件。

在那个大小下,它已经可以通过在导入表中指定 UNC 路径从 Internet 下载有效负载。

要实现这么小的可执行文件,你必须

  • 在汇编器中实现,主要是摆脱C运行时
  • 减少文件对齐,默认为 1024
  • 删除打印消息“此程序无法在 DOS 模式下运行”的 DOS stub
  • 将一些 PE 部分合并到 MZ header 中
  • 删除数据目录

完整的描述可在更大的研究中找到 blog post called TinyPE .

关于windows - 可执行文件的文件大小怎么会这么小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38205729/

相关文章:

c++ - Ctrl + Z 无法退出 while 循环

windows - Windows Powershell脚本中的服务解释问题

python - 如何为 Windows 重写这个多处理代码?

.net - .Net PE 文件中的入口点 RVA 是什么?

windows - PE 目录的名称

windows - .data 部分是否加载到内存中?

php - 如何在网站上查找恶意代码/恶意软件

c# - 与 "always on top"相反

powershell - 恶意软件使用 .Lnk 文件到 Powershell

debugging - 如何调试恶意软件注入(inject)的代码?