c로 부팅시키기^^|

by 써티올 posted Mar 16, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

+ - Up Down Comment Print

웹서핑을 하다가 C언어에 관련된 소스를 발견했다.
전에는 눈에도 들어오지 않던 것들이었는데...아마도 당분간은 C언어 소스에 관심을 많이 갖을것으로 생각된다.

부팅의 종류에는 콜드(Cold)와 웜(Worm)의 두가지가 있다.
콜드 부팅은 컴퓨터의 메인 전원을 껐다가 켠 상태를 말하고 웜 부팅은 Ctrl+Alt+Del 키를 누른 상태를 말한다.

콜드 부팅 소스입니다.

#include <dos.h>

void far (*Booting)();

void main()
{
Booting = MK_FP(0xffff, 0);
Booting();
}

위의 소스를 보면 메모리의 FFFF:0000 번지를 실행 하도록 하고 있다.
이유는 컴퓨터를 시동하라는 명령(?)이 위의 번지에 지정되어 있기 때문이다.
웜부팅은 메모리의 0x472 ~ 0x473번지에 0x1234 값의 유무를 가지고 판별 한다.
그러니까 위의 번지에 0x1234 값이 있으면 웜부팅이고 없으면 콜드 부팅인 셈이다.

따라서 웜부팅을 위해서는 위의 번지에 위의 값을 넣어 주면 된다.


그럼 추가된 웜부팅의 소스 이다.

#include <dos.h>

void far (*Booting)();
int far *flag;

void main()
{
flag = MK_FP(0, 0x472);
*flag = 0x1234;
Booting = MK_FP(0xffff, 0);
Booting();
}


나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5