Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как узнать присутствует ли пароль на rar или zip архиве?

Ответить
Настройки темы
[решено] Как узнать присутствует ли пароль на rar или zip архиве?

Аватара для NORIO

Новый участник


Сообщения: 42
Благодарности: 1

Профиль | Отправить PM | Цитировать


Есть несколько тысяч архивов в форматах zip и rar. Нужно наиболее быстрым способом узнать запаролен ли каждый архив. Как это сделать?

Отправлено: 18:48, 26-03-2009

 

Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Я бы воспользовался Касперским. Он пропускает запароленные архивы. Или нужно именно на AutoIt?

Отправлено: 18:57, 26-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для NORIO

Новый участник


Сообщения: 42
Благодарности: 1

Профиль | Отправить PM | Цитировать


Coutty,
Мне нужно получить список таких архивов, если на autoit это неполучится, то я не против и других способов, главное что бы они работали без вмешательства пользователя, что бы процесс не приостанавивался если меня не будет за компом.

Отправлено: 19:18, 26-03-2009 | #3


Аватара для proxy

Старожил


Сообщения: 460
Благодарности: 152

Профиль | Отправить PM | Цитировать


для rar-а легко: Свойства файла (архива) > вкладка Архив > строчка Пароли: (она же [CLASS:Static; INSTANCE:21])

для zip-а то же самое: [CLASS:Static; INSTANCE:21]

у меня в ОС установлен WinRar,
но, думаю, и без него все свойства вкладки "Арихв" будут точно такие же.

Как вариант:
1. получить список архивов в папке
2. открыть папку с архивом и выбрать файл:
Код: Выделить весь код
Run('Explorer.exe /select,' & 'полный путь к файлу')
3. открыть свойства: банально высталть ALT+Enter
4. перейти на 3-ю вкладку
5. прочитать данные из: [CLASS:Static; INSTANCE:21]
6. закрыть свойства, закрыть папку архива
7. повторить с пункта 2 для следующих архивов

-------
Мысли-читатель сломался, может подробней расскажите?
А где исходный код? Или мы стихи обсуждаем?! )) Настройки темы > Решено ?


Отправлено: 19:33, 26-03-2009 | #4


Аватара для NORIO

Новый участник


Сообщения: 42
Благодарности: 1

Профиль | Отправить PM | Цитировать


proxy спасибо за решение, и Coutty спасибо за отзывчивость.
Нашёл более удобное решение проблемы -- прогу "Encryption Analyzer" которая ищет разные запароленные файлы.
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:02, 27-03-2009 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить 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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Как узнать присутствует ли пароль на rar или zip архиве?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Упаковка/распаковка файлов 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




 
Переход