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

 
Mikalas :

바실리!

그리고 아카이브가 "파손"되지 않았습니까?

아니요, 깨지지 않았습니다. 테스트를 위해 7zip을 통해 개인적으로 만들었습니다.

Sanya는 올바르게 언급했습니다. CryptDecode 는 아카이브의 압축된 부분만 디코딩하지만 이 압축된 부분을 디코딩하는 방법은 여전히 미스터리입니다.

 

레이아웃

7zip 및 그냥 zip

아마도 7zip이 지원되지 않습니까?

 
Mikalas :

레이아웃

7zip 및 그냥 zip

패커 - 7zip, 아카이브 - zip. 다른 패커도 동일한 결과를 제공합니다. 자신을 확인할 수 있습니다. 우리는 모든 파일을 가져 와서 모든 zip 패커로 포장합니다. 결과 아카이브(.zip)는 CrypeDecode의 압축을 풀려고 합니다. - 압축 풀기 오류가 발생합니다. 그러나 문제는 전체 아카이브의 압축을 푸는 오류에 대한 것이 아니라 zip 아카이브에서 압축된 섹션의 압축을 풀 수 있도록 CryptDecode 를 구성하는 방법입니다.
 
C-4 :
패커 - 7zip, 아카이브 - zip. 다른 패커도 동일한 결과를 제공합니다. 자신을 확인할 수 있습니다. 우리는 모든 파일을 가져 와서 모든 zip 패커로 포장합니다. 결과 아카이브(.zip)는 CrypeDecode의 압축을 풀려고 합니다. - 압축 풀기 오류가 발생합니다. 그러나 문제는 전체 아카이브의 압축을 푸는 오류에 대한 것이 아니라 zip 아카이브에서 압축된 섹션의 압축을 풀 수 있도록 CryptDecode를 구성하는 방법입니다.

:)

파일이 열리지 않습니다!

하다

 if ( handle != INVALID_HANDLE )
 
C-4 :
문제는 zip 아카이브에서 압축된 섹션의 압축을 풀 수 있도록 CryptDecode를 구성하는 방법입니다.

도움이 될 수 있습니다

http://blog2k.ru/archives/3392

Чтение ZIP файла
  • 2014.06.04
  • Евгений Жирнов (jirnov@gmail.com)
  • blog2k.ru
Алгоритм получения данных из ZIP файла: находим запись EOCDзагружаем записи Central directory file headerдля каждой Central directory file header, находим и загружаем Local File Headerданные располагаются сразу после Local File Header, иногда размер данных записывается после самих данных в структуру Data descriptor, об этом сигнализирует флаг...
 

바실리!

당신은 그것을 올바르게하지 않았지만 제대로 작동하지 않습니다 :(

예기치 않은 내부 오류:

 uchar array[];
   uchar key[];
   uchar result[];
   int handle = FileOpen ( "test.zip" , FILE_READ | FILE_BIN );
   if ( handle != INVALID_HANDLE )
   {
     uint array_size = FileReadArray ( handle, array );
     FileClose ( handle );
     
     Print ( "Read totals: " , array_size );
     ArrayResize ( key, array_size );
     for ( int i = 0 ; i < int ( array_size ); i++ ) key[i] = 0 ;
     ResetLastError();
     int d = CryptDecode( CRYPT_ARCH_ZIP, array, key, result );
   
     if ( d < 1 )
     {
       Print ( GetLastError () );
     } 
   }
 
Mikalas :

바실리!

당신은 그것을 올바르게하지 않았지만 제대로 작동하지 않습니다 :(

내가 옳았다. COMMON 디렉터리에 있어야 하기 때문에 파일이 열리지 않아 더 편리합니다.

key[]는 소스의 크기와 일치하지 않아도 됩니다.

산요우우우우우우우우우우우우우 :

도움이 될 수 있습니다

http://blog2k.ru/archives/3392

문서와 CryptDecode 함수가 압축된 배열의 압축을 제대로 풀 것이라는 보장이 없으면 Zip 리더 클래스를 개발하는 데 투자할 수 없습니다. zip 파일 구조로 작업하는 것은 간단한 작업입니다. 일반 zip의 압축 데이터가 CryptDecode() 패킹과 일치하지 않는 이유를 정확히 이해해야 합니다. 즉, 두 파일의 노란색 섹션이 일치하지 않는 이유를 정확히 이해해야 합니다.

 

그리고 CryptEncode() 함수 를 사용하여 ZIP을 생성하려고 시도합니다.

아마도 MQ는 ZIP과 유사한 자체 암호화 방법을 사용합니다.

 
Mikalas :

그리고 CryptEncode() 함수 를 사용하여 ZIP을 생성하려고 시도합니다.

아마도 MQ는 ZIP과 유사한 자체 암호화 방법을 사용합니다.

글쎄요, 그는 그렇게 하고 일반 아카이버 이후에 일어나는 일과 비교합니다.
 
C-4 :

문서와 CryptDecode 함수가 압축된 배열의 압축을 제대로 풀 것이라는 보장이 없으면 Zip 리더 클래스를 개발하는 데 투자할 수 없습니다. zip 파일 구조로 작업하는 것은 간단한 작업입니다. 표준 zip의 압축 데이터가 CryptDecode() 패킹과 일치하지 않는 이유를 정확히 이해해야 합니다. 즉, 두 파일의 노란색 섹션이 일치하지 않는 이유를 정확히 이해해야 합니다.

MQ의 응답을 기다리는 것이 더 빠를 것입니다)