CryptDecode con modificatore CRYPT_ARCH_ZIP - Come usare? - pagina 3

 
Mikalas:

Vasiliy!

L'archivio non è rotto?

No, non lo è. Fatto da me personalmente tramite 7zip per il test.

Sanya ha notato correttamente: CryptDecode decodifica solo la parte compressa dell'archivio, ma come fargli decodificare questa parte compressa rimane un mistero.

 

Carica

7zip e plain zip

Forse 7zip non è supportato?

 
Mikalas:

Carica

7zip e solo zip

Il packer è 7zip, l'archivio è zip. Altri imballatori danno lo stesso risultato. Puoi controllare da solo. Prendete qualsiasi file, impacchettatelo con qualsiasi zip packer. Prova a decomprimere l'archivio risultante (.zip) con CrypеDecode. - Otterremo un errore di disimballaggio. Ma la domanda non riguarda nemmeno l'errore di scompattare l'intero archivio, la domanda è come configurare CryptDecode per essere in grado di scompattare la partizione compressa dall'archivio zip.
 
C-4:
Il packer è 7zip, l'archivio è zip. Altri imballatori danno lo stesso risultato. Potete controllare voi stessi. Prendi qualsiasi file, impacchetta con qualsiasi zip packer. Prova a decomprimere l'archivio risultante (.zip) con CrypеDecode. - Otterremo un errore di spacchettamento. Ma la domanda non riguarda nemmeno l'errore di scompattare l'intero archivio, la domanda è come configurare CryptDecode per essere in grado di scompattare la partizione compressa dall'archivio zip.

:)

Il tuo file non si apre!

vai a

if ( handle != INVALID_HANDLE )
 
C-4:
domanda come configurare CryptDecode per essere in grado di decomprimere una partizione compressa da un archivio zip.

potrebbe aiutare

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, об этом сигнализирует флаг...
 

Vasiliy!

Non l'hai fatto bene, ma non funziona nemmeno bene :(

Errore interno inatteso:

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:

Vasiliy!

Non l'hai fatto bene, ma non funziona nemmeno :(

L'ho fatto bene. Il file non si apre perché dovrebbe essere nella directory COMMON, è più conveniente per me.

Key[] non deve corrispondere alla dimensione della fonte.

sanyooooook:

potrebbe aiutare

http://blog2k.ru/archives/3392

Non posso investire nello sviluppo di una classe per leggere lo zip se non ho la documentazione a portata di mano e sono sicuro che la funzione CryptDecode decomprimerà correttamente l'array compresso. Gestire la struttura di un file zip è un compito banale. Quello che devo capire è perché i dati compressi dello zip regolare non corrispondono a quelli di CryptDecode(). In altre parole, ho bisogno di sapere esattamente perché i dati compressi non corrispondono ai dati compressi. In altre parole, dovete capire esattamente perché le sezioni gialle dei due file non corrispondono:

 

E provate a creare uno ZIP conCryptEncode(),

forse MQ usa il proprio metodo di crittografia simile a ZIP

 
Mikalas:

E provate a creare uno ZIP conCryptEncode(),

forse MQ usa il proprio metodo di crittografia simile a ZIP

beh, lo fa, e poi lo confronta con l'output dell'archiviatore regolare
 
C-4:

Non posso investire nello sviluppo di una classe per leggere uno Zip se non ho documentazione e fiducia che la funzione CryptDecode decomprimerà correttamente l'array compresso. Trattare la struttura di un file zip è un compito banale. Quello che ho bisogno di capire è perché i dati compressi dello zip regolare non corrispondono ai dati compressi di CryptDecode(). In altre parole, dovete capire esattamente perché le sezioni gialle dei due file non corrispondono:

aspettare una risposta da MQ sarebbe probabilmente più veloce )
Motivazione: