CryptDecode with modifier CRYPT_ARCH_ZIP - How to use? - ページ 8

 
Mikalas:
試してみましたが、うまくいきません :(

CryptDecodeは CRC32を使用するとのことですが?- もしそうなら、アーカイブからCRC32ハッシュを取り出し、パックされた配列の末尾に滑り込ませることができます。

struct ZIP_HEADER
{
  ...
  ushort last_mod_date;
  uint   crc_32;            // Берем это число и помещаем его в конец массива, который нужно распаковать
  uchar  ll_crc;
  ...
};
Z.I. 今、私は、hashはオプションの属性で、場合によってはゼロで埋められると読みました。
 

いいえ、CRC32ではなく、Adler32です。

(彼らはテキストを修正し、私はそれを修正しました -再読み込み)

と書いたのですが、うまくいきません!!!!

 
Mikalas:

いいえ、CRC32ではなく、Adler32です。

(テキストを修正したそうです。再読)

と書いたのですが、うまくいきません!!!!

そうですね。

ミカラス

...と貼り付けたZIPアーカイブのCRC32が解凍されない :(

 
Mikalas:

ありがとうございます。

ZIPアーカイブから4バイトとCRC32のないZIPは解凍されません :(

ワシリー、我々のアイデアはうまく いかないぞ。

もちろん、MQの人たちが私たちの期待に応えて、フラグを追加してくれるなら話は別ですが。

functionCryptDecode(CRYPT_ARCH_ZIP, data, key, result,NO_READ_CRC) ;

またはZIPファイルからCRC32を 取得します。

CryptDecode(CRYPT_ARCH_ZIP, data, key, result,USE_CRC_FROM_ZIP) ;

フラグを立てる必要はありません。CryptDecodeにCRCコードがあれば、それを受け入れるように変更すれば十分です。それがなく、コード欄がゼロで埋め尽くされている場合、CRCコードは使用されません、それだけです。また、すべてのアーカイブがハッシュを含むことができるわけではありません。

LocalFileHeader を書き込む際にデータを計算できない場合が あるため、crc32,compressedSize,uncompressedSize0 を 書き、generalPurposeBitFlagの 3 ビット目を 1 に設定し、LocalFileHeader の後にData descriptor同様の構造を付加して いる

http://blog2k.ru/archives/3391

 
C-4:

フラグを追加する必要はありません。CRCコードがあれば、それを受け入れるようにCryptDecodeを変更するだけです。存在せず、コード欄がゼロで埋め尽くされている場合、CRCコードは使用されない、それだけである。また、すべてのアーカイブにハッシュを格納できるわけではありません。

MQがどのように機能を実装したのか分からないので、いくつか提案させていただきました。

(フラグを立てれば、もっと簡単にできるかもしれない。)

 
MQ様!回答よろしくお願いします。ハッシュマッチングをオプションにしていただけないでしょうか?
 

それはとても嬉しいことです。

ZIPアーカイブに格納された大量のファイルに素早くアクセス!

ファイルへの素早いアクセスを可能にする小型データベース - super!

ZIPを開く - 対応表を作成し、オフセットを「競争」させる。

 

...と思っているに違いない。

CRYPT_ARCH_ZIPの 意外な使い方に、地元の職人も驚いていることでしょう。

Mikalas:

それはとても嬉しいことです。
ZIPアーカイブに格納された大量のファイルに素早くアクセス!
小さなDBでファイルへの高速アクセス - スーパー!
ZIPを開く - 一致するテーブルを作成し、オフセットを「競争」する。

+100 アーカイブはとても便利です。もちろん、MQによるコンテンツコントロールは完全に維持した上で。

 
C-4:

...と思っているに違いない。

CRYPT_ARCH_ZIPの 意外な使い方に、地元の職人も驚いていることでしょう。

+100 アーカイブはとても便利です。もちろん、MQのコンテンツコントロールは完全に維持したままです。アーカイブ内のexeファイルや実行ファイルはないはずです。

バシリー!

EXEがあってもなくても関係ない!

一見何の変哲もないファイルから実行ファイルを「ビルド」することができるのです。

バイトの追加や変更によって

ZIPを使わなくてもできるんです!

ファイルのダウンロードと保存さえできれば、EXEを作るのは簡単なんです

 
Mikalas:

バシリー!

EXEがあってもなくても関係ない!

一見何の変哲もないファイルから実行ファイルを「ビルド」することができるのだ!

ZIPを使わなくてもいいんです!

実を言うと、そうなんです。実行ファイルを暗号化して、ランダムなバイトの集合と変わらないようにすることが可能です。
理由: