CryptDecode mit Modifikator CRYPT_ARCH_ZIP - Wie verwenden? - Seite 8

 
Mikalas:
Ich habe es ausprobiert - es funktioniert nicht :(

Ich verstehe, dass CryptDecode CRC32? verwendet. - Wenn dies der Fall ist, können Sie den CRC32-Hash aus dem Archiv nehmen und an das Ende des gepackten Arrays anhängen:

struct ZIP_HEADER
{
  ...
  ushort last_mod_date;
  uint   crc_32;            // Берем это число и помещаем его в конец массива, который нужно распаковать
  uchar  ll_crc;
  ...
};
Z.I. Jetzt habe ich gelesen, dass Hash ein optionales Attribut ist und in einigen Fällen mit Nullen gefüllt werden kann.
 

Nein, nicht CRC32, Adler32

(sie haben den Text korrigiert, und sie haben ihn korrigiert, und ich habe ihn korrigiert - lesen Sie noch einmal )

Ich habe geschrieben, es funktioniert nicht!!!!!

 
Mikalas:

Nein, nicht CRC32, Adler32

(sie haben den Text korrigiert, lesen Sie ihn erneut)

Ich habe geschrieben, es funktioniert nicht!!!!!

Richtig:

Mikalas:

... und CRC32 aus dem ZIP-Archiv, das ich eingefügt habe - es lässt sich nicht entpacken :(

 
Mikalas:

Ich danke Ihnen.

ZIP ohne 4 Bytes und CRC32 aus ZIP-Archiv wird nicht entpackt :(

Wassili, unsere Idee wird nicht funktionieren.

Es sei denn, die Jungs von MQ kommen uns auf halbem Weg entgegen und fügen eine Flagge in

functionCryptDecode(CRYPT_ARCH_ZIP, data, key, result,NO_READ_CRC) ;

oder nehmen Sie CRC32 aus der ZIP-Datei:

CryptDecode(CRYPT_ARCH_ZIP, data, key, result,USE_CRC_FROM_ZIP) ;

Sie müssen keine Flagge hinzufügen. Es reicht aus, CryptDecode so zu ändern, dass es den CRC-Code akzeptiert, sofern er existiert. Fehlt er und ist das Codefeld mit Nullen gefüllt, wird kein CRC-Code verwendet, das war's. Auch kann nicht jedes Archiv einen Hash enthalten:

Manchmal ist es unmöglich, die Daten zum Zeitpunkt des Schreibens vonLocalFileHeader zuberechnen, dann werdenNullen incrc32,compressedSize unduncompressedSize geschrieben, dasdritte Bit ingeneralPurposeBitFlag wird auf eins gesetzt und nachLocalFileHeader wird eine Struktur wieData descriptor hinzugefügt.

http://blog2k.ru/archives/3391

 
C-4:

Es ist nicht erforderlich, eine Kennzeichnung hinzuzufügen. Ändern Sie einfach CryptDecode so ab, dass es den CRC-Code akzeptiert, wenn es einen solchen gibt. Wenn er nicht vorhanden ist und das Codefeld mit Nullen gefüllt ist, wird der CRC-Code nicht verwendet. Auch kann nicht jedes Archiv einen Hash enthalten:

Ich weiß nicht, wie MQ die Funktion implementiert hat, daher habe ich einige Vorschläge gemacht

(mit einer Fahne wird es vielleicht einfacher für sie sein)

 
Liebe MQ! Bitte geben Sie uns eine Antwort. Könnten Sie den Hash-Abgleich optional machen?
 

Das wäre sehr schön.

Schneller Zugriff auf eine große Anzahl von Dateien in einem ZIP-Archiv!

Eine kleine Datenbank mit schnellem Zugriff auf Dateien - super!

Öffnen Sie ZIP - erstellen Sie eine Korrespondenztabelle und "rasen" Sie durch die Offsets.

 

... Sie müssen denken.

Sie müssen sich wundern, dass die örtlichen Handwerker eine so unerwartete Verwendung fürCRYPT_ARCH_ZIP finden.

Mikalas:

Das wäre sehr schön.
Schneller Zugriff auf eine große Anzahl von Dateien in einem ZIP-Archiv!
Kleine DB mit schnellem Zugriff auf Dateien - super!
Öffnen Sie ZIP - erstellen Sie eine Tabelle mit Übereinstimmungen und "rasen" Sie durch die Offsets.

+100 Die Archivierung ist sehr nützlich. Natürlich unter voller Beibehaltung der Inhaltskontrolle durch MQ.

 
C-4:

... Sie müssen denken.

Sie müssen sich wundern, dass die örtlichen Handwerker eine so unerwartete Verwendung fürCRYPT_ARCH_ZIP finden.

+100 Die Archivierung ist sehr nützlich. Natürlich unter voller Beibehaltung der Inhaltskontrolle von MQ. Es sollten keine exe- und ausführbaren Dateien im Archiv enthalten sein.

Wassili!

Es spielt keine Rolle, ob es eine EXE gibt oder nicht!

Ich kann aus scheinbar unscheinbaren Dateien eine ausführbare Datei "bauen",

durch Hinzufügen oder Ändern von Bytes.

Dazu müssen Sie kein ZIP-Programm verwenden!

Solange wir Dateien herunterladen und speichern können, ist die Erstellung einer EXE ein Kinderspiel!

 
Mikalas:

Wassilij!

Es spielt keine Rolle, ob es eine EXE gibt oder nicht!

Ich kann eine ausführbare Datei aus scheinbar unscheinbaren Dateien "bauen"!

Dafür müssen Sie kein ZIP verwenden!

In der Tat, ja. Es ist möglich, eine ausführbare Datei so zu verschlüsseln, dass sie sich nicht von einer zufälligen Menge von Bytes unterscheidet.