모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 게시판찾기
  • 게시물ID : programmer_5407
    작성자 : 황금비 (가입일자:2013-10-13 방문횟수:2191)
    추천 : 1
    조회수 : 808
    IP : 121.143.***.81
    댓글 : 2개
    등록시간 : 2014/09/13 15:35:06
    http://todayhumor.com/?programmer_5407 모바일
    디스어셈블리 인텔 opmap, moder/m, sib
    ms 빠돌이 입니다.
    터보C로 c배우고 visual studio 5.0으로 잠깐 독학하다가 입사해서 6.0 사용하면서 거의 2007년까지 쓰다가 2005 잠깐 쓰고 2008을 이식성 때문에 지금까지 메인으로 쓰고 있습니다. 2010은 잠깐 쓰다가 버리고 2012를 다시 구입해서 새로운 c++11문법 적용과 타입스크립트 개발 툴로 사용하고 있습니다.

    저는 vc에서 디버깅으로 disassembly를 아주 가끔씩 사용합니다. 이 디스어셈블리가 2010부터 disassembly에 추가 된 것이 많은데,
    코드 바이트, 주소, 소스코드, 기호 이름 줄 번호 표시 등을 체크해서 볼 수 있어서 편리합니다.

    disaa.jpg


    만약 디스어셈블리는 디버그 모드에서 동작하는데 활성화가 안되어 있다면 도구->디버그 -> 디스어셈블리를 선택하거나 ALT+8을 누르면 창이 활성화 됩니다.

    잠깐 이 디스어셈을 설명 드리면 그림에서 맨 좌측의 노란색이 현재 명령어 주소를 가르키는 커서이고 처음 00121070 등은 코드 세그먼트 주소를 말합니다. 프로그램이 시작되면 운영체제의 프로그램 로더는 코드가 저장된 메모리 블록 코드세그먼트와 스택 세그먼트가 RAM에 처음 생성이되고 데이터 세그먼트, extra 데이터 세그먼트가 만들어지는데 코드 세그먼트는 코드가 올라가 있는 메모리입니다.


    disaa2.jpg
    명령어 형식은 이렇게 되어 있는데 바이트가 기본 단위이며 디스어셈블리에서는 Opcode 부터 시작합니다.

    예를 들어서  00121070 줄의 "55", 012C1071의 "8B EC"가 명령어 세트 입니다.

    같은 어셈 명령어라도 레지스트리에 따라 번역된 기계어가 조금씩 달라지는데 "mov"라는 어셈 명령어도 012C1071는 8B, 012C1082는 B9
    012C1087 B8로 되어 번역되어 있음을 볼 수 있는데 그 이유는 op map을 보시면 알 수 있습니다.

    ASSEM00.jpg

    예를 들어 012C1071를 보면 기계어로는 "8B EC"로 되어 있고 우측 어셈에는 mov ebp,esp로 되어있는데 8B는 Op Map의 8행 B열을 보면
    MOV Gv,Ev로 되어 있음을 볼 수 있는데 Gv, Ev 는 "8B" 다음의 "EC"에서 가져 옵니다.


    ASSEM01.jpg

    ModeR/M  테이블에서 EC 의 왼쪽을 쭉 가면 ESP...로 쭉 되어 있고 상단으로 가면  r2에 ESP되어 있음을 볼 수 있으며 8B EC 는 mov ebp,esp가 됩니다.

    이런 식으로 명령어가 해석되는 것이고요, 눈으로 읽을 때 주의할 것은 음수에 대한 표현입니다.
    그림에서 012C10A3 에는 8B 45 E0로 되어 있는데 8B mov , 45는 상단 EAX, 좌측 [EBP]+ disp8 이렇게 되어 있습니다. 이것은 EAX에 EBP+ 8비트 변위 위치에 있는 갑을 복사하라는 것인데 여기서 E0는 변위가 입니다.

    8비트 변위는 -128~ 127입니다. 따라서 E0는 음수로 표현한다면 -20H 가 되겠지요. 그래서 디스어셈에 dword ptr [ebp-20h]로 표현 되어 있는 것입니다.

    만약 SIB를 요구한다면 SIB(scale index table) 테이블을 사용하시면 됩니다.
    ASSEM02.jpg

    머 이 정도면 대충 디스어셈블리에 나타난 코드 바이트를 이해할 수 있고 프로그래밍이 더 재미있어 질거라 생각됩니다.

    참고로 Op map에서 Gv, Ev, Iz 이런거 보이실 텐데 이것은 Addressing method와 Operand type 입니다.
    예를 들어 Ev는 Addressing Method가 E, 오퍼렌드 타입이 z이고요, 다음 그림을 이용하면 될 것 같습니다.

    ASSEM00.jpg


    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/09/13 16:06:43  113.216.***.244  navs  241922
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    23149
    혹시 선생님들 중에 언어에 문법을 수정하는 방법을 아시는 분이 계신가요? ToString 20/07/05 02:21 144 0
    23148
    VB6 한국어 버전으로 만들어진 프로젝트 관련 넋두리입니다 ㅠ [6] 쿠로바라 20/07/01 01:49 250 1
    23147
    혹시 고수님들 중에 비주얼 스튜디오 코드 사용하시는 분 계시나요? [4] ToString 20/06/30 00:05 291 0
    23146
    스프링 페이지 500에러좀 봐주실분 ㅠㅠㅠㅠ [1] 김폽 20/06/26 23:05 260 0
    23145
    혹시 랩뷰 잘 다루시는 분 있을까요?? [4] 쓸데없이고퀄 20/06/26 15:56 201 1
    23144
    [질문] MCU(RISC-V)에서 compile시 I/O 설정 방법은? [3] 본인삭제금지 어린이바이엘 20/06/23 14:12 145 0
    23143
    C# 에서 Singleton 을 이해하는데 도움이 될 만한 사이트 같은게 있을까요? [4] 본인삭제금지 쿠로바라 20/06/23 00:51 251 0
    23142
    자바 스윙에서 JPanel에는 Grapics를 추가할 수 없나요? [2] 후끼후끼 20/06/19 09:52 182 0
    23140
    [SQL] Queries with aggregates [2] 본인삭제금지 전여자친구 20/06/13 06:58 247 0
    23136
    c# WPF 질문드립니다... [1] 창작글본인삭제금지 창기름 20/06/03 21:17 305 0
    23134
    [파이썬] 문자열 관련한 질문 올립니다. [4] 본인삭제금지 훗날닭집사장 20/05/31 11:37 357 1
    23133
    파이썬 크롤링 관련 질문 올립니다~ [3] 본인삭제금지 훗날닭집사장 20/05/25 16:56 407 0
    23132
    [1인개발자]칭찬코인 앱입니다~ [2] 강쥐친구해삼 20/05/23 01:45 691 3
    23130
    sql 값에 함수를 돌려서자동적으로 값이 기입되게 하고 싶습니다. [14] 창작글본인삭제금지 창기름 20/05/20 17:41 520 0
    23129
    파이썬 변수(?) 질문드립니다...ㅠㅠ [6] 냐옹이펀치 20/05/15 00:20 448 0
    23128
    파이썬 이미지 크롤링 관련 질문 올립니다. (아래 글은 잘못 작성되었습니 [8] 본인삭제금지 훗날닭집사장 20/05/14 23:47 349 0
    23127
    파이썬 이미지 크롤링 관련 [1] 본인삭제금지 훗날닭집사장 20/05/14 23:44 258 0
    23126
    visual studio code [2] 방구스탄 20/05/14 20:18 469 0
    23125
    코틀린 내부 함수 질문입니다. [5] 창작글본인삭제금지 새벽밤안개 20/05/13 00:15 430 0
    23124
    [홍보] 게시글을 카톡으로 공유하는 사이트 만들었습니다 ! [1] 레코즈빗 20/05/12 21:32 341 1
    23123
    [1인개발][안드로이드/무료]유튜브 자동종료 어플입니다. 사용법이 초간단 [4] 티끌모아 20/05/11 20:56 527 3
    23122
    Python) 인스타그램 이미지 크롤링 작업중에 질문이 있습니다. [9] 본인삭제금지 훗날닭집사장 20/05/11 13:20 415 0
    23119
    회사 환경에서 프로그램 구동이 안되는건 무슨 문제일까요? [3] 본인삭제금지 훗날닭집사장 20/05/06 15:30 587 1
    23118
    .net core 설치에 관해 질문드립니다. [2] 슈퍼개그지 20/05/06 01:14 324 0
    23117
    POS기 테이블 구성질문드립니다. [6] 창작글본인삭제금지 창기름 20/05/05 17:58 440 0
    23116
    웹크롤링사이튼데 찾아왔습니다 20/05/04 19:06 419 0
    23115
    C에 Python 이식 후, Python 안깔린 PC 실행 관련 문의 [6] 본인삭제금지 상사꽃 20/04/29 20:58 475 0
    23114
    안녕하세요 선배님들 c# 질문드립니다. [5] 창작글본인삭제금지 창기름 20/04/29 18:14 472 0
    23113
    한숨.... [7] ★수시아★ 20/04/29 09:19 575 5
    23112
    lte 오픈소스 단일망 구축하려는데요.. [5] 푸른놀 20/04/28 10:35 509 0
    [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책