Показать полную графическую версию : Как бы распаковать архив ...
natsgull
17-01-2008, 00:21
Есть вопрос задаваемый уже кучу раз, возможно ли взломать WinRaR пароль. Программы типа Advanced_RAR_Password_Recovery использующие метод грубого подбора это конечно надежно но можно и не дожить до результата, А ведь этот самый пароль где-то зашифрован в самом архиве правильно ? а раз так то его оттуда можно извлечь какимто дескриптором прошу помощи :)
А ведь этот самый пароль где-то зашифрован в самом архиве правильно ? »
Там только хеш (Hash) пароля (комбинация символов, полученная с помощью безвозвратных математических операций). Когда вводится пароль на открытие/извлечение генерируется хеч на введённый и сравнивается с тем, что есть в архиве.
CyberDaemon
17-01-2008, 08:39
Вообще ничего там не сравнивается. Он просто распаковывает архив, используя в качестве ключа введенный пароль, и, если пароль введен некорректно - получает мусор на выходе "Ошибка CRC в зашифрованном файле".
Если, конечно, винрар не старый - алгоритм шифрации в старых версиях был уязвим.
natsgull
17-01-2008, 11:01
ом ясно значит грубый подбор
А ведь этот самый пароль где-то зашифрован в самом архиве правильно »
Давай рассуждать логично, если бы его можно было так легко найти или ломануть, слоило бы его делать?! Овчинка выделки не стоит, в хеше хранится или генерируется ключ, который этот пароль шифрует, а потом дешифрует когда ты его вводишь, так что нужно искать ключ шифрующий пароль а это ещё хуже чем перебирать, ты ведь алгоритма расшифровки не знаешт?! То то и оно... Мой друг пытался справиться с такой проблемой, тоже считал что откроет *.rar в текстовом режиме и там где-то будет пароль, ага уже с блючечком с синей каёмочкой туда его выложили... Придумали переборщики, а больше ничего... Ну можешь попробовать создать архив "exe", с паролем а потом через OllyDbg, посмотреть куда оно идёт за паролем, какая функция то всё делает... ))))) Только...
natsgull, можно попытаться проследить с помощью дебагера SoftIce (OllyDbg для этого будет малопригоден) что и где пытается сравниваться, тут же можно вытащить алгоритм шифрования и сделать ломалку для запароленых архивов (кстати, так создаются кейгены. Сам алгоритм знать необязательно. Достаточно выдернуть кусок кода сравнения и/или генерации ключа, а запихнуть его в любую симпатичную обложку- задача для первокласника). Правда этого ещё ни у кого не получилось. Во всяком случае, я про такое не слышал. Заодно знать ассемблер на 5 с плюсом.
Уже была подобная тема http://forum.oszone.net/thread-83255.html
DillerInc
17-01-2008, 23:11
Что вы тут ещё придумываете с этими отладчиками и процедурами проверки...?
CyberDaemon дал вполне исчерпывающий ответ.WinRAR + пароль >20 символов оставляют один единственный вариант -- брутфорс -- который может продолжаться очень многие годы.
CyberDaemon и, если пароль введен некорректно - получает мусор на выходе
Что вы тут ещё придумываете с этими отладчиками и процедурами проверки...? » А вот возьми и объясни, каким образом и как ещё, можно определить некорректность пароля?
Это IMHO, хеш идёт в несколько уровней, т.е., определяется хеш хеша, если можно так сказать.
yurfed, когда я еще учился, то писал программу для шифрования. Она просто циклически перебирала байты пароля и складывала с байтами файла. Если при расшифровке вводился неправильный пароль, то она отрабатывала, но в файле получался "мусор". И пароль в файле нигде не был записан. Записать в файл CRC незашифрованного файла, после расшифровки сравнить CRC с записанным, вот вам и определение неправильного пароля.
Записать в файл CRC незашифрованного файла, после расшифровки сравнить CRC с записанным, вот вам и определение неправильного пароля. » Вот ты сам и сказал куда нужно было копать в твоей криптографии :) Достаточно усечь момент сравнения CRC и золотой ключик в кармане. Нужно подменить при сравнении ячейку/ячейки памяти (образно говоря) с неправильным CRC на тот, который правильный или правильную копировать в неправильную. После этого любой пароль окажется правильным. Для этого создаётся лоадер, который это и будет делать. Причём криптованный файл ни коим образом не модифицируется. Всё подмена происходит в памяти.
DillerInc
18-01-2008, 09:43
Достаточно усечь момент сравнения CRC и золотой ключик в кармане »
...помимо золотого ключика вы будете также иметь нерабочий файл,наполненный мусором.
Я к сожалению не обладаю сейчас точной информацией о реализации в WinRAR'е,но готов поверить CyberDaemon'у,что там ничего не сравнивается,ибо место сравнения является одной из наиболее критичных уязвимостей(достаточно обычно помянять пару байт,чтобы достичь нужного результата).Если бы подобная уязвимость была в WinRAR'е,то его бы вскрывали направо и налево.Однако этого не происходит.И единственное,что есть в наличии -- это программы типа Advanced_RAR_Password_Recovery.
...помимо золотого ключика вы будете также иметь нерабочий файл,наполненный мусором. » Отчего же? Распаковка с правильным CRC, это как раз то, что мы и добиваемся при помощи правильного пароля.
Если бы подобная уязвимость была в WinRAR'е, » Последний мой пост был про твой алгоритм защиты, когда ты "ещё учился".
Вообще, всё познаётся в сравнении. Тот же самый архив RAR должен иметь отправную точку, т.е., нужно с чем то сравнить. Другое дело что это организовано у него на высшем уровне.
Думаю вся инфа о пароле находится в первых 102 байтах (для версий 3+), заголовке архива. Именно такой размер получается при архивировании пустого (0 байт) файла. С добавлением пароля его длина увеличивается. При создании архива из однобайтного файла, пароль тот же, размер архива не увеличивается.
Это всего лишь мои догадки
yurfed, после шифрования размер архива действительно увеличивается. Но при увеличении пароля размер архива не изменяется. Объяснение увеличению архива есть в документации WinRAR - некоторые поля в заголовке присутствуют, только если файл зашифрован.
P.S. Посмотрите документацию по формату файла WinRAR.
CyberDaemon
18-01-2008, 12:33
Отчего же? Распаковка с правильным CRC, это как раз то, что мы и добиваемся при помощи правильного пароля. »
CRC нужна только для того, чтобы понять, что распаковался мусор и сообщить об этом (я вначале процитировал винрар ;) ). Если ты в момент сравнения контрольной суммы полученного с ожидаемым направишь программу по другой ветке (а для этого даже не надо подменять CRC - достаточно просто изменить оператор перехода на противоположный - типа вместо "Переход если ноль" установить "Переход если НЕ ноль" - один байт кода), то... Ну скажет тебе архиватор "Ок, я все распаковал, забирай", ну и заберешь ты мусор :)
Я не знаю алгоритм работы винрара. Я просто предположил, как это должно быть. Кстати, контрольная сумма архивированного файла хранится в заголовке. Легкое движение шестнадцатеричным редактором - и оп-па, правильный пароль уже не подходит :) Т.е. подходить-то он подходит, но РАР считает, что получил ерунду и ругается на ошибку.
Можно, конечно, ради интереса не дать рару стереть неверно расшифрованный файл и посмотреть, что там внутри - но смысла в этом никакого нет.
Да, винрар, прежде чем сказать, что пароль неверный, сначала распаковывает файл полностью. Вопрос: если пароль хранится в заголовке, то зачем распаковывать полностью гигабайтный файл? Из вредности? ;)
P.S. Посмотрите документацию по формату файла WinRAR. » Вот только документация от кого :)
а для этого даже не надо подменять CRC - достаточно просто изменить оператор перехода на противоположный - типа вместо "Переход если равно" установить "Переход если НЕ равно" » В сложных ситуациях нупить и джампить иногда не выходит. Поэтому и подставляем на выход памяти верный результат.
----------------
Пока не известен алгоритм работы WinRARa, вся эта наша болтовня не стоит "выеденого гроша :)".
CyberDaemon
18-01-2008, 14:12
Пока не известен алгоритм работы WinRARa, вся эта наша болтовня не стоит "выеденого гроша ". »
Ну исходники UnRAR открыты. Кто возьмется изучить и разобраться? Мне что-то лень :)
yurfed, Вот только документация от кого » При установке есть файлик TechNote.txt. Там конечно нету алгоритма архивации, но есть формат файла, и пароль там никоим образом не упоминается.
При установке есть файлик TechNote.txt. Там конечно нету алгоритма архивации... » А тогда весь смысл этой доки? Только коммандная строка и не более.
Ну исходники UnRAR открыты. » Какой версии?
CyberDaemon
18-01-2008, 15:36
yurfed, cейчас на оффсайте (http://www.rarlab.com/rar_add.htm) ссылка на UnRAR source (http://www.rarlab.com/rar/unrarsrc-3.7.8.tar.gz) версии 3.7.8
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.