nasm 으로 실행파일을 만든뒤에 bin2hex 프로그램으로 hexa 포멧으로 변한한 뒤에 두 파일을 비교 해봤습니다. 내용이 완전히 달랐습니다. bin형식과 hex형식이 어떻게 다른것인가요? 즉, 이러한 변환은 어떻게 이루어지는 것인가요? (형식이 달라지면 현재의 PC에서는 실행을 못시키는것 아닌가요?) 답변부탁드립니다.
bin2hex 가 xxd 같은 역할을 하는것 같네요.
ASCII 코드는 00~7F 까지만 있죠. 즉 바이너리를 그대로 문자로 보여줄 방법이 없습니다. 한글코드로 나오더라도 (*^(*^ㄹㄴㅇ뚫훓뚫훓따다다 가 되겠죠. 바이너리 파일을 사람이 보기 위해 16진수로 표현한 것이 hexa table 이죠.
변환이니까 일반적인 텍스트 편집기에서도 볼 수 있도록 표현만 한게 아니고 아주 바꿔 버린겁니다.
오늘(좀 지났군요.) 올라온 글 중에 hex editor 에 대한 글이 있는데, 그것은 바이너리를 헥사테이블로 보여주고 편집이 가능하도록 하는 것이죠. (결과물은 바이너리.)
https://xenosi.de/
말씀하신대로 였습니다.
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 로 보지 마시고, 텍스트로 보세요.
앞뒤로 들어가는것은 주소표시군요.. 사용자가 보기쉽도록 바꾸어 주는 프로그램임이 확실한거 같습니다. 다음에..386ex kit에 다른 포멧을 적용해보면서 테스트를 해봐야 겠군여.. 답변감사합니다.^^
텍스트 포맷에 대한 자세한 정보
<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]
bin2hex 가 xxd 같은 역할을 하는것 같네요.ASCII 코
bin2hex 가 xxd 같은 역할을 하는것 같네요.
ASCII 코드는 00~7F 까지만 있죠.
즉 바이너리를 그대로 문자로 보여줄 방법이 없습니다.
한글코드로 나오더라도 (*^(*^ㄹㄴㅇ뚫훓뚫훓따다다 가 되겠죠.
바이너리 파일을 사람이 보기 위해 16진수로 표현한 것이 hexa table 이죠.
변환이니까 일반적인 텍스트 편집기에서도 볼 수 있도록 표현만 한게 아니고 아주 바꿔 버린겁니다.
오늘(좀 지났군요.) 올라온 글 중에 hex editor 에 대한 글이 있는데,
그것은 바이너리를 헥사테이블로 보여주고 편집이 가능하도록 하는 것이죠.
(결과물은 바이너리.)
https://xenosi.de/
답변감사합니다.
말씀하신대로 였습니다.
위 10바이트 코드를 bin2hex
로 변환하면 20바이트 코드로..
이렇게 될줄 알았는데
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 로 보지 마시고, 텍스트로 보세요.
bin2hex 의 값을 hex 로 보지 마시고, 텍스트로 보세요.
https://xenosi.de/
답변감사합니다..
앞뒤로 들어가는것은 주소표시군요..
사용자가 보기쉽도록 바꾸어 주는 프로그램임이 확실한거 같습니다. 다음에..386ex kit에 다른 포멧을 적용해보면서 테스트를 해봐야 겠군여..
답변감사합니다.^^
댓글 달기