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

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

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

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

Создано: 15 мая 2005 20:22 New!
Цитата · Личное сообщение · #1

Задача: есть DOS программа, хранящая пароль на вход в файле на диске. При загрузке программы она читает его из файла, расшифровывает и сравнивает с введеным.
Внимание, вопрос: как отловить расшифрованный пароль DOS программы SoftICE ом?

Примечание. Решил заняться защитой&взломом. DOS прогу писал я сам, теперь хочу исследовать, как просто ее взломать, но инфы по взлому DOS программ не могу найти!

Исходный текст процедуры логининга DOS приложения на Pascal, но без шифрации:



procedure login;
label 1;
var
pss: text;
password,passwordff: string;
trigger: integer;
begin
setscreen;
gotoxy(17,10);
write('Wellcome! Plase, enter password...');
trigger:=1;
1:
assign(pss,'password.db');
reset(pss);
textbackground(10);
gotoxy(27,11);
write(' ');
gotoxy(27,11);
If trigger=4 then begin
close(pss);
HALT;
end;
readln(password);
readln(pss,passwordff);
textbackground(blue);
If password=passwordff then begin
gotoxy(20,20);
textcolor(10+blink);
write('Password is correct. Press Enter key...');
read(password);
close(pss);
main_menu;
end
else begin
gotoxy(20,20);
textcolor(red+blink);
Write('Password is not correct. Retry again.');
trigger:=trigger+1;
textcolor(white);
goto 1;
end;
end;

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

Создано: 16 мая 2005 13:25 New!
Цитата · Личное сообщение · #2

Лови на чтение из файла (функции 21h-го прерывания, RTFM). Далее, находишь функцию дешифровки псле твоей и все. В данном случае ничего сложного... Также, ИМХО, в паскале довольно просто (если ничего не путаю, давно было) ловить функции сравнения строк, они там специфический вид имеют.

Ранг: 79.6 (постоянный)
Статус: Участник

Создано: 16 мая 2005 17:17 New!
Цитата · Личное сообщение · #3

под досом имхо проще юзать деглюк а не айс а ловить можно ввод с клавы.

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

Создано: 21 мая 2005 00:05 New!
Цитата · Личное сообщение · #4

Можно воспользоваться и не софтайсом а тем же стареньким турбодебагером, входящим в комплект любого новенького тасма, кроме того софтайс позволяет загружать и 16-разрядные модули. Нужно просто посмотреть, что есть ещё в папках установки софтайса. Папка Util16 как раз для таких целей. А на счет перехвата дос прерывания это чушь, - заводится виртуальная машина и прервания для каждого процесса свои, и поставив точку останова, она будет срабатывать бесконечно, и не там где нужно. Не забывайте, что ввод осуществляется в буфер, который в дос прогах статичен, вбив несколько символов заведомо известных, находим местоположение буфера спомощью поиска, далее ставим точку останова на чтение или чтение-запись памяти... ну а там мы как раз окажемся возле процедуры расшифровки или зашифровки... И ещё одно примечание... Проверка паролей никогда не проводится расшифровкой - это снижает безопасность. Намного практичнее зашифровать введённый пароль и сравнить с его зашифрованым видом где либо записыным.


Ранг: 1288.1 (!!!!)
Статус: Участник

Создано: 21 мая 2005 00:16 New!
Цитата · Личное сообщение · #5

ULiX пишет:
А на счет перехвата дос прерывания это чушь, - заводится виртуальная машина и прервания для каждого процесса свои

Хмм, 21h - это системное досовское прерывание, в каком смысле - для каждого процесса прерывания будут свои? MoonShiner довольно четко объяснил ход действий. Доку по прерываниям ДОС и вперед.

Ранг: 192.3 (ветеран)
Статус: Участник
stoned machine-gunner

Создано: 21 мая 2005 01:53 New!
Цитата · Личное сообщение · #6

ULiX пишет:
Проверка паролей никогда не проводится расшифровкой - это снижает безопасность. Намного практичнее зашифровать введённый пароль и сравнить с его зашифрованым видом где либо записыным.

Таким же макаром можно расшифровать закриптованные жестко прописанные серийники и всё будет пучком.
Я даже скажу, что твой способ менее безопасен, чем расшифровка введённого серийника, т.к. в крайнем случае твои закриптованные жестко прописанные серийники можно легко поменять на свои.
А вот код расшифровки/проверки можно обработать морфингом например и предётся попотеть чтобы его вкурить, конечно если нестандартное алго заюзано или хорошо модифицированное.

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

Создано: 21 мая 2005 18:27 · Поправил: ULiX New!
Цитата · Личное сообщение · #7

gloom
id128 пишет:
Задача: есть DOS программа, хранящая пароль на вход в файле на диске.

Так что мешает мне посмотреть пароль в файле на диске?
Не знаю уж как лучше хранить пароль в этом случае

readln(password);
readln(pss,passwordff);
--- после этого действия пароль уже у тебя в руках.
If password=passwordff then begin ... ппп
 eXeL@B —› Крэки, обсуждения —› Кто умеет взламывать DOS программы?

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