Войти

Показать полную графическую версию : Как бы распаковать архив ...


natsgull
17-01-2008, 00:21
Есть вопрос задаваемый уже кучу раз, возможно ли взломать WinRaR пароль. Программы типа Advanced_RAR_Password_Recovery использующие метод грубого подбора это конечно надежно но можно и не дожить до результата, А ведь этот самый пароль где-то зашифрован в самом архиве правильно ? а раз так то его оттуда можно извлечь какимто дескриптором прошу помощи :)

Admiral
17-01-2008, 00:35
А ведь этот самый пароль где-то зашифрован в самом архиве правильно ? »
Там только хеш (Hash) пароля (комбинация символов, полученная с помощью безвозвратных математических операций). Когда вводится пароль на открытие/извлечение генерируется хеч на введённый и сравнивается с тем, что есть в архиве.

CyberDaemon
17-01-2008, 08:39
Вообще ничего там не сравнивается. Он просто распаковывает архив, используя в качестве ключа введенный пароль, и, если пароль введен некорректно - получает мусор на выходе "Ошибка CRC в зашифрованном файле".
Если, конечно, винрар не старый - алгоритм шифрации в старых версиях был уязвим.

natsgull
17-01-2008, 11:01
ом ясно значит грубый подбор

Drongo
17-01-2008, 20:29
А ведь этот самый пароль где-то зашифрован в самом архиве правильно »
Давай рассуждать логично, если бы его можно было так легко найти или ломануть, слоило бы его делать?! Овчинка выделки не стоит, в хеше хранится или генерируется ключ, который этот пароль шифрует, а потом дешифрует когда ты его вводишь, так что нужно искать ключ шифрующий пароль а это ещё хуже чем перебирать, ты ведь алгоритма расшифровки не знаешт?! То то и оно... Мой друг пытался справиться с такой проблемой, тоже считал что откроет *.rar в текстовом режиме и там где-то будет пароль, ага уже с блючечком с синей каёмочкой туда его выложили... Придумали переборщики, а больше ничего... Ну можешь попробовать создать архив "exe", с паролем а потом через OllyDbg, посмотреть куда оно идёт за паролем, какая функция то всё делает... ))))) Только...

yurfed
17-01-2008, 20:55
natsgull, можно попытаться проследить с помощью дебагера SoftIce (OllyDbg для этого будет малопригоден) что и где пытается сравниваться, тут же можно вытащить алгоритм шифрования и сделать ломалку для запароленых архивов (кстати, так создаются кейгены. Сам алгоритм знать необязательно. Достаточно выдернуть кусок кода сравнения и/или генерации ключа, а запихнуть его в любую симпатичную обложку- задача для первокласника). Правда этого ещё ни у кого не получилось. Во всяком случае, я про такое не слышал. Заодно знать ассемблер на 5 с плюсом.
Уже была подобная тема http://forum.oszone.net/thread-83255.html

DillerInc
17-01-2008, 23:11
Что вы тут ещё придумываете с этими отладчиками и процедурами проверки...?
CyberDaemon дал вполне исчерпывающий ответ.WinRAR + пароль >20 символов оставляют один единственный вариант -- брутфорс -- который может продолжаться очень многие годы.

yurfed
17-01-2008, 23:45
CyberDaemon и, если пароль введен некорректно - получает мусор на выходе
Что вы тут ещё придумываете с этими отладчиками и процедурами проверки...? » А вот возьми и объясни, каким образом и как ещё, можно определить некорректность пароля?

Это IMHO, хеш идёт в несколько уровней, т.е., определяется хеш хеша, если можно так сказать.

DedAlex
18-01-2008, 01:35
yurfed, когда я еще учился, то писал программу для шифрования. Она просто циклически перебирала байты пароля и складывала с байтами файла. Если при расшифровке вводился неправильный пароль, то она отрабатывала, но в файле получался "мусор". И пароль в файле нигде не был записан. Записать в файл CRC незашифрованного файла, после расшифровки сравнить CRC с записанным, вот вам и определение неправильного пароля.

yurfed
18-01-2008, 08:51
Записать в файл CRC незашифрованного файла, после расшифровки сравнить CRC с записанным, вот вам и определение неправильного пароля. » Вот ты сам и сказал куда нужно было копать в твоей криптографии :) Достаточно усечь момент сравнения CRC и золотой ключик в кармане. Нужно подменить при сравнении ячейку/ячейки памяти (образно говоря) с неправильным CRC на тот, который правильный или правильную копировать в неправильную. После этого любой пароль окажется правильным. Для этого создаётся лоадер, который это и будет делать. Причём криптованный файл ни коим образом не модифицируется. Всё подмена происходит в памяти.

DillerInc
18-01-2008, 09:43
Достаточно усечь момент сравнения CRC и золотой ключик в кармане »
...помимо золотого ключика вы будете также иметь нерабочий файл,наполненный мусором.

Я к сожалению не обладаю сейчас точной информацией о реализации в WinRAR'е,но готов поверить CyberDaemon'у,что там ничего не сравнивается,ибо место сравнения является одной из наиболее критичных уязвимостей(достаточно обычно помянять пару байт,чтобы достичь нужного результата).Если бы подобная уязвимость была в WinRAR'е,то его бы вскрывали направо и налево.Однако этого не происходит.И единственное,что есть в наличии -- это программы типа Advanced_RAR_Password_Recovery.

yurfed
18-01-2008, 10:16
...помимо золотого ключика вы будете также иметь нерабочий файл,наполненный мусором. » Отчего же? Распаковка с правильным CRC, это как раз то, что мы и добиваемся при помощи правильного пароля.
Если бы подобная уязвимость была в WinRAR'е, » Последний мой пост был про твой алгоритм защиты, когда ты "ещё учился".
Вообще, всё познаётся в сравнении. Тот же самый архив RAR должен иметь отправную точку, т.е., нужно с чем то сравнить. Другое дело что это организовано у него на высшем уровне.
Думаю вся инфа о пароле находится в первых 102 байтах (для версий 3+), заголовке архива. Именно такой размер получается при архивировании пустого (0 байт) файла. С добавлением пароля его длина увеличивается. При создании архива из однобайтного файла, пароль тот же, размер архива не увеличивается.
Это всего лишь мои догадки

DedAlex
18-01-2008, 11:48
yurfed, после шифрования размер архива действительно увеличивается. Но при увеличении пароля размер архива не изменяется. Объяснение увеличению архива есть в документации WinRAR - некоторые поля в заголовке присутствуют, только если файл зашифрован.

P.S. Посмотрите документацию по формату файла WinRAR.

CyberDaemon
18-01-2008, 12:33
Отчего же? Распаковка с правильным CRC, это как раз то, что мы и добиваемся при помощи правильного пароля. »
CRC нужна только для того, чтобы понять, что распаковался мусор и сообщить об этом (я вначале процитировал винрар ;) ). Если ты в момент сравнения контрольной суммы полученного с ожидаемым направишь программу по другой ветке (а для этого даже не надо подменять CRC - достаточно просто изменить оператор перехода на противоположный - типа вместо "Переход если ноль" установить "Переход если НЕ ноль" - один байт кода), то... Ну скажет тебе архиватор "Ок, я все распаковал, забирай", ну и заберешь ты мусор :)
Я не знаю алгоритм работы винрара. Я просто предположил, как это должно быть. Кстати, контрольная сумма архивированного файла хранится в заголовке. Легкое движение шестнадцатеричным редактором - и оп-па, правильный пароль уже не подходит :) Т.е. подходить-то он подходит, но РАР считает, что получил ерунду и ругается на ошибку.
Можно, конечно, ради интереса не дать рару стереть неверно расшифрованный файл и посмотреть, что там внутри - но смысла в этом никакого нет.
Да, винрар, прежде чем сказать, что пароль неверный, сначала распаковывает файл полностью. Вопрос: если пароль хранится в заголовке, то зачем распаковывать полностью гигабайтный файл? Из вредности? ;)

yurfed
18-01-2008, 12:53
P.S. Посмотрите документацию по формату файла WinRAR. » Вот только документация от кого :)
а для этого даже не надо подменять CRC - достаточно просто изменить оператор перехода на противоположный - типа вместо "Переход если равно" установить "Переход если НЕ равно" » В сложных ситуациях нупить и джампить иногда не выходит. Поэтому и подставляем на выход памяти верный результат.
----------------
Пока не известен алгоритм работы WinRARa, вся эта наша болтовня не стоит "выеденого гроша :)".

CyberDaemon
18-01-2008, 14:12
Пока не известен алгоритм работы WinRARa, вся эта наша болтовня не стоит "выеденого гроша ". »
Ну исходники UnRAR открыты. Кто возьмется изучить и разобраться? Мне что-то лень :)

DedAlex
18-01-2008, 14:25
yurfed, Вот только документация от кого » При установке есть файлик TechNote.txt. Там конечно нету алгоритма архивации, но есть формат файла, и пароль там никоим образом не упоминается.

yurfed
18-01-2008, 15:15
При установке есть файлик 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