-
20140723 (Assembly 기초, windbg 사용법)부산IT학원/스마트컨트롤러 2014. 7. 23. 16:06
108일차
--------------------
Assembly Windbg
--------------------
------- windbg 로 프로그램 관찰
- string 변수에 1234567890을 입력합니다.
- string 에 1234567890 이 아스키코드로 입력됐음을 확인할 수 있습니다.
- 1234567890 이라는 10진수를 16진수로 바꾸면 49 96 02 D2 입니다.
- 다음 코드로 진행하면 number1에 eax에 저장된 49 96 02 D2 를 저장합니다.
- Register는 Big Endian이고, Memory는 Little Endian이라서
Memory에 거꾸로 저장된 것을 볼 수 있습니다.
- 위와 같은 과정을 거쳐 number2 에 255 를 입력하면
메모리에 아래와 같이 16진수로 FF 가 입력된 것을 볼 수 있습니다.
- 다음으로 진행해서 add eax, number2 명령을 EIP Reg를 통해 주소를 찾아가
기계 코드로 쓰여진 것을 확인할 수 있습니다.
03 05 04 40 40 00 이라고 입력되어 있는데요.
- Appendix D 목록을 보면 add 명령의 정보를 볼 수 있습니다.
Opcode 가 03 으로, add 명령의 기계코드가 03 이란 것을 알 수 있습니다.
그런데 기계코드가 03 05 로 뒤에 05 가 더 붙었습니다.
16 bit와 32 bit 를 분별하기 위해서 더 붙는다고 합니다.
디버깅으로 이렇게 관찰할 수 있습니다.
계속해서 PDF 파일을 봅니다.
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140725 (Assembly Flags Register) (0) 2014.07.25 20140724 (ASM mov, xchg) (0) 2014.07.24 20140722 (ARM ADC, Assembly 기초, Debug) (0) 2014.07.22 20140721 (ARM adc 소스 작성중, asm) (0) 2014.07.21 20140717 (ARM Ultrasonic 초음파 모듈) (0) 2014.07.17