2012-03-11 9 views

答えて

4

ファイル形式を破ることなく簡単に削除することはできません。

しかし、ehm、見つけたthis

+0

私はファイル形式を壊すことができますが、私はexeを中断せずにそれを行う方法を知る必要があります。 – user1232138

+1

ファイル形式を壊した場合、実際にはPEファイルではありません。カスタムスタブを提供することができます。 –

7

Dosスタブを削除することは、Dosヘッダーとは関係ありません。はい、Dos Stubを削除することは可能です(これはもはや使用されないためです)。 Dosヘッダーのサイズを最小限に減らすこともできます(MZ + PEヘッダーへのジャンプ)。しかし、Dosヘッダーを完全に削除することはできません。それ以外の場合は、MZとPEヘッダーへのジャンプがない場合、Windowsローダーはイメージの開始を拒否します。

+0

PeStudio(http://www.winitor.com)を使用して、実行可能なイメージのDOSスタブの実際のサイズを取得することができます – mox

+0

私の答えをdownvoted whoは、公正とdownvoteをコメントしてください!ありがとう。 – mox

13

PEファイルは、IMAGE_DOS_HEADERで始まり、ある時点で最新のPEフィールドを定義するIMAGE_NT_HEADERS構造体が続かなければなりません。

IMAGE_DOS_HEADERには2つの必須フィールドがあります.e_magicは値IMAGE_DOS_SIGNATURE(ASCIIでは「MZ」のように見える)を保持し、e_lfanewはファイルの開始からIMAGE_NT_HEADERSの開始までのオフセットでなければなりません。

IMAGE_DOS_HEADERの残りの部分は、Windowsの過去16ビットWindowsではオプションで、0にすることができます。また、DOSスタブは省略可能で省略できます。

最小の準拠のPEファイルは、e_magicがIMAGE_DOS_SIGNATUREに設定され、e_lfanewがsizeof(IMAGE_DOS_HEADER)に設定され、すぐにIMAGE_NT_HEADERSが続くIMAGE_DOS_HEADERで始まります。

0

Dosヘッダーのサイズを「最小」に減らすことはできません。残念ながら、長さフィールドはIMAGE_DOS_HEADERの最後のフィールドです。したがって、64バイトの固定サイズです。

関連する問題