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 |