Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2010, 22:29   #1
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию Загрузка программы на асме grub-ом

Если программу, написанную на асме добавить в меню boot.ini, то она будет запускаться без windows. А вот с помощью grub (или чем-нибудь подобным) ее загрузить можно? (хочется так сделать, интересно ведь!)
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 16.11.2010, 00:16   #2
SnX
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 114
По умолчанию

Цитата:
Если программу, написанную на асме добавить в меню boot.ini, то она будет запускаться без windows.
Во-первых, смотря как написана и откомпилирована, во-вторых - нет, хотябы потому, что boot.ini используется ntldr`ом и логично, что
Цитата:
запускаться без windows
не получится. Да к тому же boot.ini вообще для подобного не предназначен.

Цитата:
А вот с помощью grub (или чем-нибудь подобным) ее загрузить можно? (хочется так сделать, интересно ведь!)
Я честно говоря не знаю как устроен grub, но сомневаюсь, он все же заточен под загрузчики операционок.
И опять же, все зависит от того, как написана и откомпилирована программа.

Если так хочется поиграться с бутсектором и запуском совсем уж нативных программ, то юзайте виртуалки или на крайний случай загрузочные дискетки и флешки.
SnX вне форума Ответить с цитированием
Старый 16.11.2010, 21:08   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

grubом теоретически можно. Ничего не мешает создать образ загрузочной дискеты или ЦД и прикрутить к грубу. Я так много чего прикручивал, когда делал загрузочную флешку. Но вопрос - Зачем? Как сказал SnX, лучше и удобней использовать виртуалки.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 16.11.2010, 21:29   #4
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

Цитата:
не получится. Да к тому же boot.ini вообще для подобного не предназначен.
Получится =) Берём и добавляем строку типа C:\123.com="An asm program" и перезагружаемся. Работает.
Цитата:
Я так много чего прикручивал, когда делал загрузочную флешку.
А можно подробнее? Наверное, по тому же принципу "прикручивается" своя прога.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Старый 17.11.2010, 10:16   #5
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Цитата:
А можно подробнее? Наверное, по тому же принципу "прикручивается" своя прога.
При помощи программы grub4dos залил загрузчик на флешку. Как это сделать без проблем находится гуглом.
А затем правил конфиг груба примерно до такого вида:
menu.lst
Код:
color black/cyan yellow/cyan
timeout 10
default 0

title Disk C:
map (hd1) (hd0)
map --hook
rootnoverify (hd0,0)
chainloader +1

title Windows Key Enterprise Edition 8.3.2867
root (hd0,0)
chainloader (hd0,0)/$WIN_03$.~BT/SETUPLDR.BIN

title Acronis DiskDirector 10.2.169 and TrueImageHome 12.0.9769
map --mem (hd0,0)/IMAGE/acronisMedia.iso (hd32)
map --hook
chainloader (hd32)

title Acronis Disk Director Suite 10.0 (2.169) 
find --set-root /IMAGE/add_krn.dat
kernel (hd0,0)/IMAGE/add_krn.dat vga=788 ramdisk_size=28672 acpi=off quiet 
initrd (hd0,0)/IMAGE/add_ram.dat

title Acronis TrueImage Home 11.0 (8.059)
find --set-root /IMAGE/ti11_krn.dat
kernel (hd0,0)/IMAGE/ti11_krn.dat vga=788 ramdisk_size=28672 acpi=off quiet 
initrd (hd0,0)/IMAGE/ti11_ram.dat

title Samboot Bootable Disk 1.2
map --mem (hd0,0)/IMAGE/samboot_bootable_disk.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Victoria v3.52 Rus
map --mem (hd0,0)/IMAGE/Victoria.IMA (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title Memtest86+ v4.0
map --mem (hd0,0)/IMAGE/memtest86.iso (hd32)
map --hook
chainloader (hd32)


#use the following for reference, uncomment(#) and change as needed

#title Start Vista, find and load bootmgr
#find --set-root /bootmgr
#chainloader /bootmgr

#title find and boot Linux with menu.lst already installed
#find --set-root /sbin/init
#configfile /boot/grub/menu.lst

#title SystemRescueCd-0.4.x from hard-disk
#root (hd0,0)
#kernel /rescuecd init=/linuxrc cdroot=/dev/sda1 setkmap=us
#initrd /rescuecd.igz

#title Puppy Linux on HD0
#root (hd0,0)
#kernel /puppy/vmlinuz root=/dev/rd/0 pmedia=usbflash
#initrd /puppy/initrd.gz


#title Start Recovery Console of Windows NT/2K/XP
#find --set-root /cmldr
#chainloader /cmldr
#####################################################################
# write string "cmdcons" to memory 0000:7C03 in 2 steps:
#####################################################################
### step 1. Write 4 chars "cmdc" at 0000:7C03
#write 0x7C03 0x63646D63
### step 2. Write 3 chars "ons" and an ending null at 0000:7C07
#write 0x7C07 0x00736E6F

#title Start Acronis True Image/Disk Director from ISO loaded in memory
#map --mem (hd0,0)/acronismedia.iso (hd32)
#map --hook
#chainloader (hd32)

#title Start Acronis True Image/Disk Director from ISO
##ISO file must be contiguous on disk in this case, use Sysinternals contig.exe
#map (hd0,0)/acronismedia.iso (hd32)
#map --hook
#chainloader (hd32)

#title Start MemTest from floppy image on second hard disk/third partition
##image file can be gzipped, i.e. memtest.img.gz
#map --mem (hd1,2)/memtest.img (fd0)
#map --hook
#chainloader (fd0)+1
#rootnoverify (fd0)

#title Chainload the bootsector at third partition, fifth hard disk
#chainloader (hd4,2)+1

#title Start Windows XP if it's on second hard disk
##ntldr/ntdetect.com won't start if are not on first disk, first active partition, thus the mapping
#map (hd1) (hd0)
#map --hook
#rootnoverify (hd0,0)
#chainloader /ntldr

#title find and load IO.SYS of Windows 9x/Me/DOS
#find --set-root /io.sys
#chainloader /io.sys

title Alkid live CD
find --set-root --ignore-cd /usbdrive.tag
chainloader /ntldr

#title Acronis TrueImage Home 11.0
#root (hd0,0)
#kernel /kernels/isolinux.bin /kernels/ti11_krn.dat ramdisk_size=32768 vga=791 acpi=on quiet initrd=/kernels/ti11_ram.dat /s

#title Acronis Disk Director Server 10.0
#root (hd0,0)
#kernel /kernels/isolinux.bin /kernels/add_krn.dat ramdisk_size=32768 vga=791 acpi=on quiet initrd=/kernels/add_ram.dat /s

#title Memtest86+ 4.00, test for memory
#root (hd0,0)
#chainloader /kernels/memtest86.iso


title Start PLoP boot manager\nYou may want to try it if your computer boots from USB slowly.\nOnce booted,select USB from its menu to load USB 2.0 drivers.\nPlease report any issues to its author - www.plop.at
find --set-root --ignore-cd /usbdrive.tag
kernel /plpbt.bin



title Windows XP/2000/2003 Setup
map --unmap=0:0xff
map --unhook
savedefault
find --set-root --ignore-cd /usbdrive.tag
configfile /winsetup.lst

title REBOOT
reboot

title Shutdown PC
строки типа:
map --mem (hd0,0)/IMAGE/samboot_bootable_disk.ima (fd0)
map --mem (hd0,0)/IMAGE/Victoria.IMA (fd0)
запускают образы дискет
а строка
chainloader (hd0,0)/$WIN_03$.~BT/SETUPLDR.BIN
загружает бинарник в память и выполняет.
Для более подробной информации нужно читать документацию.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 17.11.2010, 18:46   #6
SnX
Форумчанин
 
Регистрация: 30.10.2009
Сообщений: 114
По умолчанию

Цитата:
Получится =) Берём и добавляем строку типа C:\123.com="An asm program" и перезагружаемся. Работает.
Не знаю, не проверял, но
Цитата:
...boot.ini используется ntldr`ом...
и поэтому
Цитата:
запускаться без windows.
в привычном понимании тут неполучится.
SnX вне форума Ответить с цитированием
Старый 17.11.2010, 23:14   #7
Олвин
Экспериментатор
Форумчанин
 
Аватар для Олвин
 
Регистрация: 16.04.2008
Сообщений: 218
По умолчанию

alexcoder, спасибо, как раз был нужен подобный листинг, найти не мог.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
Олвин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Локализация программы и Delphi(DLL Resources Wizzard) загрузка перевода. Человек_Борща Общие вопросы Delphi 2 22.09.2010 19:19
Grub после переустановки виндоус. JustFox Windows 2 17.01.2010 14:17
Grub 1.97 jojahti Операционные системы общие вопросы 0 12.12.2009 16:36
Загрузка чистой программы с flash AJlxuMuk Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 12.10.2009 01:03
Загрузка программ из др. программ в АСМе Shacal Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 7 05.02.2007 08:53