글
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 |