Сейчас на форуме: yashechka (+5 невидимых)

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

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

Создано: 15 мая 2005 20:22
· Личное сообщение · #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 (ветеран)
Активность: 0.040
Статус: Участник

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

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



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

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

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

-----
power and the money money and the power




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

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

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




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

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

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

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



Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

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

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

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

-----
once you have tried it, you will never want anything else




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

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

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

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

readln(password);
readln(pss,passwordff);
--- после этого действия пароль уже у тебя в руках.
If password=passwordff then begin ... ппп


 eXeL@B —› Крэки, обсуждения —› Кто умеет взламывать DOS программы?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати