[리버싱] 알아야 할 주요 레지스터
### Register ###
연산 처리 및 번지지정을 도와줌
컴퓨터의 장치들을 제어함.
레지스터들도 종류가 나뉩니다.
General Purpose Register (범용 레지스터) : 일반적인 목적으로 쓰임
-EAX : 연산의 결과값이 저장되는 레지스터, 함수의 리턴값이 저장되기도 한다.
- EBX : 주소연산 결과값이 저장 된다, 흔하게 사용되지는 아니함.
- ECX : 반복의 횟수를 저장
- EDX : EAX 레지스터의 보조역할을 수행한다.
예를들면, 나누기 연산 수행 시 몫은 EAX레지스터에 저장이 되며,
나머지는 EDX에 저장 된다.
X는 레지스터를 의미하며 , E는 확장을 의미 한다.
16비트 레지스터에는 E가 붙지 않지만,
컴퓨터가 발전하면서 32비트, 64비트에서는
E가 붙습니다.
* 추가적인 범용레지스터 4가지 *
ESI, EDI : 문자열을 저장하는 용도로 쓰이는 레지스터
S : Source , D : Destination
ESP, EBP : 스택구조의 Top, Bottom과 같음.
ESP(스택포인터) = Top
EBP(베이스포인터) = Bottom
ESP = EBP 값이 똑같다? => Stack에 데이터가 하나도 없다.
* 그밖의 레지스터 *
EIP : Program Counter라고도 함, 다음에 수행해야 할 위치를 저장하고 있다.
Eflags (상태 레지스터) : CPU의 상태를 나타내는 레지스터, Z(Zero flag) 평상시에는 0이다가 연산의 결과가
0이 나오면 값이 1로 바뀌어 상태를 알려준다.
'모의해킹 > 리버싱' 카테고리의 다른 글
[리버싱] 기본 어셈블리 명령어 (0) | 2017.07.29 |
---|---|
[리버싱] 리버싱 사전 지식 (0) | 2017.07.29 |
댓글