CRYPT_ARCH_ZIP 수정자가 있는 CryptDecode - 사용 방법은 무엇입니까? - 페이지 7

 

바실리!

답변?

 
아직 아님. 나는 그들이 이 스레드를 읽고 바로 여기에서 답장을 보낼 것이라고 생각합니다. 우리는 기다립니다.
 
질문 목록을 명확하게 만드십시오.

이 기능은 아카이브 파일이 아닌 별도의 데이터 버퍼와 함께 작동합니다.
서버가 응답을 shrugged하는 경우 WebRequest 에서 사용하기 위해 도입된 기능인 deflate 알고리즘이 사용됩니다.

키 매개변수는 사용되지 않습니다.
 
mql5 :
질문 목록을 명확하게 만드십시오.

이 기능은 아카이브 파일이 아닌 별도의 데이터 버퍼와 함께 작동합니다.
WebRequest에서 사용하기 위해 도입된 기능인 deflate 알고리즘이 사용됩니다.

키 매개변수는 사용되지 않습니다.

안녕하세요!

단 하나의 질문이 있습니다. CRYPT_ARCH_ZIP 매개변수가 있는 CryptEncode () 함수를 사용하여 압축된 데이터의 끝에서 4바이트는 무엇을 의미합니까?

수축 알고리즘을 사용하는 경우 이 4바이트를 얻는 방법을 알고 있는 ZIP 아카이브의 압축을 풀 수도 있습니다.

(6페이지의 ZIP 아카이브 언패커의 예)

 
Mikalas :

안녕하세요!

단 하나의 질문이 있습니다. CRYPT_ARCH_ZIP 매개변수가 있는 CryptEncode () 함수를 사용하여 압축된 데이터의 끝에서 4바이트는 무엇을 의미합니까?

이것은 원본 데이터의 무결성 제어, ADLER32 또는 CRC32(아카이브 매개변수에 따라 다름 (Adler32는 항상 MQL에서 사용되며 없을 수 있음)입니다.
 
처음 2바이트는 어떻습니까?
 
sanyooooook :
처음 2바이트는 어떻습니까?

대부분 다음과 같습니다.

0x78 - 압축된 데이터의 부호

0x5E - 압축 방법

이 바이트는 변경되지 않습니다(확인했습니다)

 
mql5 :
이것은 원본 데이터의 무결성 제어, ADLER32 또는 CRC32(누락될 수 있음)를 위한 것입니다.

고맙습니다.

ZIP은 내가 대체한 ZIP 아카이브의 4바이트 및 CRC32 없이는 압축을 풀 수 없습니다. 압축을 풀지 않습니다.(

Vasily, 우리의 아이디어는 작동하지 않습니다

물론 MQ의 사람들이 우리를 만나러 와서 플래그를 추가하지 않는 한

함수 CryptDecode ( CRYPT_ARCH_ZIP, 데이터, 키, 결과, NO_READ_CRC ) ;

또는 ZIP 파일에서 CRC32 가져오기 :

CryptDecode ( CRYPT_ARCH_ZIP, 데이터, 키, 결과, 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은 내가 대체한 ZIP 아카이브의 4바이트 및 CRC32 없이는 압축을 풀 수 없습니다. 압축을 풀지 않습니다.(

Vasily, 우리의 아이디어는 작동하지 않습니다

물론 MQ의 사람들이 우리를 만나러 와서 플래그를 추가하지 않는 한

함수 CryptDecode ( CRYPT_ARCH_ZIP, 데이터, 키, 결과, NO_READ_CRC ) ;

빈 4바이트를 슬립할 수 있습니까?

mql5 :
이것은 원본 데이터의 무결성 제어, ADLER32 또는 CRC32(보관 매개변수에 따라 다름 (Adler32는 항상 MQL에서 사용되며 없을 수 있음)를 위한 것입니다.
 
C-4 :

빈 4바이트를 슬립할 수 있습니까?

마지막 4바이트 없이 시도했고 마지막 4번째 "0"으로 시도했지만 작동하지 않습니다.