2008-04-25から1日間の記事一覧

Zip暗号化

仕様書とZipのバイナリとにらめっこしてわかったのは、とりあえず… 暗号化したZipファイルはgeneral purpose bit flagにフラグが立つ Data descriptorが付加される…みたいだけどよくわからん データの先頭12バイトが鍵(?)。その分、サイズが増える。

Overall .ZIP file format:

http://www.pkware.com/documents/casestudies/APPNOTE.TXT Overall .ZIP file format: [local file header 1] [file data 1] [data descriptor 1] . . . [local file header n] [file data n] [data descriptor n] [archive decryption header] [archive ex…

C. Data descriptor:

http://www.pkware.com/documents/casestudies/APPNOTE.TXT C. Data descriptor: crc-32 4 bytes compressed size 4 bytes uncompressed size 4 bytes This descriptor exists only if bit 3 of the general purpose bit flag is set (see below). It is byt…

D. Archive decryption header:

http://www.pkware.com/documents/casestudies/APPNOTE.TXT D. Archive decryption header: The Archive Decryption Header is introduced in version 6.2 of the ZIP format specification. This record exists in support of the Central Directory Encryp…

Zip暗号化

Info-ZIPで暗号化するとData descriptorはつかないけど、Windowsで暗号化したらData descriptorがついてきた。 なーぜー。

Traditional PKWARE Encryptionの復号処理を書いてみる

データを処理してみないとなんとも。 #include <string.h> #include "zlib.h" void init_keys(uLong *keys) { keys[0] = 305419896L; keys[1] = 591751049L; keys[2] = 878082192L; } void update_keys(uLong *keys, char c) { keys[0] = crc32(keys[0], &c, 1); keys[</string.h>…