안녕하세요! 이번 시간에는 mov 명령어에 대해서 알아보고 직접 mov 명령어를 사용해서 어셈블리 프로그래밍을 해볼거에요. 지난 시간에는 gdb를 사용하여 막 짜본 프로그램을 분석을 해보았는데요, 우리가 짠 프로그램의 문제점이 무엇이었는지 기억하시나요?? 네, 프로그램의 문제점은 프로그램의 종료를 알리는 신호를 주지 못해서 Segmentation fault가 발생한다는 점이었습니다. 프로그램의 끝은 시스템 콜을 이용해야 하는데요, 이번 시간에는 시스템 콜을 이용하여 프로그램을 정상적으로 종료시키는 방법도 알아보겠습니다. 자 그럼 MOV 명령어는 무엇이냐!!? MOV : 데이터 복사를 담당하는 명령어 # 레지스터 -> 레지스터 (레지스터에서 레지스터로 데이터를 복사) # 메모리 레지스터 (메모리에서 레지스..
안녕하세요! 이번 시간에는 지난 시간에 작성한 프로그램을 gdb를 사용하여 분석해보는 시간을 가질거에요. gdb는 리버싱을 하는 데 있어서 매우 중요합니다. gdb를 다루지 못한다는 것은 리버싱을 할 수 없다는 것과 같은 이야기입니다. 지난 시간에 작성한 프로그램을 gdb를 사용하여 분석해볼게요. 'gdb XXX' 를 입력하시면 (gdb) 옆에 명령어를 입력할 수 있게 바뀌게 됩니다. 1. disassemble (disas) 작성한 코드가 어셈블리 코드로 출력됩니다. 지금 어셈블리 코드를 보면 AT&T 방식으로 표현되어 있는데 우리는 앞으로 intel 방식으로 볼거에요. 따라서 다음과 같은 명령어를 입력해주세요. set disassembly-flavor intel 2. info register 이 명령어..
- Total
- Today
- Yesterday
- 우분투
- 어셈블러
- linux
- vim
- gdb
- 리버싱
- 치트엔진
- system call
- add
- 해킹
- 어셈블리어
- jmp
- 명령어
- 논리연산
- reversing
- 어셈블리
- 리눅스
- nasm
- ubuntu
- 사이버공격
- call
- 리버스 엔지니어링
- mov
- Push
- 터미널
- instruction
- 스택
- cmp
- 리눅스 시스템 콜
- Sub
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |