Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ваd сектор, как сделать программно Ваd сектор на дис 
:(
    Опции темы
MuToGeN
Дата 5.12.2002, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Лесник
****


Профиль
Группа: Модератор
Сообщений: 4379
Регистрация: 15.8.2002
Где: Москва




Цитата(NightGoblin @ 05.12.2002, 07:56)
Ну, в определенной степени, можно... Наворотить шифровщик там такой, что без трассировки не разобраться :) Только, говорю - все равно же сломают, нет такой защиты, которую нельзя было бы взломать.

А про конкретные реализации - это лучше не ко мне %)

OK, в целом понял


--------------------
Three pings for the token rings,
Five pings for the UNIX machines,
Hundred pings for the broken links,
One special ping to check them all
Through Simple Network Management Protocol!
PM MAIL ICQ   Вверх
Chingachguk
Дата 5.12.2002, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




Цитата

Vit Дата сообщения: 04.12.2002,16:52
{skipped}
1) Специальным дисководом, который может прожигать лазером метки на диске (раньше я слышал о существовании таких)
2) Изменение кода программы для обхода проверки ключа - и это самый простой метод.


Ну я бы не назвал это "самым простым способом". Я бы просто подписал эмулятор такого чтения. Те резидент на int 13h (в принципе, его можно встроить в ломаемый экзешник) хватает это прерывание. Триггер такой:

Если (Читаем_Дискету) и (Точка_Вызова(сегмент) in [Выше Дос, меньше 0A000h);
Если записывается ОДИН сектор, то взводим флаг;
Если читается ОДИН сектор, то эмулируем "дефект" - корректируем буфер по es:bx.

Цитата

MuToGeN Дата сообщения: 05.12.2002,07:12
Quote (NightGoblin @ 05.12.2002,05:58)
с защитой от дизассемблирования и трассировки

а такое разве реально?


Есть много прикольных способов. Некоторые успешно работают против самых свежих отладчиков - таких, как Сайс. Например:

; Начало критичного кода
mov ebx,esp
mov esp,0
; Критичный код, не использующий стек и ebx
mov esp,ebx
; Конец критичного кода

Зануляя стековый пойнтер, вводим в транс отладчик, который пытается работать на стеке приложения и не может ;)
Эта фича срабатывает против очень многих ребят.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
Vit
Дата 5.12.2002, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago




Цитата(Chingachguk @ 05.12.2002, 01:09)
Цитата

Vit Дата сообщения: 04.12.2002,16:52
{skipped}
1) Специальным дисководом, который может прожигать лазером метки на диске (раньше я слышал о существовании таких)
2) Изменение кода программы для обхода проверки ключа - и это самый простой метод.


Ну я бы не назвал это "самым простым способом". Я бы просто подписал эмулятор такого чтения. Те резидент на int 13h (в принципе, его можно встроить в ломаемый экзешник) хватает это прерывание.

А что с диском можно работать только через int13? А если используются другие пути?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Chingachguk
Дата 6.12.2002, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1232
Регистрация: 25.3.2002
Где: Москва




Цитата

Vit Дата сообщения: 05.12.2002,15:44
А что с диском можно работать только через int13? А если используются другие пути?


Ну так ты сам это написал. Я думаю, вопрос про то, что можно ли выяснить как ты работаешь с дискетой - это не вопрос ;)

Далее. Какие пути есть еще (кроме int 13h, который, кстати, перестанет работать под nt) ?

1. int 25h/int 26h - досовые аналогичные функции, но они позволяют читать сектора активного раздела дос. Если сектор на дискете не из этого множества, то... Если да, то аналогично int 13h.

2. Вручную через порты контроллера. Я слышал много про такие проги, они все стали "не работать" под 98'ми, одну даже помогал править. Но не суть - речь о дос. Начиная с процов 386 в их есть так называемые аппаратные точки останова - DRx. Никто не помешает установить обработчик по доступу к порту ввода-вывода контроллера дискеты. Ничего не будет тормозить, ибо он будет активирован только на время со старта и до того момента, когда он сделает свое "черное дело".

Есть и другой вариант, который будет работать и под 8086. Насколько я понимаю, в программе не была предусмотрена защита от трассировки ? ;)

Тогда делаем вот что. Резидент сажаем уже на int 3 и включаем пошаговую трассировку, изучая команду за командой. Как только встречаем команды типа in/out, да еще в dx=адрес контроллера, то впадаем в глубокую неприязнь к их прямому назначению и подсовываем-таки опять то, что нужно ;) команды инициализации контроллера и чтения стандартизованы, так что проблем тута не будет.


--------------------
I don't like the drugs (but the drugs like me). M.Manson.
PM MAIL ICQ   Вверх
NightGoblin
Дата 6.12.2002, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1021
Регистрация: 24.11.2002
Где: 127.0.0.1




Цитата(Chingachguk @ 05.12.2002, 10:09)
; Начало критичного кода
mov ebx,esp
mov esp,0
; Критичный код, не использующий стек и ebx
mov esp,ebx
; Конец критичного кода

Гы, и все??? Я думал, куда сложнее будет... :) Просто никогда такими вещами в серьез не интересовался :satisfied


--------------------
Kernel panic: /dev/null overflow!
GCS/IT/MU/O d-@ s: a- C++$>++++$ ULSB(+++) P+++ L+++>++++ !E W++(-) N o? K w-- O? M>+ V? PS+ PE Y+ PGP+>+++ t- 5 X+ R- !tv b+ DI+ D+ G e++ h--- r++ y?
B4F1 54B6 8738 26CD 5125 0581 B923 9273 FE59 1981
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила раздела «Флейм»
Sneg0k

Добро пожаловать в «Флейм».

В разделе не действуют многие правила:

  • Можно оффтопить(умеренно)
  • Можно общаться на темы, не только связанные с программированием.

Строго запрещено:

  • Размещать рекламу
  • Обсуждать политику
  • Оскорблять друг-друга и переходить на личности
  • Наезжать, провоцировать других участников форума
  • Материться
  • Троллить

Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт.


Глас Винграда:


Глас Философии:


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Флейм | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.