gdb 에서 opcode 어떻게 보이게하나요?

declspec의 이미지

간단한건데 아무리 구글링을 해도 없네요 ㅠㅠ

gdb 로

disass main

이런식으로 명령을 내리면
Dump of assembler code for function main:
0x08048444 : lea 0x4(%esp),%ecx ; esp+4 를 ecx 로
0x08048448 : and $0xfffffff0,%esp ; esp 를 16의 배수로 정렬
0x0804844b : pushl -0x4(%ecx) ; esp 를 push? 왜?
0x0804844e : push %ebp ; main 스택프레임 잡고..
0x0804844f : mov %esp,%ebp
0x08048451 : push %edi ; 레지스터들 저장
0x08048452 : push %esi

이런 디스어셈블결과 덤프를 주는데요
여기서 실제 op코드랑 어셈블리 명령어의 HEX 데이터도
표시하게 하고싶은데 어떻게해야하나요? ㅠㅠ
각 어셈블리 라인마다 거기에 해당하는 실제 기계어코드요...
x/bx 로 hex 덤프를 보는거는
어디서 어디까지가 어떤 명령인지를 알수없으니까 안되구요...

올리같은데서는 디폴트로 나오는데 gdb 에서는
기능이 없을리가없을건데... 옵션 설정을 어떻게하는줄 모르겠네요

Stand Alone Complex의 이미지

RTFM

항상 질문하시는 형태가 같군요.
질문하기 전에...

1. 공식 메뉴얼을 찾아봅시다.
2. 그래도 못 찾겠으면 구글링을 해봅시다.

RET ;My life :P

jachin의 이미지

아마 declspec님은 역 어셈블링을 통해 바이너리 핵을 해보고 싶었지만,
명령어 시작 지점을 찾지 못해서, 자동으로 disassembling 하는 도구를 원했을 겁니다.
기계어나 CPU 구조, 기존 여러 CPU 체계나 확장한 x64 체계 명령어는 복잡했을테니까요.

gdb에 관한 질문이 아니라, 자동으로 코드를 분석해서,
CPU 니모닉과 데이터 부분을 구분지어 줄 수 있는 자동화 된 프로그램을 원했으리라 생각합니다.

너무 인색하게 답변주기 보다는, 한 번만 더 배려해주었으면 좋겠습니다.

Stand Alone Complex의 이미지

"영문" 공식 메뉴얼 속에 "정답"이 있기 때문에 제가 그렇게 댓글을 단 것 입니다.

RET ;My life :P

익명 사용자의 이미지

질문자의 의도는 단순히 opcode랑 disassembly랑 동시에 표시하게 하려면 어떡하느냔건데...

jachin의 이미지

http://www.unknownroad.com/rtfm/gdbtut/gdbadvanced.html
http://coffeenix.net/doc/develop/gdb.html#SEC50
http://coffeenix.net/doc/develop/gdb.html#SEC56

위의 세 링크 글을 읽으면 도움이 되리라 생각합니다.

요는 x와 i 명령을 통해 hex 모드와 instruction 모드로 전환한다는 것입니다.
gdb가 인터렉티브 콘솔 체계라서,
올리디버거 같은 프로그램처럼 한꺼번에 쫘악 보여주기는 어려운 것 같아요.

다음의 링크에서 적당한 프로그램을 한 번 검색해서 써보는 건 어떨까요?

http://en.wikibooks.org/wiki/X86_Disassembly/Analysis_Tools

declspec의 이미지

disass /r main
이런식으로 /r 옵션을 주면 되네요
gdb 버전따라 지원 안되는것도 있는거같네요.

gdb man 페이지도 확인해보고
gdb 내에서 show, help 등 전부 찾아봐도 없고
google 에서
gdb raw instruction
gdb hex view
gdb opcode view
등등 한시간도넘게 검색해도 못찾아서 질문을 올린건데
RTFM 이라고 하실것까지야...
물론 메뉴얼도 봤었습니다
근데 gdb 메뉴얼이 인터넷에 어디 한두개도아니고...

이번질문은 간단한거라 확실히 제가 구글링이나 자료검색을 잘 못한거 인정하는데요...
그냥 무작정 글부터 올리는건 아닙니다 -_-;;

이전에는 strace 에 대한 질문에 직접 소스분석하라고하시던데
그럼 도데체 질문할수있는게 뭡니까?
리눅스 관련질문은 전부다 커널소스 분석해보라고하면 되는거아닌가요?
자기 기준으로 쉽고 단순한 질문이라고해서
다른사람도 똑같이 쉽게 해결할수 있다고 생각하지 맙시다
RTFM 이 뭔지 처음알았는데 상당히 기분나쁘네요

제가 쓸대없는 질문으로 도배를해서 다른사람 방해를하는것도 아닌거같은데..
제 질문이 형편없어보이면 그냥 답변 안해주시면됩니다

자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.

익명 사용자의 이미지

늘 바닥까지 싹싹 훑으면서 공부하시는 모습이 보기 좋습니다 ㅎㅎ

익명 사용자의 이미지

Stand Alone Complex님 같이 답변 다는 사람이 제일 짜증납니다. RTFM 어쩌고 따위의 아무 영양가 없는 답변을 달려면 집에서 그냥 STFU하고 계시라고 말씀드리고 싶어요.

Stand Alone Complex의 이미지

그럼 익명 사용자님 본인이 도움이 되는 댓글을 다시던지요.
아무런 행동을 하지 않으며 RTFM이라고 댓글 다는 사람을 익명으로 비방하는 사람보다 RTFM이라고 댓글 달아주는 사람이 더 낫다고 생각합니다.

RET ;My life :P

마잇의 이미지

>아무런 행동을 하지 않으며 RTFM이라고 댓글 다는 사람을 익명으로 비방하는 사람보다 RTFM이라고 댓글 달아주는 사람이 더 낫다고 생각합니다.

RTFM만 던지고 가는 건 안하느니만 못하다고 생각합니다. 최소한 매뉴얼 어느 위치 쯤에 그런 내용이 있다 정도는 알려 주던가 아니면 검색에 적당한 키워드 정도는 던져 주고 가야 하지 않을까요.

그걸 못하시겠으면 그냥 가던 길 가면 됩니다. 번거롭게 RTFM 써놓고 갈 필요가 없죠. 게시물 내용이 규칙 위반을 한 것도 아닌데요.


--
마잇

익명 사용자의 이미지

+1.

원 질문글이 저런 모욕적인 대꾸를 받을만한 질문이었는지 의문입니다.

declspec의 이미지

주말사이에 불화가 생겼군요 -_-;

이 글타래 말고 다른글에도 분위기가 안좋던데

같은 분야쪽 사람들끼리 사이좋게 지냈으면 좋겠네요

여러 커뮤니티중 KLDP 가 제일 싸움도없고 전문가들이 많은곳같아서

여기만 이용하는데.. 음 사람이 많으면 충돌은 어쩔수없나보군요

저는 RTFM 이 욕처럼들려서 기분이 상했었는데 뭐 그냥 가벼운 뉘앙스 인것 같네요

자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.

댓글 달기

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