Можно ли сделать subj под Винду? Plz, бросьте исходник под Win или DOS или тыкните в ссылку. Нашел немного, сейчас разбираюсь, но еще бы исходников...
мать честная, я прочел сейчас столько ламерских и левых статей по форматировани/защите, что наверно поглупел Нихрена найти не могу
Нестандартное форматирование копируется при помощи ФДА. Измерение "профиля" дорожки (пару недель назад был топик) очень неудобно на практике. А вот элементарней обычной "дырки" еще ничего не придумано - аккуратненько царапаешь дискету, определяешь координаты сбойного сектора и зашиваешь эти координаты в свою прогу. Конечно, можно и дырку воспроизвести, и прогу твою обмануть/ломануть, но по соотношению "затраты на создание"/"затраты на копирование" этот способ лучший с огромным преимуществом.
Есть книжка по этому делу... В ней исходники на Це под DOS как раз по нестандартному форматированию одной дорожки. Если устроит могу засканировать исходник.
К контроллеру дисковода обращаться напрямую, через порты. Процедуры чтения-записи очень простые, команд по 30, причем не обязательно ведь юзать DMA. Если лениво писать свои дрова для доступа к портам из нуля, и для универсальности доступа (чтобы и в W95/98/ME, и в NT/2000/XP), юзай tvichw32. Проще просто некуда. И прпи этом средний хакер попотеет (не очень долго, но попотеет), ломаючи.
SteelRat кинь пожалуйста, если не трудно. iamlamer>Процедуры чтения-записи очень простые, команд по 30 Ну дайте мне хоть один пример или ссылку!
нашел я пример для ламеров Code (Text): .MODEL tiny .DATA ; Буфер, в который будет прочитан сектор диска buf db 512 dup(?) .CODE .STARTUP mov ch, 00h ; номер дорожки mov cl, 01h ; номер сектора mov dh, 00h ; номер головки (стороны диска) mov dl, 00h ; номер НГМД, соответсвует ; устройству А: ; Готовим адрес буфера в ES:BX mov ax, cs mov es, ax mov bx, OFFSET buf ; Готовим код функции mov ah, 02h ; код функции - чтение сектора mov al, 01h ; читаем 1 сектор ; Вызываем прерывание int 13h .EXIT 0 END Вопрос: как записывать при помощи этого 13h прерывания и форматировать дорожку? И как это заставить работать не делая досовский exe'шник?
Попробуй открыть диск и дать ему команду IOCTL_DISK_FORMAT_TRACKS_EX, туда передается Code (Text): typedef struct _FORMAT_EX_PARAMETERS { MEDIA_TYPE MediaType; ULONG StartCylinderNumber; ULONG EndCylinderNumber; ULONG StartHeadNumber; ULONG EndHeadNumber; USHORT FormatGapLength; USHORT SectorsPerTrack; USHORT SectorNumber[1]; } FORMAT_EX_PARAMETERS, *PFORMAT_EX_PARAMETERS; Обрати внимание там есть StartCylinderNumber и EndCylinderNumber Может чем поможет
Ребята, через INt13 в виндах - не прокатит. Держи сканы из старой и редкой книжки В.П. Скляров. Применение ПЭВМ. Организация и управление ресурсами ПЭВМ. - М.: Высшая школа, 1992. Правда это под ДОС и через ПДП, но не через int13, а через порты. Можно переделать. Кроме того, поище в Интернете описание контроллера FDD, например, по ключевым словам MSR+DOR+DR (это сокращения команд контроллера). Например, вот неплохо: http://www.mega-tokyo.com/forum/index.php?action=printpage;board =1;threadid=5585
SteelRat спасибо, попробую. Я попробовал сделать код выше под винду, ну и она (XP)не переваривает mov es, ax и int 13h, падает. Как это исправить (драйвер? или еще что) и будет ли это проще, чем разобраться в DeviceIoControl.
Тема программирования FDD была хорошо раскрыта в книжке Спесивцева "Защита информации в персональных ЭВМ". Там ключевым дискетам было уделено немало внимания. Вообще книжка интересная, хоть и 92-го года, например, есть описание алгоритмов шифрования, рассмотрена некоторая интересная антиотладка (типа "безумного" кода) и др. Найти ее наверное непросто, но возможно она есть где и в отсканеном виде (благо не шибко толстая была).
_BC_ Вот она то у меня где-то лежит... Никак не найду Там под DOS, используется кажется int 13h Сегодня ещё поищу...
исходник для программирования FDD через порты есть, это прога Max'а из темы про защиту дискет/flash раньше. Правда я половину уже сделал через int 13h в dos'е, сейчас думаю переделывать или нет.