![]() |
|
Модераторы: bsa |
![]()
|
|
| geek2600 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 19.11.2006 Репутация: нет Всего: 1 |
Здравствуйте.
Недавно я столкнулся с проблемой реализации подбора паролей к RAR f\архивам. Соответсвенно вопрос:работал ли кто нибудь с UnRAR.DLL? Вот я достал код , но на DELPHI: {$APPTYPE CONSOLE} type tArchiveData=record ArcName:pchar; OpenMode:cardinal; OpenResult:cardinal; CmtBuf:pchar; CmtBufSize:cardinal; CmtSize:cardinal; CmtState:cardinal; end; pArchiveData=^tArchiveData; tHeaderData=record ArcName:array [1..260] of char; FileName:array [1..260] of char; Flags:cardinal; PackSize:cardinal; UnpSize:cardinal; HostOS:cardinal; FileCRC:cardinal; FileTime:cardinal; UnpVer:cardinal; Method:cardinal; FileAttr:cardinal; CmtBuf:pchar; CmtBufSize:cardinal; CmtSize:cardinal; CmtState:cardinal; end; pHeaderData=^tHeaderData; function RARGetDllVersion:integer;stdcall;external 'unrar.dll'; function RAROpenArchive(ArchiveData:pArchiveData):THandle;stdcall;external 'unrar.dll'; function RARCloseArchive(hArcData:THandle):integer;stdcall;external 'unrar.dll'; procedure RARSetPassword(hArcData:THandle;Password:pchar);stdcall;external 'unrar.dll'; function RARReadHeader(hArcData:THandle;HeaderData:pHeaderData):Integer;stdcall;external 'unrar.dll'; function RARProcessFile(hArcData:THandle;Operation:integer;DestPath:pchar; DestName:pchar):integer;stdcall;external 'unrar.dll'; var RAR_DLL_VERSION:integer; RAR_ARCHIVE_DATA:tArchiveData; RAR_HEADER_DATA:tHeaderData; RAR_ARCHIVE_HANDLE:THandle; PACKAGE_NAME:string; FROM_PWD,TO_PWD:cardinal; procedure DoError(ErrMessage:string); begin writeln(ErrMessage); halt; end; function TryPassword(pwd:string):boolean; begin pwd:=pwd+#0; RAR_ARCHIVE_HANDLE:=RAROpenArchive(@RAR_ARCHIVE_DATA); RARSetPassword(RAR_ARCHIVE_HANDLE,@pwd[1]); RARReadHeader(RAR_ARCHIVE_HANDLE,@RAR_HEADER_DATA); TryPassword:=(RARProcessFile(RAR_ARCHIVE_HANDLE,1,nil,nil)=0); RARCloseArchive(RAR_ARCHIVE_HANDLE); end; procedure Init; var lpwd:longint; spwd:string; z:boolean; begin with RAR_ARCHIVE_DATA do begin ArcName:=@PACKAGE_NAME[1]; OpenMode:=1; CmtBuf:=NIL; CmtBufSize:=0; CmtSize:=0; end; RAR_DLL_VERSION:=RARGetDllVersion; writeln('Version of "unrar.dll" is ',RAR_DLL_VERSION,'.'); write('Press any key to begin...'); readln; //begin of cracking algoritm writeln('---> Cracking...'); for lpwd:=FROM_PWD to TO_PWD do begin str(lpwd,spwd); write('Trying "'+spwd+'"...'); z:=TryPassword(spwd); writeln(z); if z then break; end; //end of cracking algoritm if z then writeln('---> CRACKED!!! PASSWORD="'+spwd+'".') else writeln('---> Password not found.'); end; procedure Main; var ECode:integer; begin writeln('RAR cracker, coded by xz249.'); if paramcount<3 then DoError('Usage: RC.EXE <filename> <from pwd> <to pwd>.'); PACKAGE_NAME:=paramstr(1)+#0; val(paramstr(2),FROM_PWD,ECode); if ECode<>0 then DoError('Usage: RC.EXE <filename> <from pwd> <to pwd>.'); val(paramstr(3),TO_PWD,ECode); if ECode<>0 then DoError('Usage: RC.EXE <filename> <from pwd> <to pwd>.'); Init; end; begin Main; end. Если кто может помогите с реализацией этого кода на C++. Заранее благодарен. С уважением geek2600. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
||||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
geek2600 рекомендую перед тем как что-то писать взять ручку, бумагу, и прикинуть временные затраты на это... прочитайте про алгоритм, там чет около 250 тыс AES256 подряд примененных (если я не путаю с чем)..... в общем 50 паролей в секунду на современных машинах это "круто" ....
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |