AT&T 문법과 인텔 문법의 차이
1. 레지스터를 나타낼 때
: intel : eax / AT&T : %eax
2. operand 순서
: intel : destination, source / AT&T : source, destination
3. 상수
: intel : 5로 표기 / AT&T : $5로 표기
4. 메모리 주소 참조
: intel : [eax] / AT&T : (%eax)
5. 레지스터 + offset 위치의 메모리 주소를 참조할 때
: intel : [eax + 4] / AT&T : 4(%eax)
범용 레지스터의 종류 및 역할
1. EAX 레지스터
: Accumulator Register, 산술 연산을 수행 or 함수의 리턴 값을 전달.
2. EDX 레지스터
: Data Register, EAX와 함께 복잡한 연산을 위한 추가적인 데이터를 저장할 때 사용
3. ECX 레지스터
: Counter Register, 반복적으로 수행되는 연산(반복문)에 사용됨. 반복 연산에서 문자열을 저장하거나 카운트를 셈.
4. ESI 레지스터/ EDI 레지스터
: ESI레지스터는 Source Index를 나타내고, EDI 레지스터는 Destination Index를 나태낸다. 데이터 연산을 읽기 위해서 ESI 레지스터가 사용되고, 데이터 연산을 쓰기 위해 EDI 레지스터가 사용된다.
5. ESP 레지스터
: 특정한 목적은 없음. 레지스터의 일반 목적인 저장소로 쓰임.
6. EIP 레지스터
: 바이너리 코드 실행 중에 현재 실행되고 있는 명령의 주소를 가리킨다.
'Cyber Security' 카테고리의 다른 글
워드프레스 취약점 실습_sqlmap (0) | 2017.06.08 |
---|---|
[해킹공격의예술] 1. 직접 해보기 [0x250] (0) | 2017.06.07 |
[Kali Linux] - Samba 3.5.0 - Remote Code Execution (0) | 2017.05.31 |
Metasploit을 활용한 Windows 7 취약점 스터디 (0) | 2017.05.31 |
[Kali Linux] - Virtualbox 공유폴더 마운트 (우분투, Ubuntu 포함) (0) | 2017.05.31 |