Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемка с Boot-сектором ...

15K
13 февраля 2006 года
PartyZan
6 / / 13.02.2006
Хочу кинуть в бут сектор Exe-шник, вот прога которой хочу кинуть:

#include <errno.h>
#include <io.h>
#include <fcntl.h>
#include <stdio.h>

int main()
{
char bootbuf[512];
int deskfloppy, deskfile;
bootbuf[510]=0x55;
bootbuf[511]=0xaa;

deskfile=open("boot.exe", O_RDONLY);
if(deskfile==-1)
{
perror("Error open boot.exe");
return 1;
};
read(deskfile, bootbuf, 510);
close(deskfile);
deskfloppy=open("A:/", O_RDWR);
if(deskfloppy==-1)
{
perror("Error open disk A");
return 1;
};
lseek(deskfloppy, 0, SEEK_CUR);
write(deskfloppy, bootbuf, 512);
close(deskfloppy);
return 0;
}

Но вот тут и проблемка, с которой немогу совладать: пишет "Нет такого фолдера или файла"
и хендл возращает "-1" - Это на ерроре с Дисководом А:, с файлом boot.exe всё ок.
Помогите, заранее прошу сильно не смеятся! ;)
260
13 февраля 2006 года
Ramon
1.1K / / 16.08.2003
Цитата:
Originally posted by PartyZan
Хочу кинуть в бут сектор Exe-шник, вот прога которой хочу кинуть:

#include <errno.h>
#include <io.h>
#include <fcntl.h>
#include <stdio.h>

int main()
{
char bootbuf[512];
int deskfloppy, deskfile;
bootbuf[510]=0x55;
bootbuf[511]=0xaa;

deskfile=open("boot.exe", O_RDONLY);
if(deskfile==-1)
{
perror("Error open boot.exe");
return 1;
};
read(deskfile, bootbuf, 510);
close(deskfile);
deskfloppy=open("A:/", O_RDWR);
if(deskfloppy==-1)
{
perror("Error open disk A");
return 1;
};
lseek(deskfloppy, 0, SEEK_CUR);
write(deskfloppy, bootbuf, 512);
close(deskfloppy);
return 0;
}

Но вот тут и проблемка, с которой немогу совладать: пишет "Нет такого фолдера или файла"
и хендл возращает "-1" - Это на ерроре с Дисководом А:, с файлом boot.exe всё ок.
Помогите, заранее прошу сильно не смеятся! ;)


Слэшь переверни;)

 
Код:
deskfloppy=open("A:\\", O_RDWR);


PS: А терь должно воркиться
15K
13 февраля 2006 года
PartyZan
6 / / 13.02.2006
Цитата:
Originally posted by Ramon
Слэшь переверни;)
 
Код:
deskfloppy=open("A:\", O_RDWR);


Во-первых в С не играет роли !!!
Во-вторых \" - зарезервированный символ !!!

З.Ы. На всякий случай проверил
deskfloppy=open("A:\ ", O_RDWR); - с пробелом, а всё равно таже фигня !

398
14 февраля 2006 года
Alexandoros
630 / / 21.10.2005
Цитата:
Originally posted by PartyZan
Во-первых в С не играет роли !!!
Во-вторых \" - зарезервированный символ !!!



Бухгагага умора. Тебе ж написали "A:\\", там 2 слеша, видиш???????

Во вторых кто тебя надоумил кидать в бутсектор екзеху???? ЛОООЛ. КТО ЕЕ ЗАГРУЖАТЬ БУДЕТ??? В буте чистый бинарь должен быть. (Писать нада на асме)

И в третьих , если уж так приперло, то РТФМ. Чтоб открыть диск юзаеш CreateFile, DeviceIoControl и "\\\\.\\A:" - как имя файла.

А еще лучше заюзай RawWrite2. И не парься.

15K
14 февраля 2006 года
PartyZan
6 / / 13.02.2006
[QUOTE]Originally posted by Alexandoros
Бухгагага умора. Тебе ж написали "A:\\", там 2 слеша, видиш???????
[QUOTE]

[Posted by 195.248.168.176. This is added while posting a message to avoid misuse of WebWarper: see http://webwarper.net/han Example of using WebWarper: http://webwarper.net/ww/~av/lycos.com ]

И чего смеятся ??? :-) Ну нада же с чего-то начинать.
Всем спасибо !
15K
14 февраля 2006 года
PartyZan
6 / / 13.02.2006
Цитата:
Originally posted by Alexandoros
Бухгагага умора. Тебе ж написали "A:\\", там 2 слеша, видиш???????



А всё равно на пашет (((

15K
14 февраля 2006 года
PartyZan
6 / / 13.02.2006
Цитата:
Originally posted by Alexandoros
Во вторых кто тебя надоумил кидать в бутсектор екзеху???? ЛОООЛ. КТО ЕЕ ЗАГРУЖАТЬ БУДЕТ??? В буте чистый бинарь должен быть. (Писать нада на асме)



Как компильнуть .bin, используя Tasm ?

398
14 февраля 2006 года
Alexandoros
630 / / 21.10.2005
Цитата:
Originally posted by PartyZan
Как компильнуть .bin, используя Tasm ?


Скомпилируй в com - вот тебе и будет бин. Ключ /t если не ошибаюсь. Только учти что загрузка начинается по адресу 7C00h, то есть нада еще поставить ORG 7C00h.

А еще можно заюзать фасм или насм.

15K
14 февраля 2006 года
PartyZan
6 / / 13.02.2006
Цитата:
Originally posted by Alexandoros
Скомпилируй в com - вот тебе и будет бин. Ключ /t если не ошибаюсь. Только учти что загрузка начинается по адресу 7C00h, то есть нада еще поставить ORG 7C00h.

А еще можно заюзать фасм или насм.



Я так и сделал ! :-) Спасибо за советы !!!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог