我一直在 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/