Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > глюк с unrar.dll


Автор: Syberex 4.9.2008, 08:59
При попытке подбора поролей в цикле функция RARProcessFile после прохода равное количеству файлов в архиве возвращает CRC Access, приходится закрывать архив и открывать снова, тогда всё работает. Как обнулить счётчик функции  RARProcessFile, без закрытия архива?
Код

void PasswordFind(char *ArcName)
    {
      HANDLE hArcData;
      int RHCode,PFCode;
      char CmtBuf[16384];
      struct RARHeaderData HeaderData;
      struct RAROpenArchiveDataEx OpenArchiveData;
       //Инициализируем память под структуру
      memset(&OpenArchiveData,0,sizeof(OpenArchiveData));
       //Заполняем структуру
      OpenArchiveData.ArcName=ArcName;
      OpenArchiveData.CmtBuf=CmtBuf;
      OpenArchiveData.CmtBufSize=sizeof(CmtBuf);
      OpenArchiveData.OpenMode=RAR_TEST;      //RAR_TEST;    //RAR_EXTRACT

      hArcData=RAROpenArchiveEx(&OpenArchiveData);
      HeaderData.CmtBuf=NULL;
      RHCode=RARReadHeader(hArcData,&HeaderData);
    
      for( int i=400;i<600;i++)
      {

        RARSetPassword(hArcData, AnsiString(i).c_str());
        PFCode=RARProcessFile(hArcData,RAR_TEST,NULL,NULL);

        if(PFCode==0)
                         {
          frmCRC32->mem1->Lines->Add(AnsiString("Password is : ")+AnsiString(i));
         break;
         }
    
      }
       RARCloseArchive(hArcData);
          
    }



список исходников библиотеки и длл,либ файлы прилагаются.

Автор: Alca 4.9.2008, 16:16
И в чем была проблема? Расскажи как решил.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)