|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как узнать присутствует ли пароль на rar или zip архиве? |
|
[решено] Как узнать присутствует ли пароль на rar или zip архиве?
|
Новый участник Сообщения: 42 |
Есть несколько тысяч архивов в форматах zip и rar. Нужно наиболее быстрым способом узнать запаролен ли каждый архив. Как это сделать?
|
|
Отправлено: 18:48, 26-03-2009 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Я бы воспользовался Касперским. Он пропускает запароленные архивы. Или нужно именно на AutoIt?
|
Отправлено: 18:57, 26-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать Coutty,
Мне нужно получить список таких архивов, если на autoit это неполучится, то я не против и других способов, главное что бы они работали без вмешательства пользователя, что бы процесс не приостанавивался если меня не будет за компом. |
Отправлено: 19:18, 26-03-2009 | #3 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать для rar-а легко: Свойства файла (архива) > вкладка Архив > строчка Пароли: (она же [CLASS:Static; INSTANCE:21])
для zip-а то же самое: [CLASS:Static; INSTANCE:21] у меня в ОС установлен WinRar, но, думаю, и без него все свойства вкладки "Арихв" будут точно такие же. Как вариант: 1. получить список архивов в папке 2. открыть папку с архивом и выбрать файл: 3. открыть свойства: банально высталть ALT+Enter 4. перейти на 3-ю вкладку 5. прочитать данные из: [CLASS:Static; INSTANCE:21] 6. закрыть свойства, закрыть папку архива 7. повторить с пункта 2 для следующих архивов ![]() |
------- Отправлено: 19:33, 26-03-2009 | #4 |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать proxy спасибо за решение, и Coutty спасибо за отзывчивость.
Нашёл более удобное решение проблемы -- прогу "Encryption Analyzer" которая ищет разные запароленные файлы. |
|
Отправлено: 03:02, 27-03-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать для чтения инфы из RAR-файлов можно использовать UnRar.dll с оффсайта:
#include <Array.au3> #include <File.au3> $sRoot = "D:\" ; Каталог с архивами, оконечный слэш обязателен $aFilesAll = _FileListToArray($sRoot,"*.rar",1) Dim $aFilesPwd[1], $aFiles[1] For $i=1 To $aFilesAll[0] If _RarIsEncrypt($sRoot & $aFilesAll[$i]) Then $aFilesPwd[0]+=1 ReDim $aFilesPwd[$aFilesPwd[0]+1] $aFilesPwd[$aFilesPwd[0]] = $sRoot & $aFilesAll[$i] Else $aFiles[0]+=1 ReDim $aFiles[$aFiles[0]+1] $aFiles[$aFiles[0]] = $sRoot & $aFilesAll[$i] EndIf Next _ArrayDisplay($aFiles, "Список незашифрованных архивов") _ArrayDisplay($aFilesPwd, "Список зашифрованных архивов") Func _RarIsEncrypt($sFile) Local $hDll = DllOpen(@ProgramFilesDir &"\WinRAR\unrar.dll") If $hDll=-1 Then Return SetError(1, 0, True) Local Const $ERAR_END_ARCHIVE = 10 Local Const $ERAR_UNKNOWN = 21 Local Const $tzRAROpenArchiveData = "ptr pArcName;uint OpenMode;uint OpenResult;ptr pCmtBuf;uint CmtBufSize;uint CmtSize;uint CmtState" Local Const $tzRARHeaderData = "char ArcName[260];char FileName[260];uint Flags;uint PackSize;uint UnpSize;uint HostOS;uint FileCRC;uint FileTime;uint UnpVer;uint Method;uint FileAttr;ptr pCmtBuf;uint CmtBufSize;uint CmtSize;uint CmtState" Local $iFile = StringLen($sFile), $aRAR, $aRet, $iRes = False Local $tRAROpenArchiveData = DllStructCreate($tzRAROpenArchiveData) Local $pRAROpenArchiveData = DllStructGetPtr($tRAROpenArchiveData) Local $tRARHeaderData = DllStructCreate($tzRARHeaderData) Local $pRARHeaderData = DllStructGetPtr($tRARHeaderData) Local $tArcName = DllStructCreate("char ArcName["& $iFile+1 &"]") Local $pArcName = DllStructGetPtr($tArcName) DllStructSetData($tArcName, "ArcName", $sFile) DllStructSetData($tRAROpenArchiveData, "pArcName", $pArcName) $aRAR = DllCall($hDll, "hwnd", "RAROpenArchive", "ptr", $pRAROpenArchiveData) If $aRAR[0]=0 Then DllClose($hDll) Return SetError(2, DllStructGetData($tRAROpenArchiveData,"OpenResult"), True) EndIf $aRet = DllCall($hDll, "int", "RARReadHeader", "hwnd", $aRAR[0], "ptr", $pRARHeaderData) While $aRet[0]<>$ERAR_END_ARCHIVE If ($aRet[0]=$ERAR_UNKNOWN) Or BitAND(0x04, DllStructGetData($tRARHeaderData,"Flags")) Then $iRes = True ExitLoop EndIf $aRet = DllCall($hDll, "int", "RARReadHeader", "hwnd", $aRAR[0], "ptr", $pRARHeaderData) WEnd DllCall($hDll, "int", "RARCloseArchive", "hwnd", $aRAR[0]) DllClose($hDll) Return $iRes EndFunc |
Отправлено: 06:43, 27-03-2009 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Упаковка/распаковка файлов rar, zip, удалённо!? | 8Toxa8 | Хочу все знать | 3 | 22-12-2009 14:14 | |
[решено] Вирус зашифровал doc,xls,rar,zip,jpeg,jpg,psd | gamber | Лечение систем от вредоносных программ | 3 | 05-11-2009 16:49 | |
CMD/BAT - [решено] Как экспортировать запись из реестра в RAR или ZIP запароленный архив? | ofcoss | Скриптовые языки администрирования Windows | 10 | 18-07-2009 09:45 | |
[решено] Пароль на архиве | Sirkomurko | Хочу все знать | 3 | 24-03-2007 14:00 |
|