하드디스크 관련 프로그래밍을 하는데 궁금한게 있습니다.

binoopang의 이미지

안녕하세요 :)

제가 NTFS 하드디스크가 부팅되는 과정을 분석하고 있습니다 +_+
MBR에서 BR로 넘어와서 OS가 부팅된다고 하더군요 ..
궁금한게 ..

MBR에도 일련의 x86으로 된 기계어 코드들이 있고 BR 섹터의 가장 첫 번째
3바이트 또한 기계어 코드더라구요..

가장 궁금한건 BR에서 첫 번째 3바이트가 점프 코드였습니다. EB 52 90 인데 ..
이게 지금 가상메모리 공간을 뜯어볼 수 있다면 쉽게 이해 하겠는데 아무래도
이 기계어 코드가 해석될 때 가상메모리 상황을 모르니 어디로 정확히 점프하는지
알 수가 없네요 ..

아니 아직 운영체제가 부팅되기 전이니까 가상메모리가 아닌건가요?
그럼 혹시 이 순간에 하드디스크의 몇 번째 섹터가 메모리에 매핑되는지 알 수 있을까요?
그러면 매핑된 섹터의 시작점으로 부터 0x9052 만큼 떨어진 곳으로 가보면 부팅 코드가 있을까요??

궁금합니다 +_+

grassman의 이미지

EB 52라고 되어 있으면 그 다음 위치(그러니까 시작점에서 2 바이트 이후 지점)에서 +0x52 바이트 뒤 지점을 가리킵니다. (즉, 시작점에서 0x54 바이트 이후 위치입니다) 그 사이 공간에는 디스크 할당 정보가 들어 있습니다. EB 52 다음의 90은 NOP 명령입니다.

그리고 부트 레코드의 512바이트 코드 내에서는 가상 메모리 개념을 동원할 필요가 없습니다. 리얼 모드로 부팅하므로 20비트 주소 계산만 주의하시면 큰 문제가 없을겁니다.

binoopang의 이미지

EB가 .. 뒤 2바이트 전체를 가지는 줄 알았는데 1바이트만이었나요?? ㅠㅠ
감사합니다 .. 많은 도움 되었네요 헤헷 ///

-------- 시그내쳐 ---------
열심히 열심히 열심히 ..
음악을 하는것 처럼!!

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.