[1] 레지스터
레지스터는 간단히 말하면 CPU가 사용하는 변수이다. 레지스터는 EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, EIP 가 있다.
-
EAX (Extended Accumulator Register)
-> 계산(Accumulator)용으로 곱셈과 나눗셈 등의 명령에서 사용하도 함수의 return 값을 저장한다.
-
EDX (Extended Data Register)
-> D가 Data를 나타내며 곱셈과 나눗셈에 EAX와 같이쓰이나 리턴값으로는 사용되지 않는다. 부호 확장 명령 등으로 사용된다.
-
ECX (Extended Counter Register)
-> 산술 연산 레지스터로, C는 Count를 나타내며 반복문을 수행할 때 카운팅하는 역할을 한다. 반복 횟수를 저장한다.
-
EBX (Extended Base Register)
-> 산술 연산 레지스터로, ESI나 EDI와 같이 인덱스에 사용된다.
-
ESI, EDI
-> ESI는 문자열이나 각종 반복 데이터를 처리 또는 메모리를 옮기는데 사용된다. 보통 ESI는 시작 인덱스, EDI는 목적지 인덱스로 사용된다. 둘 다 데이터를 복사, 비교할 때 쓰인다.
- EBP (Extended Base Pointer) : 포인터 레지스터, 스택 프레임의 시작 주소가 저장된다.
- ESP (Extended Stack Pointer) : 포인터 레지스터, 스택 프레임의 가장 최근 주소를 저장한다.
- EIP (Extended Instruction Pointer) : 포인터 레지스터, 다음 명령어가 저정된 메모리의 주소를 저장한다.
'Security study > CTF' 카테고리의 다른 글
[Reversing] CodeEngn Basic RCE L17 (0) | 2021.02.27 |
---|---|
[Reversing] CodeEngn Basic RCE L07 (0) | 2021.02.26 |
[Reversing]codeengn Basic RCE L15 (0) | 2021.02.25 |
[Reversing] codeengn Basic RCE L09 (0) | 2021.02.24 |
[Reversing] codeengn Basic RCE L04 (0) | 2021.02.24 |