CRYPT_ARCH_ZIP değiştiricili CryptDecode - Nasıl kullanılır? - sayfa 3

 
Mikalas :

Vasili!

Ve arşiv "bozuk" değil mi?

Hayır, kırılmadı. Test için 7zip aracılığıyla şahsen benim tarafımdan yapılmıştır.

Sanya doğru bir şekilde not etti: CryptDecode , arşivin yalnızca sıkıştırılmış kısmının kodunu çözer, ancak bu sıkıştırılmış kısmın kodunun nasıl çözüleceği bir sır olarak kalır.

 

Düzen

7zip ve sadece zip

Belki 7zip desteklenmiyor?

 
Mikalas :

Düzen

7zip ve sadece zip

Paketleyici - 7zip, arşiv - zip. Diğer paketleyiciler aynı sonucu verir. Kendiniz kontrol edebilirsiniz. Herhangi bir dosyayı alıyoruz, herhangi bir zip paketleyici ile paketliyoruz. Ortaya çıkan arşivi (.zip) CrypeDecode paketini açmaya çalışıyoruz. - Paket açma hatası alıyoruz. Ancak soru, tüm arşivi açma hatalarıyla ilgili bile değil, soru CryptDecode'un paketlenmiş bölümü zip arşivinden açabilmesi için nasıl yapılandırılacağıdır.
 
C-4 :
Paketleyici - 7zip, arşiv - zip. Diğer paketleyiciler aynı sonucu verir. Kendiniz kontrol edebilirsiniz. Herhangi bir dosyayı alıyoruz, herhangi bir zip paketleyici ile paketliyoruz. Ortaya çıkan arşivi (.zip) CrypeDecode paketini açmaya çalışıyoruz. - Paket açma hatası alıyoruz. Ancak soru, tüm arşivi açma hatalarıyla ilgili bile değil, soru CryptDecode'un paketlenmiş bölümü zip arşivinden açabilmesi için nasıl yapılandırılacağıdır.

:)

Dosyanız açılmıyor!

yapmak

 if ( handle != INVALID_HANDLE )
 
C-4 :
soru, CryptDecode'un bir zip arşivinden paketlenmiş bir bölümü açabilmesi için nasıl yapılandırılacağıdır.

yardımcı olabilir

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

Vasili!

Doğru yapmadın ama doğru da olmuyor :(

Beklenmeyen dahili hata:

 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 :

Vasili!

Doğru yapmadın ama doğru da çalışmıyor :(

doğru yaptım. Dosya ORTAK dizinde olması gerektiği için açılmıyor, benim için daha uygun.

[] anahtarının kaynağın boyutuyla eşleşmesi gerekmez.

sanyoooooook :

yardımcı olabilir

http://blog2k.ru/archives/3392

CryptDecode işlevinin sıkıştırılmış diziyi düzgün şekilde açacağına dair belgelere ve güvenceye sahip olmadığım sürece, bir Zip okuyucu sınıfı geliştirmeye yatırım yapamam. Bir zip dosyasının yapısıyla çalışmak önemsiz bir iştir. Standart zip paketinin paketlenmiş verilerinin CryptDecode() paketiyle neden eşleşmediğini tam olarak anlamak gerekir. Başka bir deyişle, iki dosyanın sarı bölümlerinin neden eşleşmediğini tam olarak anlamanız gerekir:

 

Ve CryptEncode() işlevini kullanarak bir ZIP oluşturmaya çalışın,

belki MQ, ZIP'ye benzer kendi şifreleme yöntemini kullanır

 
Mikalas :

Ve CryptEncode() işleviyle ZIP oluşturmaya çalışın,

belki MQ, ZIP'ye benzer kendi şifreleme yöntemini kullanır

işte tam da bunu yapıyor ve ardından normal bir arşivleyiciden sonra olanlarla karşılaştırıyor.
 
C-4 :

CryptDecode işlevinin sıkıştırılmış diziyi düzgün şekilde açacağına dair belgelere ve güvenceye sahip olmadığım sürece, bir Zip okuyucu sınıfı geliştirmeye yatırım yapamam. Bir zip dosyasının yapısıyla çalışmak önemsiz bir iştir. Standart zip paketinin paketlenmiş verilerinin CryptDecode() paketiyle neden eşleşmediğini tam olarak anlamak gerekir. Başka bir deyişle, iki dosyanın sarı bölümlerinin neden eşleşmediğini tam olarak anlamanız gerekir:

MQ'dan yanıt beklemek muhtemelen daha hızlı olacaktır)