При попытке подбора поролей в цикле функция 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); }
|
список исходников библиотеки и длл,либ файлы прилагаются. |