Русский / Russian English / Английский

Сейчас на форуме: Zaxar90800 (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Крэки, обсуждения —› Обход защиты Дос программы.
Посл.ответ Сообщение

Ранг: 0.3 (гость)
Статус: Участник

Создано: 14 июня 2008 20:56 · Поправил: sppol New!
Цитата · Личное сообщение · #1

Есть учебная Dos-программа которая строит графики по определенным функциям. При запуске требует ввести пароль зависящий от кода процессора, который показан там же.Была запакована PKLite пока я её не распаковал CUP 386, оказалось написана на Borland C.
Дизассемблировал IDA pro. Обнаружил текстовые строки с приветствием о вводе пароля ("введите свой пароль")... дальше пока никак.
Подскажите, как можно извлеч пароль или вообще исключить его проверку.
п.с. Распакованный и исходный файлы прилагаю.

{ Атач доступен только для участников форума } - DK.rar

Ранг: 186.8 (ветеран)
Статус: Участник

Создано: 16 июня 2008 19:26 New!
Цитата · Личное сообщение · #2

seg015:0108 cmp si, 3
seg015:010B jl loc_108D3
seg015:010D
seg015:010D loc_1091D: ; CODE XREF: sub_10817+FEj
seg015:010D cmp word_2F33A, 0
seg015:0112 jz loc_10928

Нопим оба джампа и решаем задачки.

Ранг: 0.3 (гость)
Статус: Участник

Создано: 16 июня 2008 19:49 New!
Цитата · Личное сообщение · #3

Огромное спасибо! Всё получилось! Но как вы нашли эти условные переходы? Очень хотелось разобраться бы самому..

Ранг: 186.8 (ветеран)
Статус: Участник

Создано: 16 июня 2008 21:39 · Поправил: MoonShiner New!
Цитата · Личное сообщение · #4

dseg:3138 aVvediteSvoiPar db 'Введите свой пароль^3:',0
Как можно видеть, строка находится в сегменте данных по смещению 3138h. Явных ссылок на нее нет, значит можно попробовать поиск ворда в коде. Alt+B, вбиваем 3138, ставим галку в Hex, жмем Ok. Попадаем сюда:
seg015:04B2 loc_10CC2: ; CODE XREF: sub_10C9B+20
seg015:04B2 mov ax, 3138h
Проходим по адресу sub_10C9B+20, попадаем сюда:
seg015:04AB jz loc_10CC2
Пролистываем выше и видим начало функции. Делаем предположение, что эта функция и требует ввод пароля. Ее начало:
seg015:048B sub_10C9B proc far ; CODE XREF: sub_10817+CA
Пройдя по адресу sub_10817+CA выходим на:
seg015:00D1 call sub_10C9B
Проанализировав код выше, видим, что прыгаем на код, в котором потом осуществляется обязательный вызов функции регистрации, из этого места:
seg015:010B jl loc_108D3
Нопим этот джамп, ниче хорошего не происходит. Видно, что функция вернет или 1, или 0. Сейчас она возвращает 0. Чтобы возвращала 1, достаточно занопить второй джамп. При проверке все прокатывает.

ЗЫ Можно все сделать грамотнее и точнее, но мне было влом ковыряться. Я это объяснение в несколько раз дольше писал.

Ранг: 0.3 (гость)
Статус: Участник

Создано: 17 июня 2008 15:04 New!
Цитата · Личное сообщение · #5

Еще раз спасибо! Буду разбираться.
 eXeL@B —› Крэки, обсуждения —› Обход защиты Дос программы.

Видеокурс ВЗЛОМ