Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
Tags
- 드림핵
- BOB9기
- 취약점종류
- page_size
- 교수님제발
- Network IP
- Host IP
- 가성비노트북
- 보호기법
- 암호생성
- OSI 7Layer
- DB 추측 방법
- Network
- 90만원대
- 리버싱기초
- SIBAL
- DB 종류 찾기
- ip class
- 과제
- 기초
- 웹해킹기초
- SQL 실습
- SQL Injection
- 칼럼수찾기
- 웹취약점
- https://youtu.be/quLIdcHgi1k?t=694
- 100만원이하
- c언어
- 가변 페이지 사이즈
- 'or1=1
Archives
- Today
- Total
us1s
어셈블리_기초_01 본문
어셈블리어 (Assembly)
-기계어 라인 한 줄이 어셈블리어 라인 한 줄에 1:1로 대응하는 저급 언어이다.
-Low Level Language 이다.
-프로그램이 가벼워 소형 임베디드 시스템에 활용된다.
-크게 AT&T와 Intel 두 가지 문법으로 나뉜다. (표기법 차이)
예를 들어 기계어 10000011...1001 은
어셈블리어 ADD EAX, 9와 동일하다.
명령어의 구성
OP Code (명령어) | Operand1, 2, 3 (피연산자) |
- OP code : 명령어에서 연산 동작을 지정하는 부분으로 명령어의 종류를 표현 ex) ADD, SUB, POP 3
- Operand : 연산의 대상이 되는 데이터의 위치, 값을 나타내는 부분
- Intel 문법 (Windows) : Opcode + 목적지(destination), 원본(Source)
- ex) MOV EAX, 1 → EAX에 1을 넣어라.
- AT&T 문법 (Linux) : Opcode + 원본(Source) 목적지(destination)
- ex) MOV 1 EAX → EAX에 1을 넣어라.
필수 명령어
- PUSH : 스택에 값을 넣을 때 사용한다.
- POP : 스택의 값을 가져올 때 사용한다.
- MOV : 값을 넣는 명령어이다. ex) MOV ECX, 1
- LEA : 주소를 넣는 명령어이다. ex) LEA EBX, [ESI]
- ADD : 값을 더하는 명령어이다. (+)
- SUB : 값을 빼는 명령어이다. (-)
- INC : 연산 (++)
- DEC : 연산 (--)
- CMP : 두 개의 Operand를 비교하는 명령어이다.
- CALL : 함수를 호출하는 명령어이다.
- RET : CALL로 호출된 함수를 종료하고, CALL 다음 줄의 명령어로 이동한다.
- NOP : 아무것도 하지 않는 명령어이다.
레지스터 (Register)
CPU에서 데이터를 연산을 할 때, 레지스터를 이용한다.
범용 레지스터
- EAX : 연산에 사용된다. 리턴 값을 저장한다.
- EBX : 연산에 사용된다. 리턴 값을 저장하지 않는다.
- ECX : Count 하는 값을 저장한다. (탑-다운 방식으로 동작)
- EDX : EAX, EBX, ECX 가 부족할 때, 사용되는 여분의 레지스터이다.
인덱스 레지스터
- ESI : 데이터를 복사할 때, 복사할 데이터의 주소가 저장된다.
- EDI : 데이터를 복사할 때, Destination의 주소가 복사된다.
포인터 레지스터
- ESP : 스택 프레임의 끝 지점 주소가 저장된다.
- EBP : 스택 프레임의 시작 지점 주소가 저장된다.
* 레지스터 앞에 E가 붙으면 32bit, R이 붙으면 64bit이다.
'sOFT wARE' 카테고리의 다른 글
네트워크 기초_02 (0) | 2020.06.27 |
---|---|
SQL Injection_01 (0) | 2020.06.26 |
MySQL 5.6_dump (2) | 2020.06.26 |
네트워크 기초_01 (0) | 2020.06.25 |
버퍼 오버 플로우_01 (0) | 2020.06.23 |