2016-07-05 5 views
3

私はMetasploitでペイロードを生成していましたが、さまざまなテンプレートとペイロードを持つことができるテンプレートのいずれかを実験していました。exe-smallです。私が生成しているペイロードのタイプはwindows/meterpreter/reverse_tcpであり、通常のexeテンプレートを使用すると、ファイルサイズは約72KBですが、exe-smallは2.4kbのペイロードを出力します。どうしてこれなの?そして私はこれをプログラミングにどのように適用できますか?実行ファイルはどのようにファイルサイズが小さくてもかまいませんか?

答えて

4

最小可能なPEファイルは97バイトで、何もしません(ただ返します)。

今日実行可能な最小実行可能ファイルは、Windowsにはkernel32がロードされているため、133バイトです。インポートのないPEファイルを実行することはできません。

このサイズでは、インポートテーブルにUNCパスを指定して、インターネットからペイロードをダウンロードできます。このような小さな実行可能ファイルを達成するために

、あなたは

  • にDOSを削除し、デフォルト
  • 1024でファイルの配置を減らす主にCランタイム
  • を取り除くために、アセンブラで実装していますこのプログラムはDOSモードでは実行できません "
  • 一部のPE部分をMZヘッダーにマージします
  • データディレクトリを削除します

詳しい説明は、大型研究blog post called TinyPEでご覧になれます。

+0

私は同意しません。私の最初の返信を読んでください。 MS-DOS時代に使用していた20バイトの有効な.comファイルがあります。 – Overmind

+0

@Overmind:COMファイルはPEファイルではないので、矛盾はありません。そのファイルは現在Windows(7以降)でも実行されていますか? COMフ​​ァイルにはヘッダーもメタデータもありません。また、この質問はMetasploitのコンテキストでSecurity.SEから移行されました。ここでは、悪質なペイロードをダウンロードしたいと思っていましたが、20バイトのCOMファイル。 –

+2

これは16ビットの実行ファイルなので、64ビットでは実行されません。 – Overmind

-1

実際にはプログラム/ exeの機能に重大な影響を与えないコードスパムと呼ばれるものを除いて、実行可能ファイルを大きくする必要はほとんどありません。これは他のファイルに対しても有効です。 FrontPageで書かれたものと比較して手作業で書かれたHTMLページを見てください。スパムコードです

私は、すべてのKBサイズで、OSで実際に必要なタスクを実行していた古いDOSファイルを覚えています。私の.exes(実際には.com)の1つは20バイトしかありませんでした。

WindowsのOSに含まれているファイルの大部分を削除することができますが、OSは完全に機能する場合もありますが、これは.exeファイルと同じです。コードは無用であるか、または目的に関連する目的とは異なるか、または意図的に追加されます(下記参照)。

この異常のピークは、ファイルを数十MBにすることができる高度なコピープロテクションを使用するゲームの.exeファイルに現在追加されているコードです。ゲームを実行するために必要な実際のコードは実際には完全なコードの10%以下です。

例のように72 KBのファイルサイズは、Windows OSに実質的に何かをするのにはかなり十分です。

非常に小さい.exesのように、これをプログラミングに適用するには、物事を単純にしてください。見た目だけで不要なコードを追加したり、ある時点でプログラム/コードのその部分を使用することを考えて、コードを追加しないでください。

0

このEXEの場合は、通常、ほとんどのスペースがアイコンに使用されます。通常、アイコンにはさまざまなサイズと色のスキームが含まれていますが、「古くて錆びた」アイコンやアイコンがない場合は削除できます。

EXEに署名すると、4kのスペースが使用されます。

小さなEXEの例として、never10grcで表示します。最後の段落で

https://www.grc.com/never10/details.htm

:上記の点を強調して詳細ページがあります

最後の注意:私は「Never10」はそれと同じ大きさであることを少しイライラしてい 85キロバイトです。デジタル署名はアプリケーションのサイズを 4k増加させますが、今Microsoftの が必要とする高解像度とハイカラーのアイコンは56k必要です!だから、すべてのその迷惑なオーバーヘッドなしで、アプリ は、25kに匹敵するだろう。もちろん、私は アセンブリ言語で書いています。

免責事項:私はgrcと提携していません。

関連する問題