我一直在Metasploit上生成有效负载,我一直在尝试使用不同的模板,其中一个模板可以让您的有效负载exe-small
。我一直在生成的有效负载类型是windows / meterpreter / reverse_tcp,只是使用普通exe
模板,它的文件大小约为72 KB,但exe-small
输出的大小为2.4kb。为什么是这样?我怎么能将它应用到我的编程中?
答案 0 :(得分:4)
最小的PE文件只有97个字节 - 它什么都不做(只返回)。
今天最小的可运行可执行文件是133个字节,因为Windows需要加载kernel32
。无法执行没有导入的PE文件。
在该大小下,它可以通过在导入表中指定UNC路径来从Internet下载有效负载。
要实现这么小的可执行文件,你必须
更详细的研究blog post called TinyPE中提供了完整的说明。
答案 1 :(得分:0)
对于EXE这个小,通常用于图标的空间最大。通常情况下,图标包含各种尺寸和颜色方案,如果您不在乎有一个旧的,生锈的"图标,或根本没有图标。
当您签署EXE时,还会使用大约4k的空间。
作为小型EXE的示例,请never10查看grc。有一个详细信息页面突出了以上几点:
https://www.grc.com/never10/details.htm
在最后一段:
最后一点:我有点恼火,“Never10”和它一样大 85千字节。数字签名可以增加应用程序的大小 4k,但微软现在的高分辨率和高色图标 需要占用56k!所以没有那么烦人的开销,应用程序 将是一个可敬的25k。是的,当然我写的是 汇编语言。
免责声明:我不以任何方式与grc有任何关系。
答案 2 :(得分:-1)
对可执行文件的要求很小,除非它包含我称之为代码垃圾邮件的代码,代码对程序/ exe的功能实际上并不重要。这对其他文件也有效。与FrontPage中编写的HTML页面相比,查看手动编写的HTML页面。那是垃圾邮件。
我记得我的旧DOS文件大小都是KB,并且几乎可以在操作系统中执行任何所需的任务。我的一个.exes(实际上是.com)的大小只有20个字节。
只需按照这种方式考虑:正如在某些情况下,Windows操作系统中包含的大多数文件都可以删除,操作系统仍可以完美运行,与.exe文件相同:大部分代码要么无用,要么与目标相关或有意添加(见下文)。
此异常的高峰是现在在一些使用高级复制保护的游戏的.exe文件中添加的代码,这可以使文件大到几十MB。运行游戏所需的实际代码几乎不到完整代码的10%。
在您的示例中,文件大小为72 KB,对于Windows操作系统来说几乎可以做任何事情。
要将它应用于您的编程,就像制作非常小的.exes一样,保持简单。不要仅为其外观添加不必要的代码,或者认为您将在某一时刻使用该部分程序/代码。