Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод программы без операционной системы, При загрузке компа 
V
    Опции темы
Guedda
Дата 3.2.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Делаю программу. Она располагается на дискете. Как мне сделать что-то типа boot-загрузчика, т.е. сначала загружается моя программа, я в ней что-то делаю, и тогда только загружается винда (конечно, если стоит First-Boot: FLOPPY). Что мне нужно присобачить к программе, какой код вписать, какие дрова положить?
Мне необходимо в программе работать с клавиатурой и COM-портом (что-то типа лицензионного ключа).

В общем, подскажите дельными советами.

Заранее благодарен,
Guedda


Это сообщение отредактировал(а) Snowy - 3.2.2006, 18:15


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Snowy
Дата 3.2.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: нет
Всего: 484



На паскале никак.
Как Delphi построен на WinAPI, так паскаль основан на прерываниях DOS.
Без DOS работать не сможет.
Такой загрузчик можно только на асме написать.
Добавлено @ 15:27
Причем на 286-м асме. 386 и выше уже не поддерживается загрузчиком.
PM MAIL   Вверх
Guedda
Дата 3.2.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



А если вставки ассемблерные применить?
Никак?

Как же делают такие загрузчики?

Это сообщение отредактировал(а) Guedda - 3.2.2006, 15:28


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Snowy
Дата 3.2.2006, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: нет
Всего: 484



Нет, никак.
паскалевский ехе уже на уровне инициализации использует обращения к DOS.
Даже еще до того, как начинает выполняться непосредственно код программы.
Так что даже пустой exe запускаться не станет.
Добавлено @ 15:30
Цитата(Guedda @ 3.2.2006, 15:28 Найти цитируемый пост)
Как же делают такие загрузчики?

На асме. Или как минимум на асме подготавливают среду.
Но с паскалем не получится - он требует полноценный DOS.

PM MAIL   Вверх
Guedda
Дата 3.2.2006, 15:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Извини, конечно, за оффтоп, но есть такой вопрос:
А на Delphi ConsoleApp можно сделать?
Я, в принципе, на нем тоже могу написать эту программку...


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Snowy
Дата 3.2.2006, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: нет
Всего: 484



Цитата(Guedda @ 3.2.2006, 15:32 Найти цитируемый пост)
А на Delphi ConsoleApp можно сделать?

Конечно. Только она требует винду. Всегда.
Без нее работать не станет.
Delphi делает только win32 executable.
А такие файлы работают только под Win32.
PM MAIL   Вверх
Guedda
Дата 3.2.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Спасибо smile


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
Snowy
Дата 3.2.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: нет
Всего: 484



Да, и кроме всего прочего, загрузчик должен быть com файлом, а не exe.
PM MAIL   Вверх
Albinos_x
Дата 3.2.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: нет
Всего: 108



ну можно сделать DOS дискету записать туда прогу и прописать Autoexec.bat... и будет всё работать...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
DemoCode
Дата 3.2.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 41



Или linux + программа на FreePascal например


--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
rsm
Дата 3.2.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 62



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

mov ah,0
int 16h
;
cmp al,0Dh ; Enter?
je ...

* на Паскале, как тут уже правильно сказали, ничего не напишешь потому, что нужен простой бинарный файл с полученным при компиляции машинным кодом. Однако не все потеряно - берем FASM и компилим.
* полученный файл нужно записать в MBR дискеты. Я лично произвел бы сие действие путем copy-paste посредством программы WinHEX.
* а вот что делать после того, как программа из MBR отработает, т.е. как передать управление на MBR винта - вот тут я не знаю что сказать.
Вообще, рекомендую скачать исходники ДОСа или еще лучше какой-нибудь ОСи, написанной чисто для растяжки пальцев.

Кстати, постом выше высказана хорошая мысль по использованию дискеты с ДОСом. Оно будет проще в реализации (можно будет заюзать какой-нить древний Turbo Pascal, умеющий делать ДОСовые приложения). Но будет ли смысл? Насколько я понял, есть большое и сильное желание сделать нечто типа защиты по ключевой дискете как у некоторых версий ABBYY Lingvo, но еще пониже уровнем (чтоб работало без ОСи)?

Еще плюс сцылка в тему.

Это сообщение отредактировал(а) rsm - 3.2.2006, 18:20
PM MAIL   Вверх
Guedda
Дата 3.2.2006, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: нет
Всего: 78



Да. Хочу сделать защиту компа... Защиту на вход при загрузке виндуса уже сделал... А теперь и floppy ключом хочу сделать...


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
rsm
Дата 3.2.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 62



Цитата(Guedda @ 3.2.2006, 21:53 Найти цитируемый пост)
Защиту на вход при загрузке виндуса уже сделал...

Весьма интересно было бы взглянуть.

Цитата(Guedda @ 3.2.2006, 21:53 Найти цитируемый пост)
А теперь и floppy ключом хочу сделать...

У материнок MSI есть фирменная фишка - защита USB-донглом D-Bracket (вроде так).

Помнится, в давние времена достаточно простой в реализации была защита ключевой дискетой на основе нечитаемых секторов. Суть следующая: дискета под завязку забивается некоторыми произвольными данными. После чего магнитной поверхности наносятся физические повреждения (иголкой например). Далее, дискета читается посекторно и составляется уникальная для этой дискеты карта нечитаемых (поврежденных) секторов. При индентификации производится случайное чтение N'цати секторов, после чего проводится сравнение с сохраненной ранее картой. Если совпадает 90 и более %, дискета считатся идентифицированной. Подделать саму дискету невозможно, но можно переписать карту нечитаемых секторов в программе идентификации. Хотя есть идеи, как можно сделать подделку карты секторов невозможной.

Это сообщение отредактировал(а) rsm - 3.2.2006, 23:28
PM MAIL   Вверх
Bodro
Дата 4.2.2006, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 27.1.2006
Где: Россия, г. Рязань

Репутация: нет
Всего: 4



Всё верно (это я про сообщение rsm-а о загрузке) - необходимо написать прогу на асме, в которм использовать, работу с портами и BIOS-прерывания. Никаких INT 21h!!!
Просто набор команд.
Размер полученного файла не должен превышать 512 байт (имеется ввиду размер первоначального загрузчика - потом можно импользовать технологию bootstrup). После записать полученный файл в BOOT-сектор дискеты. Сделать это можно или в ручную (WinHEX, например) или написать прогу, которая содержала бы в себе hex-код этого самого загрузчика и при работе создавала бы загрузочную дискету (переписывала бы код загрузчика в BOOT-сектор дискеты). Такую прогу пиши хоть на Pascal. И неплохо было бы, чтобы эта прога сама бы ещё форматировала дискету, а затем уж записывала бы туда загрузчик.
А для того, чтобы после этого загрузить винду, необходимо из MBR активного харда считать загрузчик по адресу 0000h-01BDh и переписать его в память 7C00:0000. Затем передать туда управление.

Пока не пробовал, но разбирался с этим и думаю, что всё должно работать. В теории, вроде, всё правильно. Сейчас как раз пишу загрузчик для Linux'а.

PM MAIL WWW ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

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

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


 




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


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

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