2012-03-03 29 views

答えて

2

Googleはあなたの友人です。検索後の最初の結果"7zip header"ドキュメントには7zip署名が記載されています:

BYTE kSignature[6] = {'7', 'z', 0xBC, 0xAF, 0x27, 0x1C}; 

ファイルの最初の6バイトを読みます。その6バイトシーケンスが上記のkSignatureと同じ場合、ファイルは7zでなければなりません。

EDIT:私は7zをGNU/Linux(実際にはPEではなくSFX ELFファイルを作成する)で試しています。そして私は、データの最後のチャンクの1つで、7zシグネチャが実際に存在することを発見しました。 hexdumpに対してはバイト番号0x00057960にダンプを生成し、署名がここに配置されている:

0x000578f0: 37 7a bc af 27 1c 

0x37はと0x7Aのそれぞれ「7」と「Z」です。したがって、この場合、署名のオフセットはEOF-112バイトになります。

16進エディタをダウンロードし、SFXファイルを作成し、このオフセットがSFX 7zを作成するすべてのアプリケーションで同じかどうかをテストすることをお勧めします。私はこれをGNU/Linuxでテストしたことを覚えておいてください。したがって、Windows上では異なるかもしれません。

+0

私は7z SFXアーカイブ(自己解凍EXEファイル)について話しています。これらの6バイトは7z SFXアーカイブに存在しますか? – randydom

+0

申し訳ありませんが、最初のことを考慮していませんでした。私は私の答えを編集しました。 – mfontanini

関連する問題