본문 바로가기
  • 안아주는 다람쥐
seKUrity_Study : System & Reversing

[system] x86, x64 register

by Sapphire. 2023. 3. 19.

X86 Architecture

Intel x86 프로세서는 CISC 아키텍처를 사용합니다. 따라사 고사양 작업이 용이합니다.

 

x86 Registers

eax Accumulator 누산기, 산술 연산에 사용
ebx Base register 기본 레지스터, 데이터의 주소를 가리키는 포인터로 사용
ecx Counter register 카운터 레지스터, 시프트/회전 연산과 루프에서 사용
edx Data register 데이터 레지스터 - I/O 포트 엑세스 및 산술 함수에 사용 가능
esi Source index register 원본 인덱스 레지스터, 스트림 명령에서 소스를 가리키는 포인터로 사용
edi Destination index register 대상 인덱스 레지스터, 스트림 명령에서 도착점을 가리키는 포인터로 사용
ebp Base pointer register 기본 포인터 레지스터, 스택의 베이스를 가리키는 포인터로 사용
esp Stack pointer 스택 포인터, 스택의 최상단을 가리키는 포인터로 사용

모든 정수 레지스터는 32bit입니다. 그러나 대부분은 16비트 또는 8비트 하위 레지스터를 가지고 있습니다.

 

하위 레지스터

ax Low 16 bits of eax 낮은 16비트
bx Low 16 bits of ebx 낮은 16비트
cx Low 16 bits of ecx 낮은 16비트
dx Low 16 bits of edx 낮은 16비트
si Low 16 bits of esi 낮은 16비트
di Low 16 bits of edi 낮은 16비트
dp Low 16 bits of ebp 낮은 16비트
sp Low 16 bits of esp 낮은 16비트
al Low 8 bits of eax 낮은 8비트
ah High 8 bits of ex 높은 8비트
bl Low 8 bits of ebx 낮은 8비트
bh High 8 bits of bx 높은 8비트
cl Low 8 bits of ecx 낮은 8비트
ch High 8 bits of cx 높은 8비트
dl Low 8 bits of edx 낮은 8비트
dh High 8 bits of dx 높은 8비트

 

세그먼트 레지스터

SS Stack Segment 스택을 가리킴
CS Code Segment 코드를 가리킴
DS Data Segment 데이터를 가리킴
ES Extra Segment 추가적인 데이터를 가리킴 ('Extra'의 첫글자 'E')
FS F Segment 많은 추가적인 데이터를 가리킴 ('E' 다음은 'F')
GS G Segment 더 많은 추가적인 데이터를 가리킴 ('F' 다음은 'G')

 

X86 Flags

Flag Code Flag Name 플레그 이름 Flag Status Description
of Overflow Flag 오퍼블로 플래그 nvov 오버플로 없음 - 오버플로
df Direction Flag 방향 플레그 updn 위쪽 방향 - 방향 아래로
if Interrupt Flag 인터럽트 플레그 diei 인터럽트 사용 안 함 - 인터럽트 사용
sf Sign Flag 서명 플래그 plng 양수(또는 0) - 음수
zf Zero Flag 0 플래그 nzzr 0이 아닌 - 0
af Auxiliary Carry Flag 보조 캐리 플래그 naac 보조 캐리 없음 - 보조 캐리
pf Parity Flag 패리티 플래그 pepo 패리티 홀수 - 패리티도
cf Carry Flag 캐리 플래그 nccy 캐리 없음 - 캐리
tf Trap Flag 트랩 플래그 - tf가 0이면 명령 하나 실행 후, 예외 발생
디버거에서 단일 단계 추적하는데 사용
다른 애플리케이션에서 사용 금지
iopl I/O Privilege Level I/O 권한 수준 - I/O 권한 수준 0~3 사이의 값을 가진 2비트 정수
운영체제가 하드웨어를 엑세스 제어할 경우 사용
애플리케이션에서 사용 금지

 

 

x64 아키텍처

x64 아키텍처는 x86의 이전 아키텍처와 호환됩니다. x64라는 용어에는 AMD64와 Intel64가 모두 포함되며 명령어 집합 또한 거의 동일합니다.

 

x64 Register

64비트 레지스터 하위 32비트 하위 16비트 하위 8비트
rax eax ax al
rbx ebx bx bl
rcx ecx cx cl
rdx edx dx dl
rsi edx si sil
rdi esi di dil
rbp edi dp bpl
rsp ebp sp spl
r8 r8d r8w r8b
r9 r9d r9w r9b
r10 r10d r10w r10b
r11 r11d r11w r11b
r12 r12d r12w r12b
r13 r13d r13w r13b
r14 r14d r14w r14b
r15 r15d r15w r15b

'seKUrity_Study : System & Reversing' 카테고리의 다른 글

[system 실습] crackme3  (0) 2023.03.27
[system] Buffer Overflow  (1) 2023.03.19
[system 실습] CrackMe2.exe  (0) 2023.03.19
[system 실습] abex crackme #1.exe  (0) 2023.03.19
[system] Assembly handray  (1) 2023.03.11