LogoHome   >>   Reverse   >>   Gamine

"Девушка с характером"

Как утверждает еврейская пословица, "О гору не спотыкаются".

В поисках какого-либо приличного по размеру корпуса русского текста для теста,
вспомнил про "Большой Энциклопедический Словарь" - порядка 25 мегабайт. Как
водится, скачивал я его несколько раз из разных мест и по разным поводам, и
первое, что попалось под руку, оказалось собственно словарем (в текстовом
формате) с какой-то кривой оболочкой на Delphi - с большими кнопками.

Рука уже потянулась к F8 - отправить ее в Рай для программ, но зацепился взглядом за файлики в служебной директории: Directory of \data\page 11.11.2012 00:41 <DIR> . 11.11.2012 00:41 <DIR> .. 03.02.2001 05:54 60 365 010.cd 03.02.2001 05:55 99 827 020.cd 03.02.2001 05:55 195 016 030.cd 03.02.2001 05:55 126 023 040.cd 03.02.2001 05:55 162 607 050.cd 03.02.2001 05:55 10 905 060.cd 03.02.2001 05:55 28 991 080.cd 03.02.2001 05:55 166 215 090.cd 03.02.2001 05:56 114 192 100.cd 03.02.2001 05:56 1 572 110.cd 03.02.2001 05:56 234 194 120.cd 03.02.2001 05:56 70 085 130.cd 03.02.2001 05:56 146 468 140.cd 03.02.2001 05:56 259 866 150.cd 03.02.2001 05:57 282 054 160.cd 03.02.2001 05:57 657 258 170.cd 03.02.2001 05:57 178 353 180.cd 03.02.2001 05:57 341 580 190.cd 03.02.2001 05:57 123 319 200.cd 03.02.2001 05:58 98 588 210.cd 03.02.2001 05:58 68 384 220.cd 03.02.2001 05:58 43 643 230.cd 03.02.2001 05:58 24 085 240.cd 03.02.2001 05:58 44 130 250.cd 03.02.2001 05:58 51 324 260.cd 03.02.2001 05:59 6 727 270.cd 03.02.2001 05:59 58 792 310.cd 03.02.2001 05:59 5 671 320.cd 03.02.2001 05:59 12 256 330.cd 04.02.2001 07:52 2 607 sokr.cd 30 File(s) 3 675 097 bytes 2 Dir(s) 57 184 563 200 bytes free Как оказалось, за расширением .cd прятался обычный запароленный ZIP. И хотя все, что мне было нужно, я уже нашел, любопытство взяло вверх и я запустил программу подбора паролей к ZIP-архивам. Когда быстренько прожевав короткие - до шести символов - пароли она всерьез задумалась над семибуквенными, я понял, что ребята постарались и перебор не поможет. Ну, что ж. Схема шифрования ZIP общеизвестна, потрачу еще несколько минут и подсмотрю пароль в отладчике - судя по задумчивости программы при старте, именно в этот момент она и занимается распаковкой. Для начала, выясняем, по какому смещению находится сам алго шифрования:
Загружаем программу в IDA и запускаем отладчик. Гм. Опрометчиво. Возможно, отладчик IDA - наихудший выбор из возможных, но дело представлялось мне таким пустяковым, что я даже не задумался об ошибке.
Устанавливаем брэйк на том месте, где в криптомашину передается парольная фраза, запускаем программу и через несколько секунд наслаждаемся видом пароля в рамочке редактора: "123456789".
Чего, собственно, и следовало ожидать от Delphi-программеров. Закрываю отладчик, захожу в директорию с запароленными файлами, запускаю Rar - Oops! - ошибка контрольной суммы. Ввожу пароль еще раз, вдумчиво - ошибка контрольной суммы. И тут меня клинит. Старательно, одним пальцем, набиваю пароль в третий раз, дважды перечитываю и нажимаю <ENTER> - ошибка контрольной суммы! Когнитивный диссонанс... Моей уверенности в себе, в архиваторе Rar и в методах взлома паролей к программам на Delphi нанесен сокрушительный удар. Поглядев, напоследок, с тоской на монитор со зловещей надписью: "Wrong password or data error.", отправляюсь пить чай. Перерыв, как обычно, помогает. Мне приходит в голову свежая мысль, что я забыл проверить размер передаваемой строки. Может у них там бинарный нуль или еще что..., кто знает этих пакостников. Возвращаюсь к отладчику. Размер вычисляется строчкой ниже.
Невероятно! Размер - двадцать (0x14). Так, смотрим адрес в EAX - 00DD04CC. Бегом туда. Shit! В действительности, полный двадцатисимвольный (за 100 лет не перебрать) пароль выглядит так: "12345678900987654321". IDA просто обрезала его при показе под размер окошка тултипа. Засранка... И я, как последний ламер, об это споткнулся... А в запароленных архивах оказался старый и на каждом углу в инете валяющийся орфографический словарь Лопатина, который у меня уже и без того был в двух изданиях двумя вариантами - с ударениями и без.

© Gazlan 2012 * gazlan@yandex.ru

Hit Counter