일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Injection #Reflected #웹취약점
- #정보보안 #어셈블리 #저급언어 #기계어 #it #정보보안
- PYTHON
- evm
- 포렌식
- 탈중화
- 프로그래밍
- Forensic CTF #disk Forensic #windows file analyzer #WFA #Codegate 2012 F100
- 파일 접근 권한 #linux #chown #chmond #umask #명령어
- 안드로이드 #스레드 #핸들러 #예제
- 디지털포렌식 연구회 워크샵 #디지털포렌식 #디지털포렌식챌린지 #Forensic #ctf #정보보호학회
- 정보보안기사 #정보보안산업기사 #2020년 정보보안기사 #시험일정
- 객체
- 디지털포렌식챌린지 #dfchallenge #디지털포렌식 #Forensic
- 자바
- HTML Injection #bWAPP
- 메소드
- 파이썬
- EnCase #mount #Forensic #image mount
- 비박스 #웹취약점분석 #버그바운티 #bee-box #웹 #모의해킹
- snedmail #linux #정보보안기사 #정보보안산업기사 #mail protocol
- 안드로이드 #서비스 #안드로이스 서비스 #Android #java
- 정보보안기사 #정보보안산업기사 #클라우드컴퓨팅 #보안 #컴퓨팅보안
- java
- forensic
- CIDR #서브넷 #Network #ip 주소고갈
- Forensic #CTF #디지털포렌식 #disk forensic
- 코딩
- It
- 디지털 포렌식
- Today
- Total
Jsecurity
레지스터 본문
개요
- 레지스터는 CPU에서 사용하는 고속의 기억장치다. CPU는 연산을 수행하기 위해 메모리에 있는 데이터를 CPU 내부에 있는 레지스터로 가지고 온다. 연산 중간에도 레지스터에 데이터를 저장한다.
- 인텔 x86 CPU의 기본 구조인 IA-32 아키텍처에서는 9개의 범용 레지스터를 제공한다. 프로그램에서 사용하는 EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP 레지스터와 운영체제에서 사용하는 EIP 레지스터다. 이 밖에도 다양한 레지스터를 제공하고 있다.
레지스터 종류
EAX (Extended Accumulator Register)
- 곱셈과 나눗셈 명령에서 사용되며, 함수의 반환값을 저장한다.
EBX (Extended Base Register)
- ESI나 EDI와 결합해 인덱스에 사용된다.
ECX (Extended Counter Register)
- 반복 명령어를 사용할 때 반복 카운터를 저장한다. ECX 레지스터에 반복할 횟수를 지정해 놓고 반복 작업을 수행한다.
EDX (Extended Source Index)
- EAX와 같이 사용되며 부호 확장 명령 등에 활용된다.
ESI (Extended Source Index)
- 데이터 복사하거나 조작할 때 소스 데이터 주소가 저장된다. ESI 레지스터가 가리키는 주소에 있는 데이터를 EDI 레지스터가 가리키는 주소로 복사하는 용도로 많이 사용된다.
EDI (Extended Destination Index)
- 복사 작업을 할 때 목적지 주소가 저장된다. 주로 ESI 레지스터가 가리키는 주소의 데이터가 복사된다.
EBP (Extended Base Pointer)
- 하나의 스택 프레임의 시작 주소가 저장된다. 현재 사용되는 스택 프레임이 살아있는 동안 EBP의 값은 변하지 않는다. 그렇기 때문에 현재 사용한 스택 프레임이 사라지면 이전에 사용되던 스택 프레임을 가리키게 된다.
ESP (Extended Stack Pointer)
- 하나의 스택 프레임의 끝 지점 주소가 저장된다. PUSH, POP 명령어에 따라서 ESP의 값이 4바이트씩 변한다.
EIP (Extended Instruction Pointer)
- 다음에 실행할 명령어가 저장된 메모리 주소가 저장된다. 현재 명령어를 모두 실행한 다음에 EIP 레지스터에 저장된 주소에 있는 명령어를 실행한다. 실행전에 EIP 레지스터에는 다음 실행해야 할 명령어가 있는 주솟값이 저장된다.
[그림설명]
32비트 레지스터는 용도에 따라서 8비트 단위로 나누어 사용할 수 있다. EAX 레지스터는 하위 16비트만 AX 레지스터라는 이름으로 사용할 수 있다. 또한, 8비트 단위로 상위 8비트는 AH레지스터, 하위 8비트는 AL 레지스터라는 이름을로 사용할 수 있다.
'프로그래밍언어 > 리버싱 입문' 카테고리의 다른 글
[풀이] abex crackme 1 (0) | 2019.09.08 |
---|---|
어셈블리 조건분기 명령어 (0) | 2019.06.09 |
어셈블리 조건 분기문 (0) | 2019.06.03 |
어셈블리 산술명령어 (Div) (0) | 2019.04.14 |
어셈블리 산술명령어 (Mul) (0) | 2019.04.14 |