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

 

バシリー!

お答えになりましたか?

 
まだです。このスレッドを読んで、この場で返信してくれると思います。待機中です。
 
明確な質問事項を形成してください。

この機能は、アーカイブファイルではなく、別のデータバッファで動作します。
deflateアルゴリズムが使用されており、WebRequestで、サーバーからレスポンスが刈り取られることを想定して、この関数が導入されました。

keyパラメータは使用しません。
 
mql5:
明確な質問事項を形成してください。この機能は、アーカイブファイルではなく、個々のデータバッファに対して動作します。deflate アルゴリズムを使用しており、WebRequest において、サーバからレスポンスが揚げられることを想定して、この関数が導入されました。keyパラメータは使用しません。




こんにちは。

一つ質問ですが、CRYPT_ARCH_ZIPパラメータを持つCryptEncode()の 最後の4バイトは何を意味するのでしょうか?

deflateアルゴリズムを使えば、この4バイトの取得方法を知っているZIPアーカイブの解凍も 可能です。

(6ページのZIPデコンパイラの例)

 
Mikalas:

こんにちは。

一つ質問ですが、CRYPT_ARCH_ZIPパラメータを持つCryptEncode()の 最後の4バイトは何を意味するのでしょうか?

これは整合性制御のためで、ソースデータからADLER32またはCRC32(アーカイブパラメータに依存し(MQLでは常にAdler32が使用さ れる)、欠落することもある)。
 
と最初の2バイトは?
 
sanyooooook:
が、最初の2バイトは?

ほとんどの場合、そうでしょう。

0x78 - パックデータの符号

0x5E - 圧縮方式

これらのバイトは変更されません(確認済み)。

 
mql5:
これは整合性制御のためのもので、ソースデータから ADLER32 または CRC32 (存在しないかもしれない)を取得する。

ありがとうございます。

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) ;

struct ZIP_HEADER
{
  uint   sign;
  ushort a_version;
  ushort bit_flag;
  ushort comp_method;
  ushort last_mod_time;
  ushort last_mod_date;
  //uint   crc_32;
  uchar  ll_crc;
  uchar  lh_crc;
  uchar  hl_crc;
  uchar  hh_crc;
  uint   pack_size;
  uint   unpack_size;
  ushort fn_len;
  ushort extr_field_len;
};
 
Mikalas:

ありがとうございます。

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

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

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

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

空いた4バイトを滑り込ませてみるか?

mql5 です。
これは、ソースデータの整合性制御、ADLER32またはCRC32(アーカイブ・パラメーターに依存 (MQLは常にAdler32を使用)、そうでない場合もある)用です。
 
C-4:

空いた4バイトを滑り込ませてみるとか?

最後の4バイトを削除して、最後の4バイトを "0 "にして試してみましたが、うまくいきません :(
理由: