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

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

Sorun nedir?

CryptEncode() tarafından oluşturulan ZIP'nin kodu çözülürse, neyin yanlış olduğu açık değil mi?

 

MQ'nun kendi formatı var!

   string file_name = "GAZR-6.15.dat" ;
   uchar array[];
   uchar key[];
   uchar result[];
   int a_handle = FileOpen ( file_name, FILE_READ | FILE_BIN );
   if ( a_handle != INVALID_HANDLE )
   {
     uint array_size = FileReadArray ( a_handle, array );
     if ( array_size > 0 )
     {
       ArrayResize ( key, array_size );
       for ( int i = 0 ; i < int ( array_size ); i++ ) key[i] = 0 ;
       int a_enc = CryptEncode( CRYPT_ARCH_ZIP, array, key, result );
       int b_handle = FileOpen ( "test.zip" , FILE_WRITE | FILE_BIN );
       if ( b_handle != INVALID_HANDLE )
       {
         FileWriteArray ( b_handle, result );
         FileClose ( b_handle );
       }  
       FileClose ( a_handle );
     }  
   }
   
   
   
   
   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 ;
     //ArrayResize( result, array_size, array_size * 100 );
     
     ResetLastError ();
     int d = CryptDecode( CRYPT_ARCH_ZIP, array, key, result );
   
     if ( d < 1 )
     {
       Print ( GetLastError () );
     } 
   }

MQL5'ten bir arşiv oluşturursanız her şey çalışır

Ancak bu arşiv standart ZIP tarafından açılamaz!!!

 
Mikalas :

MQ'nun kendi formatı var!

MQL5'ten bir arşiv oluşturursanız her şey çalışır

Ancak bu arşiv standart ZIP ile açılamaz!!!

Michael, Alexander'ın gönderisini dikkatlice oku:

sanyoooooook :

Bir ZIP arşivi bütün bir yapıdır, işlev ise diziyi arşivler / sıkıştırır, yani. Sadece orada arşivden çıkarmaya hazır bir dizi koymanız gerekir.

Kabaca söylemek gerekirse, yalnızca arşivleme işlevinin çıktısında elde edilenleri açar.


Onlar. MQ'dan tescilli bir format yoktur. Sadece CryptEncode işlevinin size verdiği şey, zip arşivinin yalnızca bir parçasıdır, gerisini kendiniz oluşturmanız gerekir. Ancak sorun şu ki, standart zip arşivleyici ile CryptEncode arasındaki arşivlerin bölümleri bile eşleşmez.

Genel olarak pazartesiyi bekliyoruz. Bizde olmayan bilgiyi bize sadece MQ verebilir.

 
C-4 :

Michael, Alexander'ın gönderisini dikkatlice oku:


Onlar. MQ'dan tescilli bir format yoktur. Sadece CryptEncode işlevinin size verdiği, zip arşivinin yalnızca bir parçasıdır, gerisini kendiniz oluşturmanız gerekir. Ancak sorun şu ki, standart zip arşivleyici ile CryptEncode arasındaki arşivlerin bölümleri bile eşleşmez.

Genel olarak pazartesiyi bekliyoruz. Bizde olmayan bilgiyi bize sadece MQ verebilir.

Bu yüzden Başlığı atlayın ve yalnızca verileri okuyun!

Google = PKWare veri sıkıştırma kitaplığı başlığı

 
Mikalas :

Sorun nedir?

CryptEncode() tarafından oluşturulan ZIP'nin kodu çözülürse, neyin yanlış olduğu açık değil mi?

CryptoDecode'dan sonra elde edilen ile normal bir arşivleyiciden sonra elde edilenin yapısı farklıdır
 

Burada bazı deneyler yaptım:

Dosyada : Hızlı kahverengi tilki tembel köpeğin üzerinden atlar Hızlı kahverengi tilki tembel köpeğin üzerinden atlar

dosyada : Hızlı kahverengi tilki tembel köpeğin üzerinden atlar

dosyada: sdfgghjdfggfghjghghjk,g

 
MQ'nun kendi çıktı yapısına sahip olduğu ortaya çıktı.
 

Vasili!

MQL5, başlık olmadan ZIP oluşturur!

Buna göre, okurken atlamayın.

Google = PKWare veri sıkıştırma kitaplığı başlığı

http://en.wikipedia.org/wiki/Zip_(file_format)

MQ'nun yalnızca bir sıkıştırma yöntemi vardır, bu nedenle

ZIP farklı bir yöntemle ise, paketini açamazsınız.

Yani, tüm ZIP arşivleri sizin için mevcut olmayacak!

 
sanyooooook :
MQ'nun kendi çıktı yapısına sahip olduğu ortaya çıktı.

"Kendisi" olamaz, aksi takdirde ZIP ile hiçbir ilgisi yoktur.

Paketlenmiş veri yapıları sıkıştırma derecesine bağlı olarak farklılık gösterecektir, farklı olamazlar. Bu nedenle, CryptDecode bir şekilde belirli sıkıştırma oranını ve diğer gerekli parametreleri tanımlayan bir anahtar tarafından kontrol edilmelidir. Anahtarın nasıl doğru şekilde yapılandırılacağını yalnızca MQ bilir.

Mikalas :

Vasili!

MQL5, başlık olmadan ZIP oluşturur!

Michael, neden bahsettiğimi anlamalısın. Sorun başlıkta veya dosya biçiminde değil. İpliği dikkatlice okuyun.

 
C-4 :

"Kendisi" olamaz, aksi takdirde ZIP ile hiçbir ilgisi yoktur.

Paketlenmiş veri yapıları sıkıştırma derecesine bağlı olarak farklılık gösterecektir, farklı olamazlar. Bu nedenle, CryptDecode bir şekilde belirli sıkıştırma oranını ve diğer parametreleri tanımlayan bir anahtar tarafından kontrol edilmelidir. Anahtarın nasıl doğru şekilde yapılandırılacağını yalnızca MQ bilir.

Michael, neden bahsettiğimi anlamalısın. Sorun başlıkta veya dosya biçiminde değil. İpliği dikkatlice okuyun.

Ardından tam olarak ne istediğinizi belirtin.

Konunuzun başında kod var.

Arşivi bütünüyle okuyorsunuz ve başlıkla birlikte onu deşifre etmeye çalışıyorsunuz!

Standart bir paketleyici tarafından oluşturulan herhangi bir ZIP arşivinin bir HEADER'ı vardır!

MQL5 paket açıcı, .

Bu nedenle, verileri paketinden çıkaramazsınız.

Açıklayın:

İlk etapta neye ihtiyacınız var?