실행파일의 bin 포멧과 hex 포멧의 내용이 다른이유..

gyxor의 이미지

nasm 으로 실행파일을 만든뒤에
bin2hex 프로그램으로 hexa 포멧으로 변한한 뒤에 두 파일을 비교 해봤습니다.
내용이 완전히 달랐습니다.
bin형식과 hex형식이 어떻게 다른것인가요?
즉, 이러한 변환은 어떻게 이루어지는 것인가요?
(형식이 달라지면 현재의 PC에서는 실행을 못시키는것 아닌가요?)
답변부탁드립니다.

송효진의 이미지

bin2hex 가 xxd 같은 역할을 하는것 같네요.

ASCII 코드는 00~7F 까지만 있죠.
즉 바이너리를 그대로 문자로 보여줄 방법이 없습니다.
한글코드로 나오더라도 (*^(*^ㄹㄴㅇ뚫훓뚫훓따다다 가 되겠죠.
바이너리 파일을 사람이 보기 위해 16진수로 표현한 것이 hexa table 이죠.

변환이니까 일반적인 텍스트 편집기에서도 볼 수 있도록 표현만 한게 아니고 아주 바꿔 버린겁니다.

오늘(좀 지났군요.) 올라온 글 중에 hex editor 에 대한 글이 있는데,
그것은 바이너리를 헥사테이블로 보여주고 편집이 가능하도록 하는 것이죠.
(결과물은 바이너리.)

gyxor의 이미지

말씀하신대로 였습니다.

E9 01 00 CC B0 03 B4 4C CD 21

위 10바이트 코드를 bin2hex
로 변환하면 20바이트 코드로..

45 39 30 31 30 30 43 43 42 30 30 33 42 34 34 43
43 44 32 31

이렇게 될줄 알았는데

3A 30 41 30 30 30 30 30 30 45 39 30 31 30 30 43
43 42 30 30 33 42 34 34 43 43 44 32 31
39 46 0D
0A 3A 30 30 30 30 30 30 30 31 46 46 0D 0A

이러한 내용이 나오게 됩니다.

앞뒤로 뭔가가 붙지만 코드 내용은
말씀하신대로 변환이 되었습니다.

만일,
bin2hex 가
hexa표현을 기준으로 하지 않고 bin표현을 기준으로 한다면
01010100b 1바이트의 값을 그대로 사용하지 않고 8바이트,
30 31 30 31 30 31 30 30 으로 바꾸어서 사용하는 것인데요..

여기서는 hexa표현을 기준으로 하고 있어서 코드 사이즈는 2배가 되는데요..

사용자가 알아보기 쉽도록 하는게 목적인, 변환이라면 모르겠지만..
386ex KIT에 다운로드 할적에 hex형식의 파일을 사용하는것을 보고서 의문이들었던 것입니다.

앞뒤로 붙게 되는 값들에는 여전히 의문이 남습니다.
ps : bin2bin도 있을수 있겠군여..

송효진의 이미지

bin2hex 의 값을 hex 로 보지 마시고, 텍스트로 보세요.

gyxor의 이미지

앞뒤로 들어가는것은 주소표시군요..
사용자가 보기쉽도록 바꾸어 주는 프로그램임이 확실한거 같습니다. 다음에..386ex kit에 다른 포멧을 적용해보면서 테스트를 해봐야 겠군여..
답변감사합니다.^^

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.