이 영역을 누르면 첫 페이지로 이동
웬디의 기묘한 이야기 블로그의 첫 페이지로 이동

웬디의 기묘한 이야기

페이지 맨 위로 올라가기

visual studio 디버깅시 디스어셈블리 확인하기

웬디의 기묘한 이야기

visual studio 디버깅시 디스어셈블리 확인하기

  • 2015.12.31 13:21
  • ⌨ DEVELOPMENT/Debugging
반응형

Disassembly

Visual Studio를 이용하여 프로그램을 디버깅 하는 경우 필요에 따라 Disaasembly를 파악해야할때가 있습니다.

일반적으로 exe를 디버깅 하는 경우엔 IDA, OllyDbg 등을 이용하지만 개발중에 필요한경우 다음과 같은 설정으로 이용하실 수 있습니다.


1. Visual studio에서 Tools -> Options 에 들어갑니다.


2. Debugging -> General에서 Enable address-level debugging 이 체크가 되어있어야 Disassembly 기능을 사용할 수 있습니다.


설정이 잘 되었는지 테스트를 해보겠습니다.

NOTE

Disassembly를 확인하기 위해선 조건이 필요합니다.

* 현재 Debugging 중이거나 Break Mode 여야 합니다.


TEST CODE는 간단히 작성했습니다.

main 에서 메시지를 출력하는 경우 디스어셈 코드는 어떻게 작성되어있을까요?


위의 조건을 적용하여 printf 를 하는 위치에 F9 키를 눌러 Break Point를 잡아줍니다. (또는 좌측 빨간 동그라미가 있는 공간을 클릭해도 Break Point가 걸립니다.)


이제 실행을 하면 콘솔창만 덩그러니 떠있고 아무것도 안나올겁니다.


이제 디스어셈을 볼 수 있는 별도의 Windows 를 꺼내야하는데요


Debug -> Windows -> Disassembly ( Ctrl + Alt + D ) 를 누르면 아래처럼 새로운 창과 함께 디스어셈블리 코드가 나타납니다.


여러가지로 정말 유용하게 사용할 수 있습니다.

예를들어 printf 를 하려할때 push 0F96B30 를 하고있습니다. 저건 뭘까요?

위의 코드를 보면 당연히 test message 일겁니다.


당연하지만 직접 두 눈으로 봐야겠네요!!


메모리를 따라가보니 test message가 넣어져있네요 정답입니다! 그런데 그 뒤에 또 다른 글자들이 수두룩 합니다.

네 맞습니다 여긴 CODE 영역 입니다.

함수, 제어문, 상수 등은 메모리 영역 중 CODE 영역에 들어가게 되죠.


이처럼 여러가지 방면으로 분석이 가능하고, Visual Studio의 Disassemly 기능을 통하여 Code의 실제 동작을 알 수 있습니다.


해당 내용은 MSDN에도 자세히 나와있으니 부족한 내용은 MSDN을 참고하시기 바랍니다.

MSDN HOME
https://msdn.microsoft.com/en-us/library/a3cwf295(v=vs.120).aspx





반응형
이 글은 본 저작자 표시, 비영리, 동일 조건 변경 허락 규칙 하에 배포할 수 있습니다. 자세한 내용은 Creative Commons 라이선스를 확인하세요.
본 저작자 표시
비영리
동일 조건 변경 허락

'⌨ DEVELOPMENT > Debugging' 카테고리의 다른 글

dump 분석을 위한 windbg 64bit 다운로드 및 설치  (0) 2019.08.04
[Debugging] 프로세스 크래시 발생시 덤프 남기기  (0) 2016.01.22
[Assembly] 디버깅을 위한 8086 어셈블리  (0) 2016.01.17
[WinDbg] 특정 프로세스 디버깅하기  (0) 2016.01.13
[WinDbg] DriverEntry부터 디버깅 시작하기  (2) 2016.01.10
[windows] 윈도우 64bit Driver 서명없이 로드하기  (2) 2016.01.10
[WinDbg] vmware에 WinDbg 연결하여 디버깅 준비하기  (0) 2016.01.06
[WinDbg] Kernel Debugging을 위한 디버거 다운로드 및 설치!  (0) 2016.01.05

댓글

댓글을 사용할 수 없습니다.

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [WinDbg] DriverEntry부터 디버깅 시작하기

    [WinDbg] DriverEntry부터 디버깅 시작하기

    2016.01.10
  • [windows] 윈도우 64bit Driver 서명없이 로드하기

    [windows] 윈도우 64bit Driver 서명없이 로드하기

    2016.01.10
  • [WinDbg] vmware에 WinDbg 연결하여 디버깅 준비하기

    [WinDbg] vmware에 WinDbg 연결하여 디버깅 준비하기

    2016.01.06
  • [WinDbg] Kernel Debugging을 위한 디버거 다운로드 및 설치!

    [WinDbg] Kernel Debugging을 위한 디버거 다운로드 및 설치!

    2016.01.05
다른 글 더 둘러보기

정보

웬디의 기묘한 이야기 블로그의 첫 페이지로 이동

웬디의 기묘한 이야기

  • 웬디의 기묘한 이야기의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그
  • 방명록
  • 이야기

카테고리

  • 분류 전체보기 (204)
    • MY STORY (2)
    • 📸 WALKING WITH YOU (85)
      • 아이슬란드 신혼여행 이야기 (14)
      • 대한민국 구석구석 (62)
      • CONTAX N1 + T* 28-80mm (4)
      • SAMSUNG NX3000 (1)
      • 어느 멋진 날 (4)
    • ⌨ DEVELOPMENT (80)
      • BOOK:Review (1)
      • AI (13)
      • C++ (26)
      • Python (10)
      • WIndows Hooking (9)
      • Windows Kernel (3)
      • Design Pattern (3)
      • Debugging (9)
      • Tools (0)
      • Project (1)
      • Android (1)
      • 상업용 무료폰트 (4)
    • OS (4)
      • News (0)
      • Windows 일반 (4)
    • 모바일 (2)
      • 모바일 게임 (2)
    • 멘사 퍼즐 (9)
    • 생활 꿀 TIP (7)
      • 건강 (3)
      • 일상 (2)
    • 물생활 (8)
      • 골든볼 라미네지 롱핀 (8)
    • IT 기기 (2)
    • BLOG (4)
      • TISTORY BLOG TIP (3)

인기 글

공지사항

태그

  • c
  • 아이슬란드
  • c++
  • 카페
  • 신혼여행
  • 해외여행
  • AI
  • windbg

나의 외부 링크

  • kernel undocument api
  • 지구 관찰자의 일기
  • 지구와 지구곰

정보

WENDYS의 웬디의 기묘한 이야기

웬디의 기묘한 이야기

WENDYS

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © WENDYS. Designed by Fraccino.

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.