๋ ์ง์คํฐ
์ค์์ฒ๋ฆฌ์ฅ์น(CPU)์ ๋ด๋ถ์ ์กด์ฌํ๋ ๊ณ ์ ๋ฉ๋ชจ๋ฆฌ๋ก, ์ค์์ฒ๋ฆฌ์ฅ์น์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ๊ณต๊ฐ. ์ฒ๋ฆฌ ํ ํด๋น ๊ฒฐ๊ณผ ๊ฐ ์ญ์ ๋ ์ง์คํฐ์ ์ ์ฅํ ํ ์ํฉ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํ๋ค.
๋ ์ง์คํฐ ๋จ์
OS 32/64bit : CPU๊ฐ ํ๊บผ๋ฒ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ๋์ ๋งํจ
01. ๋ฒ์ฉ ๋ ์ง์คํฐ
๋ ์ง์คํฐ | ์ญํ |
AX (Acumulator register) | ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๋ณ์๋ก, ๊ฐ์ข ์ฐ์ฐ์ ์ฐ์. ์ฃผ๋ก ๋ฆฌํด ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ์ ์ถ๋ ฅ ์ฐ์ฐ์ ์ฌ์ฉ. |
DX (Data register) | ๊ฐ์ข ์ฐ์ฐ์ ์ฐ์ด๋ ๋ณ์๋ก, ์ ์ถ๋ ฅ ๋ช ๋ น์ด์ ๊ณฑ์ ๊ณผ ๋๋์ ์ฐ์ฐ์์ ์ถ๊ฐ์ ์ ๋ฐ์ดํฐ๋ก ์ฌ์ฉ |
CX (Counter register) | ๋ฐ๋ณต๋ฌธ์ ์นด์ดํฐ๋ก ์ฌ์ฉ, ๋ฏธ๋ฆฌ ๊ฐ์ ์ ํด๋๊ณ 0์ด ๋ ๋๊น์ง ์งํ, ๋ณ์๋ก ์ฌ์ฉํด๋ ๋ฌด๋ฐฉ |
BX (Base Register) | ๋ชฉ์ ์ด ์๋ ๋ ์ง์คํฐ, ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ๊ณ์ฐ ์ ๋ฒ ์ด์ค๋ก ์ฌ์ฉ |
SI (Source Index) DI (Destination Index) |
๋ฌธ์์ด์ด๋ ๊ฐ์ข
๋ฐ๋ณต๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฎ๊ธฐ๋ ๋ฐ ์ฌ์ฉ. ๋ฐฐ์ด๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ์ธ๋ฑ์ค ๊ณ์์ ์ฌ์ฉ. ESI๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด๋๋ ค์์ EDI์๊ฒ ๋๊ฒจ์ค. give me(EDI) chocolate(ESI) |
SP (Stack Pointer) | ์คํ ๊ฐ์ฅ ๋ง์ง๋ง ๋ถ๋ถ์ ์๋ฆฌ๋ ํฌ์ธํฐ๋ก ์ฌ์ฉ. |
BP (Base Poiner) | ์คํ ์์ ๋ถ๋ถ์ ์๋ฆฌ๋ ํฌ์ธํฐ๋ก ์ฌ์ฉ. |
IP (Instruction Pointer) | CPU๊ฐ ํ์ฌ ์คํ ์ค์ธ ๋ช ๋ น์ด ์ฃผ์๋ฅผ ๊ฐ๋ฅดํด |
02. ์ธ๊ทธ๋จผํธ ๋ ์ง์คํฐ
→ ํ๋ก๊ทธ๋จ์ ์ ์๋ ํน์ ์์ญ์ผ๋ก, ์ฝ๋, ๋ฐ์ดํฐ ๊ทธ๋ฆฌ๊ณ ์คํ์ ํฌํจ
1) CS(Code Segment) : ์คํ ์ค์ธ ์ฝ๋๊ฐ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํด
2) DS(Data Segment) : ์ผ๋ฐ ๋ฐ์ดํฐ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํด
3) SS(Stack Segment) : ์คํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํด
4) ES(Extra Segment) : ์ถ๊ฐ ๋ฐ์ดํฐ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํด
5) FS, GS : ์ถ๊ฐ ๋ฐ์ดํฐ๊ฐ ์๋ ์ธ๊ทธ๋จผํธ๋ฅผ ๊ฐ๋ฆฌํด, ํน์ ์ด์์ฒด์ ์์ ์ฌ์ฉ
03. ํ๋๊ทธ ์ธ๋ฑ์ค
→ ์ฐ์ฐ ๊ฒฐ๊ณผ์ ๋ํ ์ํ ์ ๋ณด ์ ์ฅ
1) CF(Carry Flag) : ๋ถํธ ์๋ ์ซ์์ ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ๋นํธ ๋ฒ์๋ฅผ ๋์ด์ฐ์ ๊ฒฝ์ฐ ์ฐธ์ ๋ํ๋
2) ZF(Zero Flag) : ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ธ ๊ฒฝ์ฐ 0์ ๋ํ๋, cmp ๋น๊ต๊ฐ์ด ๊ฐ์ ๊ฒฝ์ฐ 1์ ๋ํ๋.
3) SF(Sign Flag) : ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ์์์ธ ๊ฒฝ์ฐ ์ฐธ์ ๋ํ๋
4) OF(Overflow Flag) : ๋ถํธ ์๋ ์ซ์์ ์ฐ์ฐ ๊ฒฐ๊ณผ๊ฐ ๋นํธ ๋ฒ์๋ฅผ ๋์ด์ฐ์ ๊ฒฝ์ฐ ์ฐธ์ ๋ํ๋
5) PF(Parity Flag) : ๊ฒฐ๊ณผ ํ์๋นํธ์ ์๋ 1์ ๋นํธ ์๊ฐ ์ง์์ผ ๊ฒฝ์ฐ ์ฐธ์ ๋ํ๋
6) AF(Auxialiary Flag) : ํ์์ ๋นํธ์์ ์ฌ๋ฆผ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์ฐธ์ ๋ํ๋
7) DF(Direction Flag) : ๋ฌธ์์ด ์กฐ์์์ ์ฐธ์ผ ๊ฒฝ์ฐ ์ฃผ์ ๋ ์ง์คํฐ ๊ฐ์ด ๊ฐ์, ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ ์ฆ๊ฐ๋ฅผ ๋ํ๋.
8) BCD(Binary Code Decimal) : ์ฐ์ฐ์ ์ฌ์ฉ
'๐ฆพ ๋ณด์ ๐ฆพ > ๋ฆฌ๋ฒ์ฑ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Practical Malware Analysis] Lab01-01.exe, Lab01-01.dll ๋ถ์ (0) | 2024.09.30 |
---|---|
x86-64 ์ด์ ๋ธ๋ฆฌ์ด (0) | 2024.08.28 |
CPU ๊ตฌ์กฐ (1) | 2024.08.26 |
PE ํ์ผ ๊ตฌ์กฐ (0) | 2024.08.26 |
[๋ฆฌ๋ฒ์ฑ] kali - pwndbg ์ธํ & ๊ธฐ๋ณธ ๋ช ๋ น์ด (0) | 2024.08.22 |