带有修改器CRYPT_ARCH_ZIP的CryptDecode - 如何使用? - 页 7

 

Vasiliy!

你得到答复了吗?

 
还没有。我想他们会读到这个主题,并在这里回复。等待。
 
请形成一个清晰的问题清单。

该函数对独立的数据缓冲区起作用,而不是对存档文件起作用。
使用deflate算法,该函数被引入到WebRequest 中使用,以备服务器收割响应。

不使用关键参数。
 
mql5:
请形成一个清晰的问题清单。该函数对单个数据缓冲区起作用,而不是对档案文件起作用。使用deflate算法,该函数被引入到WebRequest中使用,以备响应被服务器炸毁。不使用关键参数。




下午好!

有一个问题,CryptEncode() 中CRYPT_ARCH_ZIP参数 最后的4个字节是什么意思?

如果你使用deflate 算法,你也可以解压ZIP档案,知道如何获得这4个字节

( 第6页的ZIP反编译器实例)

 
Mikalas:

下午好!

有一个问题,CryptEncode() 中CRYPT_ARCH_ZIP参数 最后的4个字节是什么意思?

这是对源数据的完整性控制,ADLER32或CRC32(它取决于归档参数(在MQL中总是使用Adler32),可能会丢失)。
 
和前两个字节?
 
sanyooooook:
但前两个字节呢?

最有可能的是。

0x78 - 包装数据的符号

0x5E - 压缩方法

这些字节没有变化(我检查过)。

 
mql5:
这是为了完整性控制,来自源数据的ADLER32或CRC32(可能不存在)。

谢谢你。

没有4个字节和CRC32的ZIP档案不能解压:(

瓦西里,我们的冒险不会成功

当然,除非MQ的人满足我们的要求,给我们添加一个旗帜

函数CryptDecode(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:

谢谢你。

没有4个字节和CRC32的ZIP档案不能解压:(

瓦西里,我们的想法不会成功

当然,除非MQ公司的人能够满足我们的要求,在 "我的 "中添加一个标志。

函数CryptDecode(CRYPT_ARCH_ZIP, data, key, result,NO_READ_CRC) 。

我们能不能试着滑入一个空的四字节?

mql5:
这是对源数据的完整性控制,ADLER32或CRC32(取决于归档参数 (MQL总是使用Adler32),可能不存在)。
 
C-4:

也许可以尝试在一个空的四字节中滑入?

我试过没有最后4个字节,也试过最后4个字节为 "0",但都没有成功:(