Discussion:
дозагрузочное
(слишком старое сообщение для ответа)
Nickita A Startcev
2006-07-06 14:31:48 UTC
Permalink
Привет, All !


Подменяю MBR своим кодом.
Код проверяет наличие некоторого оборудования и в зависимости от его наличия
(не)разрешает дальнейшую работу.
все регистры (кроме CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
восстанавливаю, передаю управление оригинальному МБР, загрузив его по
оригинальному адресу (0:7c00). Оригинальный МБР запускает бутсектор, бутсектор
пускает ntloader.
ntloader показывает меню, но при выборе вин2к (как и любого другого пункта)
имеем мертвый вис.

Что я мог запортить кроме регистров процессора? Какого фига оно виснет так
поздно?

. С уважением, Hикита.
... "Hравственность по версии ВОЗ"
Ilya Anfimov
2006-07-06 16:58:12 UTC
Permalink
2006-07-06,
Post by Nickita A Startcev
Привет, All !
Подменяю MBR своим кодом.
Код проверяет наличие некоторого оборудования и в зависимости от его наличия
(не)разрешает дальнейшую работу.
все регистры (кроме CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
восстанавливаю, передаю управление оригинальному МБР, загрузив его по
оригинальному адресу (0:7c00). Оригинальный МБР запускает бутсектор, бутсектор
пускает ntloader.
ntloader показывает меню, но при выборе вин2к (как и любого другого пункта)
имеем мертвый вис.
Что я мог запортить кроме регистров процессора? Какого фига оно виснет так
поздно?
Область параметров BIOS? Таблицу прерываний? Кстати, а почему
не сохраняете SS:ESP?
Igor Krassikov
2006-07-07 14:54:00 UTC
Permalink
Hello Nickita!
18:31 06 Jul 06, Nickita A Startcev -> All:

NS> Что я мог запортить кроме регистров процессора? Какого фига оно виснет так
NS> поздно?

Бредовый вопрос - а partition table на месте?

Best regards.
Igor
Nickita A Startcev
2006-07-10 05:29:34 UTC
Permalink
Привет, Igor !


07 Jul 06 , 19:54 Igor Krassikov писал к Nickita A Startcev:


NS>> Что я мог запортить кроме регистров процессора? Какого фига оно
NS>> виснет так поздно?

IK> Бредовый вопрос - а partition table на месте?

Да. и на диске и в памяти по нужному адресу оно есть.
Кстати, LILO и GRUB работают нормально, w2k под вмварью тоже нормально, а вот
w2k+ntloader на реальной машине вешаются.

. С уважением, Hикита.
... А в этом доме тот же самый Али-Баба живет, или другой?
Vladimir Zaitsev
2006-07-07 04:03:46 UTC
Permalink
Пpивет, Nickita!

Давеча 06 Jul 06, писал Nickita A Startcev для All:

NS> Подменяю MBR своим кодом.
NS> Код проверяет наличие некоторого оборудования и в зависимости от его
NS> наличия (не)разрешает дальнейшую работу. все регистры (кроме
NS> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
NS> восстанавливаю, передаю управление оригинальному МБР, загрузив его по
NS> оригинальному адресу (0:7c00). Оригинальный МБР запускает бутсектор,
NS> бутсектор пускает ntloader. ntloader показывает меню, но при выборе
NS> вин2к (как и любого другого пункта) имеем мертвый вис.
NS> Что я мог запортить кроме регистров процессора? Какого фига оно виснет
NS> так поздно?

Эээ, достаточно ли места в стеке выделяется для работы твоего кода? Не то
я выделил в загрузчике 512 байт, оказалось маловато.
Nickita A Startcev
2006-07-10 05:30:52 UTC
Permalink
Привет, Vladimir !


07 Jul 06 , 09:03 Vladimir Zaitsev писал к Nickita A Startcev:

NS>> Подменяю MBR своим кодом.
NS>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
NS>> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
NS>> восстанавливаю, передаю управление оригинальному МБР, загрузив
NS>> его по оригинальному адресу (0:7c00). Оригинальный МБР запускает
NS>> бутсектор, бутсектор пускает ntloader. ntloader показывает меню,
NS>> но при выборе вин2к (как и любого другого пункта) имеем мертвый
NS>> вис. Что я мог запортить кроме регистров процессора? Какого фига
NS>> оно виснет так поздно?

VZ> Эээ, достаточно ли места в стеке выделяется для работы твоего
VZ> кода? Hе то я выделил в загрузчике 512 байт, оказалось маловато.

Стек идет от 0:7c00 и вниз. Вроде как достаточно.

. С уважением, Hикита.
... Hомеpа нодов в нодлисте pасположены похабно.
ob
2006-07-11 15:44:00 UTC
Permalink
Жму руку тебе, Nickita!

10 Jul 06 10:30 --> 11 Jul 06 20:44
Nickita A Startcev (2:469/105.96) --> Vladimir Zaitsev

NS>>> Подменяю MBR своим кодом.
NS>>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме
NS>>> CS,EIP,SS,ESP,EFLAGS) до этих действий сохраняю, а после
NS>>> восстанавливаю, передаю управление оригинальному МБР, загрузив
NS>>> его по оригинальному адресу (0:7c00). Оригинальный МБР запускает
NS>>> бутсектор, бутсектор пускает ntloader. ntloader показывает меню,
NS>>> но при выборе вин2к (как и любого другого пункта) имеем мертвый
NS>>> вис. Что я мог запортить кроме регистров процессора? Какого фига
NS>>> оно виснет так поздно?
VZ>> Эээ, достаточно ли места в стеке выделяется для работы твоего
VZ>> кода? Hе то я выделил в загрузчике 512 байт, оказалось маловато.
*NAS*> Стек идет от 0:7c00 и вниз. Вроде как достаточно.

И стэк и мбр всё по адресу 7c00?.. ;-}

LPS: Не стоит принимать близко к сердцу мой бред...

Руку отпускаю, пока. ob.
[*Соседи спят спокойно*]
[_/Necromant's Voice team/_] [*451°F*] [/_Death after Life team_/]
... Мёртвые слушают меня ...
Nickita A Startcev
2006-07-12 05:43:34 UTC
Permalink
Привет, ob !


11 Jul 06 , 20:44 ob писал к Nickita A Startcev:

*NAS*>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.

o> И стэк и мбр всё по адресу 7c00?.. ;-}

А вы таки не в курсе, что стек растет вниз, а мбр вверх?

. С уважением, Hикита.
... Гландыши...
Dmitry Grebeniuk
2006-07-12 05:54:04 UTC
Permalink
hi, Nickita

*NAS*>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.

o>> И стэк и мбр всё по адресу 7c00?.. ;-}

NS> А вы таки не в курсе, что стек растет вниз, а мбр вверх?

А сегменты -- так вообще вбок!

bye
Nickita A Startcev
2006-07-19 04:18:04 UTC
Permalink
Привет, Dmitry !


12 Jul 06 , 10:54 Dmitry Grebeniuk писал к Nickita A Startcev:

*NAS*>>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.

o>>> И стэк и мбр всё по адресу 7c00?.. ;-}

NS>> А вы таки не в курсе, что стек растет вниз, а мбр вверх?

DG> А сегменты -- так вообще вбок!

А у 80386+ в защищенном режиме, на самом деле, одной задаче можно использовать
как минимум 8190 сегментов по 4гб каждый!

. С уважением, Hикита.
icq:240059686, lj-user:nicka_startcev
... Обкурившийся сфинкс, забывший правильный ответ на собственную загадку
Miguel Mitrofanov
2006-07-20 03:06:20 UTC
Permalink
Hello, Nickita! You wrote:

NAS> *NAS*>>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.

o>>>> И стэк и мбр всё по адресу 7c00?.. ;-}

NS>>> А вы таки не в курсе, что стек растет вниз, а мбр вверх?

DG>> А сегменты -- так вообще вбок!

NAS> А у 80386+ в защищенном режиме, на самом деле, одной задаче
NAS> можно использовать как минимум 8190 сегментов по 4гб каждый!

А в Киеве, ты не поверишь, таки дядька!
--
Miguel ***@yandex.ru
LJ migmit http://miguel-0.narod.ru
ob
2006-07-14 03:53:20 UTC
Permalink
Жму руку тебе, Nickita!

12 Jul 06 10:43 --> 14 Jul 06 08:53
Nickita A Startcev (2:469/105.96) --> ob

*NAS*>>> Стек идет от 0:7c00 и вниз. Вроде как достаточно.
o>> И стэк и мбр всё по адресу 7c00?.. ;-}
*NAS*> А вы таки не в курсе, что стек растет вниз, а мбр вверх?

Да-а, я не в курсе, что мбр куда-то растёт... ;-}

LPS: Не стоит принимать близко к сердцу мой бред...

Руку отпускаю, пока. ob.
[*Соседи спят спокойно*]
[_/Necromant's Voice team/_] [*451°F*] [/_Death after Life team_/]
... Мёртвые слушают меня ...
Dennis Chikin
2006-07-12 16:43:16 UTC
Permalink
Hello Nickita!

06 Jul 06 19:31, you wrote to All:

NS> Подменяю MBR своим кодом.
NS> Код проверяет наличие некоторого оборудования и в зависимости от его
NS> наличия (не)разрешает дальнейшую работу. все регистры (кроме

Hе фига не nice, но обрати внимание на ряд плясок с бубном, которые
производятся по ходу дела.

= Cut =

mbr: db 200h dup (00h)
org 7c00h

start: pushf
push ax
push es
push ds

savreg cli
sub ax,ax
push ax
pop es
push ax
pop ds
mov bx,ss
mov rsp-1000h,sp
mov rss-1000h,bx
mov ss,ax
mov sp,7C00h
sti

cld
mov si,07c00h
mov di,08c00h
mov cx,100h
rep movsw
jmp virtst
offsadr

org offsadr+1000h

virtst ...
getstat ...
or al,al
jnz pntprep
jmp ptnkeep

...

ptnkeep mov al,flaga ; boot from a: ?
or al,al
jnz boota

boot mov si,8dbfh ; load entry offset
mov dh,[si] ; load head number
inc si
mov dl,80h
mov cx,[si] ; load track/sector number
load mov bx,7c00h ; set bx like starting point
mov ax,0201h ; read 1 sector
clc
int 13h ; call bios service
jc error

cli
mov ax,rss
mov ss,ax
mov sp,rsp
pop ds
pop es
pop ax
popf
sti
jmp start

text0: db 0ah,0dh,'enter number of active partition:'
text1: db 00h,0ah,0dh
text2: db 0ah,0dh,'disk read error',0ah,0dh
db 000h
flaga: db 000h
rax: dw 0
rsp: dw 0
rss: dw 0
pentry: db 000h,000h,000h,000h,055h,0aah
end
= End cut =

Вишен и прочих кактусов.
Nickita A Startcev
2006-07-14 05:42:34 UTC
Permalink
Привет, Dennis !


12 Jul 06 , 21:43 Dennis Chikin писал к Nickita A Startcev:

NS>> Подменяю MBR своим кодом.
NS>> Код проверяет наличие некоторого оборудования и в зависимости от
NS>> его наличия (не)разрешает дальнейшую работу. все регистры (кроме

DC> Hе фига не nice, но обрати внимание на ряд плясок с бубном, которые
DC> производятся по ходу дела.

DC> = Cut =

DC> mbr: db 200h dup (00h)

гм. Вот эти 512 байт на какое место в памяти попадают?

DC> org 7c00h

DC> start: pushf
DC> push ax
DC> push es
DC> push ds

А в каком состоянии стек в этот момент? Есть ли _гарантии_, что он не в
какой-нибудь ПЗУ?

[skip]

У меня тоже работает, кстати, почти разобрался.
Глюки где-то в InitUSB.

. С уважением, Hикита.
... 'Hе бойтесь совершенства, вам его не достичь' (с) Дали.
Loading...