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

 

실제로 주제에 대한 질문입니다. 내가 이해하는 한, 우리는 zip 배열을 포장/풀기에 대해 이야기하고 있습니다. 이것은 엄청나게 유용한 기능이지만 사용하지 못했습니다. CryptDecode 기능은 테스트 zip 아카이브에서 완고하게 0을 제공합니다.

 //+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   uchar array[];
   uchar key[]={ 0 };
   uchar result[];
   int handle = FileOpen ( "link.zip" , FILE_READ | FILE_BIN | FILE_COMMON );
   FileReadArray (handle, array);
   FileClose (handle);
   int d = CryptDecode(CRYPT_ARCH_ZIP, array, key, result);
   printf ( GetLastError ());
   printf ( "Read totals: " + ( string ) ArraySize (array));
  }

아마도 다른 것을 키로 지정해야 하거나 CRYPT_ARCH_ZIP 수정자의 의미를 올바르게 이해하지 못할 수 있습니다. 어쨌든 설명서에 기능으로 작업하는 예가 없으므로 작동 방식에 대한 이해가 상당히 복잡해집니다. GetLastError 함수 는 4001 - 예기치 않은 내부 오류를 기록합니다.

 
C-4 :

실제로 주제에 대한 질문입니다. 내가 이해하는 한, 우리는 zip 배열을 포장/풀기에 대해 이야기하고 있습니다. 이것은 엄청나게 유용한 기능이지만 사용하지 못했습니다. CryptDecode 기능은 테스트 zip 아카이브에서 완고하게 0을 제공합니다.

아마도 다른 것을 키로 지정해야 하거나 CRYPT_ARCH_ZIP 수정자의 값을 올바르게 이해하지 못할 수 있습니다. 어쨌든 설명서에 기능으로 작업하는 예가 없으므로 작동 방식에 대한 이해가 상당히 복잡해집니다. GetLastError 함수 는 4001 - 예기치 않은 내부 오류를 기록합니다.

잘못된 접근
 
sanyooooook :
잘못된 접근
가능한 경우 더 자세한 내용.
 

ZIP 아카이브는 전체 구조인 반면 기능은 어레이를 아카이브/압축 해제합니다. 아카이브를 취소할 준비가 된 어레이를 거기에 놓기만 하면 됩니다.

대략적으로 말하면 아카이브 기능의 출력에서 얻은 것만 압축을 풉니다.

 
C-4 :
가능한 경우 더 자세한 내용.
또는 무엇이 들어 있는지
 link.zip
보관 기능에 의해 생성되었습니까?
 
sanyooooook :

ZIP 아카이브는 전체 구조인 반면 기능은 어레이를 아카이브/압축 해제합니다. 아카이브를 취소할 준비가 된 어레이를 거기에 놓기만 하면 됩니다.

대략적으로 말하면 아카이브 기능의 출력에서 얻은 것만 압축을 풉니다.

분명한. MQ 스타일. 가장 중요한 것은 - 암호 해독 zip'a입니다. MQL에서 zip 아카이브로 작업하기 위한 라이브러리가 있는 사람이 있습니까?
 
sanyooooook :
아니면 뭐가 들어있어
보관 기능에 의해 생성되었습니까?
아니요, 0을 씁니다. CryptDecode는 zip을 디코딩합니다. zip 아카이브를 만들려고 했습니다. CryptEncode 답변이 표준 아카이버와 일치하지 않습니다. CryptEncode를 사용하면 아카이브된 파일이 훨씬 더 짧아서 간접적으로 이론을 확인할 수 있습니다!
 
다음은 파일 구조에 대한 설명입니다. http://blog2k.ru/archives/3391
Описание формата ZIP файла
  • 2014.05.29
  • Евгений Жирнов (jirnov@gmail.com)
  • blog2k.ru
ZIP файл состоит из трех областей: сжатые/несжатые данные, (последовательность структур Local File Header, сами данные и необязательных Data descriptor)центральный каталог (последовательность структур Central directory file header)описание центрального каталога (End of central directory record) С начала файла идет набор из Local File Header...
 
C-4 :
아니요, 0을 씁니다. CryptDecode는 zip을 디코딩합니다. zip 아카이브를 만들려고 했습니다. CryptEncode 답변이 표준 아카이버와 일치하지 않습니다. CryptEncode를 사용하면 아카이브된 파일이 훨씬 더 짧아서 간접적으로 이론을 확인할 수 있습니다!

이것은 이론이 아닙니다. 이렇습니다. 아카이버에 모든 것이 준비되어 있다는 사실에 익숙해졌습니다.

나도 어리석게도 일반 아카이버가 만든 파일의 압축을 풀 것이라고 생각했습니다.

 

문제는 일반 zip 아카이브에서 CryptEncode가 제공하는 바이트 배열을 찾을 수 없다는 것입니다.

파일은 동일합니다. 따라서 클래식 zip 아카이브에는 CryptEncode 함수에 의해 발행된 바이트코드에 해당하는 섹션이 있어야 합니다.

 
C-4 :

문제는 일반 zip 아카이브에서 CryptEncode가 제공하는 바이트 배열을 찾을 수 없다는 것입니다.

), 그것은 당신이 찾고 있는 것이 아닙니다.