![]() |
|
Модераторы: LSD |
![]()
|
|
| vernon |
|
|||
|
Unregistered |
Мне необходимо, чтобы система ( MS-DOS и Windы) не могла бы читать определенный сектор на дискете. Как это можно сделать, подскажите пожалуйста?
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Дыроколом, шилом и т.п. инструментами
-------------------- 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 |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва |
уж не вирус ли пишешь?? нехорошо...
программно можно вообще убить весь винт... но работает только с очень старыми винтами. делается методом опускания гололвок на блины, когда те вертятся. -------------------- 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! |
|||
|
||||
| vernon |
|
|||
|
Unregistered |
Нет не вирус, мне просто нужно создать КОПИЮ ЛИЦЕНЗИОННОЙ ДИСКЕТЫ. А у оригинала один сектор не читается. Повторяю нужно создать bad сектор у ДИСКЕТЫ, а не ЖЕСТКОГО ДИСКА |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва |
с дискетой такого не сделаешь
-------------------- 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! |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Без специального оборудования такое не сделаешь.
-------------------- 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 |
|||
|
||||
| Sun |
|
|||
|
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 |
Можно пометить сектора как BAD при помощи Norton Disk Doctor (или Edit?). Но в качестве защиты дискеты это слишком наивный способ. Существует куча утилит - потрековых копировщиков, которые создают точный образ диска.
Так что не советую даже тратить свое время на защиту такого рода. Придумай что-то оригинальнее. -------------------- Account removed |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 |
Да почему не сделать - можно, в FAT'е помечается соответствующий сектор как 0FF7h - и DOS в него лазить не будет. Только это действительно хиловатая защита
-------------------- 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 |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
Это только если кретины защиту делали такое пройдёт, обычно в этих случаях читают не через int21, а через int13 и ему по фиг что там в FAT написано, он конкретный сектор читает. Я когда-то очень давно (лет 10 назад) делал защиту - форматировал дискетту обычным форматом, затем дыроколом делал дырку, затем делал карту чтения диска и находил сектор который читался на "половину" - первые например 100 байт всегда читаются, а последние 100 байт сектора никогда не читаются, а между ними - чтение не устойчивое. Теперь в проге сначала прописываем сектор какими-нибудь значениями, затем читаем их, если например 5й байт читается правильно, а 500й неправильно - то всё в порядке, а если читаются оба или не читаются оба то ключ не подходит. Скопировать такую дискетту очень сложно - проверял, ни одна программа не в состоянии сделать дубликат такой дискетты, так как надо физически нарушить чтение половины сектора, а это нельзя сделать ввиду того что сектор BIOS всегда читается целиком. Сама дискетта не содержит никакой записанной ключевой информации, так что никакое даже самое точное копирование не помогает. Обычно такого типа защиты снимаются 2мя способами: 1) Специальным дисководом, который может прожигать лазером метки на диске (раньше я слышал о существовании таких) 2) Изменение кода программы для обхода проверки ключа - и это самый простой метод. -------------------- 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 |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 |
Да уж, пожалуй что -------------------- 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 |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва |
а такое разве реально? -------------------- 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! |
|||
|
||||
| NightGoblin |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 |
дык, делают же вроде -------------------- 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 |
||||
|
|||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 |
Токо все равно, конечно, рано или поздно сломают... Если не средние хацкеры, так спецы займутся
-------------------- 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 |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва |
а как именно делают - не в курсе? ИМХО от дезассембляции защититься - какой-то UNREAL -------------------- 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! |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 |
Ну, в определенной степени, можно... Наворотить шифровщик там такой, что без трассировки не разобраться
А про конкретные реализации - это лучше не ко мне %) -------------------- 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 |
|||
|
||||
| MuToGeN |
|
|||
![]() Лесник ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4379 Регистрация: 15.8.2002 Где: Москва |
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! |
|||
|
||||
| Chingachguk |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Ну я бы не назвал это "самым простым способом". Я бы просто подписал эмулятор такого чтения. Те резидент на int 13h (в принципе, его можно встроить в ломаемый экзешник) хватает это прерывание. Триггер такой: Если (Читаем_Дискету) и (Точка_Вызова(сегмент) in [Выше Дос, меньше 0A000h); Если записывается ОДИН сектор, то взводим флаг; Если читается ОДИН сектор, то эмулируем "дефект" - корректируем буфер по es:bx.
Есть много прикольных способов. Некоторые успешно работают против самых свежих отладчиков - таких, как Сайс. Например: ; Начало критичного кода mov ebx,esp mov esp,0 ; Критичный код, не использующий стек и ebx mov esp,ebx ; Конец критичного кода Зануляя стековый пойнтер, вводим в транс отладчик, который пытается работать на стеке приложения и не может ;) Эта фича срабатывает против очень многих ребят. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||
|
|||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago |
А что с диском можно работать только через 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 |
||||
|
|||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Ну так ты сам это написал. Я думаю, вопрос про то, что можно ли выяснить как ты работаешь с дискетой - это не вопрос ;) Далее. Какие пути есть еще (кроме 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. |
|||
|
||||
| NightGoblin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1021 Регистрация: 24.11.2002 Где: 127.0.0.1 |
Гы, и все -------------------- 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 |
|||
|
||||
![]()
|
| Правила раздела «Флейм» | |
|
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Флейм | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |