๋ฐ˜์‘ํ˜•

x86 Assembly๐Ÿค–: Essential Part(1)

์–ด์…ˆ๋ธ”๋ฆฌ์™€ x86-64

x86-64 ์–ด์…ˆ๋ธ”๋ฆฌ

๊ธฐ๋ณธ ๊ตฌ์กฐ

๋ช…๋ น์–ด(Operation Code, Opcode)์™€ ํ”ผ์—ฐ์‚ฐ์ž(Operand)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

x86-64 ์–ด์…ˆ๋ธ”๋ฆฌ์–ด ๋ฌธ๋ฒ• ๊ตฌ์กฐ

๋ช…๋ น์–ด

 

ํ”ผ์—ฐ์‚ฐ์ž

ํ”ผ์—ฐ์‚ฐ์ž๋Š” 3๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

  • ์ƒ์ˆ˜
  • ๋ ˆ์ง€์Šคํ„ฐ
  • ๋ฉ”๋ชจ๋ฆฌ
    • ๋ฉ”๋ชจ๋ฆฌ ํ”ผ์—ฐ์‚ฐ์ž๋Š” []์œผ๋กœ ๋‘˜๋Ÿฌ์‹ธ์ธ ๊ฒƒ์œผ๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์•ž์— ํฌ๊ธฐ ์ง€์ •์ž TYPE PTR์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.
    • BYTE 1๋ฐ”์ดํŠธ, WORD 2๋ฐ”์ดํŠธ, DWORD 4๋ฐ”์ดํŠธ, QWORD 8๋ฐ”์ดํŠธ

 

x86-64 ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด

Opcode: ๋ฐ์ดํ„ฐ ์ด๋™

๋ฐ์ดํ„ฐ ์ด๋™ ๋ช…๋ น์–ด๋Š” ์–ด๋–ค ๊ฐ’์„ ๋ ˆ์ง€์Šคํ„ฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฎ๊ธฐ๋„๋ก ์ง€์‹œํ•œ๋‹ค.

Opcode: ์‚ฐ์ˆ  ์—ฐ์‚ฐ

์‚ฐ์ˆ  ์—ฐ์‚ฐ ๋ช…๋ น์–ด๋Š” ๋ง์…ˆ, ๋บ„์…ˆ, ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ ์—ฐ์‚ฐ์„ ์ง€์‹œํ•œ๋‹ค.

 

Opcode: ๋…ผ๋ฆฌ ์—ฐ์‚ฐ - and, or

๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋ช…๋ น์–ด๋Š” and, or, xor, neg ๋“ฑ์˜ ๋น„ํŠธ ์—ฐ์‚ฐ์„ ์ง€์‹œํ•œ๋‹ค.

 

and dst, scr

dst์™€ scr์˜ ๋น„ํŠธ๊ฐ€ ๋ชจ๋‘ 1์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0

 

or dst, scr

dst์™€ scr์˜ ๋น„ํŠธ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ 1์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0

 

Opcode: ๋…ผ๋ฆฌ ์—ฐ์‚ฐ - xor, not

xor dst, scr

dst์™€ scr์˜ ๋น„ํŠธ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0

 

not op

op์˜ ๋น„ํŠธ ์ „๋ถ€ ๋ฐ˜์ „

 

Opcode: ๋น„๊ต/๋ถ„๊ธฐ

๋น„๊ต

๋น„๊ต ๋ช…๋ น์–ด๋Š” ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์„ ๋น„๊ตํ•˜๊ณ , ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •ํ•œ๋‹ค.

 

cmp op1, op2

op1๊ณผ op2๋ฅผ ๋น„๊ต

cmp๋Š” ๋‘ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋นผ์„œ ๋Œ€์†Œ๋ฅผ ๋น„๊ตํ•œ๋‹ค.

์„œ๋กœ ๊ฐ™์€ ๋‘ ์ˆ˜๋ฅผ ๋นผ๋ฉด ๊ฒฐ๊ณผ๊ฐ€ 0์ด ๋˜์–ด ZFํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋œ๋‹ค. ๋”ฐ๋ผ์„œ CPU๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณด๊ณ  ๋‘ ๊ฐ’์ด ๊ฐ™์•˜๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

 

test op1, op2

op1๊ณผ op2๋ฅผ ๋น„๊ต

test๋Š” ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์— AND ๋น„ํŠธ์—ฐ์‚ฐ์„ ์ทจํ•œ๋‹ค.

0์ด๋œ rax๋ฅผ op1๊ณผ op2๋กœ ์‚ผ์•„ test๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด, ๊ฒฐ๊ณผ๊ฐ€ 0์ด๋ฏ€๋กœ ZFํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋œ๋‹ค. CPU๋Š” ์ด ํ”Œ๋ž˜๊ทธ๋ฅผ ๋ณด๊ณ  rax๊ฐ€ 0์ด์—ˆ๋Š”์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋ถ„๊ธฐ

๋ถ„๊ธฐ ๋ช…๋ น์–ด๋Š” rip๋ฅผ ์ด๋™์‹œ์ผœ ์‹คํ–‰ ํ๋ฆ„์„ ๋ฐ”๊พผ๋‹ค.

 

jmp addr

addr๋กœ rip๋ฅผ ์ด๋™์‹œํ‚จ๋‹ค.

 

je addr

์ง์ „์— ๋น„๊ตํ•œ ๋‘ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด ์ ํ”„(jump if equal)

 

jg addr

์ง์ „์— ๋น„๊ตํ•œ ๋‘ ์—ฐ์‚ฐ์ž ์ค‘ ์ „์ž๊ฐ€ ๋” ํฌ๋ฉด ์ ํ”„(jump if greater)

 

์š”์•ฝ

  1. ๋ฐ์ดํ„ฐ ์ด๋™ ์—ฐ์‚ฐ์ž
    • mov dst, src: src์˜ ๊ฐ’์„ dst์— ๋Œ€์ž…
    • lea dst, src: src์˜ ์œ ํšจ ์ฃผ์†Œ๋ฅผ dst์— ๋Œ€์ž…
  2. ์‚ฐ์ˆ  ์—ฐ์‚ฐ
    • add dst, src: src์˜ ๊ฐ’์„ dst์— ๋”ํ•จ
    • sub dst, src: src์˜ ๊ฐ’์„ dst์—์„œ ๋บŒ
    • inc op: op์˜ ๊ฐ’์„ 1 ๋”ํ•จ
    • dec op: op์˜ ๊ฐ’์„ 1 ๋บŒ
  3. ๋…ผ๋ฆฌ ์—ฐ์‚ฐ
    • and dst, src: dst์™€ src๊ฐ€ ๋ชจ๋‘ 1์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0
    • or dst, src: dst์™€ src์ค‘ ํ•œ ์ชฝ์ด๋ผ๋„ 1์ด๋ฉด 1, ์•„๋‹ˆ๋ฉด 0
    • xor dst, src: dst์™€ src๊ฐ€ ๋‹ค๋ฅด๋ฉด 1, ๊ฐ™์œผ๋ฉด 0
    • not op: op์˜ ๋น„ํŠธ๋ฅผ ๋ชจ๋‘ ๋ฐ˜์ „
  4. ๋น„๊ต
    • cmp op1, op2: op1์—์„œ op2๋ฅผ ๋นผ๊ณ  ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •
    • test op1, op2: op1๊ณผ op2์— AND ์—ฐ์‚ฐ์„ ํ•˜๊ณ , ํ”Œ๋ž˜๊ทธ๋ฅผ ์„ค์ •
  5. ๋ถ„๊ธฐ
    • jmp addr: addr๋กœ rip ์ด๋™
    • je addr: ์ง์ „ ๋น„๊ต์—์„œ ๋‘ ํ”ผ์—ฐ์‚ฐ์ž์˜ ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ addr๋กœ rip ์ด๋™
    • jg addr: ์ง์ „ ๋น„๊ต์—์„œ ๋‘ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ์ „์ž์˜ ๊ฐ’์ด ๋” ํด ๊ฒฝ์šฐ addr๋กœ rip ์ด๋™

x86 Assembly๐Ÿค–: Essential Part(2)

x86-64 ์–ด์…ˆ๋ธ”๋ฆฌ ๋ช…๋ น์–ด2

Opcode: ์Šคํƒ

push val

val์„ ์Šคํƒ ์ตœ์ƒ๋‹จ์— ์Œ“์Œ

 

pop reg

์Šคํƒ ์ตœ์ƒ๋‹จ์˜ ๊ฐ’์„ ๊บผ๋‚ด์„œ reg์— ๋Œ€์ž…

 

Opcode: ํ”„๋กœ์‹œ์ €

ํ”„๋กœ์‹œ์ €๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์ด๋‹ค.

ํ”„๋กœ์‹œ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜๋ณต๋˜๋Š” ์—ฐ์‚ฐ์„ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ „์ฒด ์ฝ”๋“œ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธฐ๋Šฅ๋ณ„๋กœ ์ฝ”๋“œ ์กฐ๊ฐ์— ์ด๋ฆ„์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ํฌ๊ฒŒ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ์‹œ์ €๋ฅผ ๋ถ€๋ฅด๋Š” ํ–‰์œ„๋ฅผ ํ˜ธ์ถœ(Call)์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ํ”„๋กœ์‹œ์ €์—์„œ ๋Œ์•„์˜ค๋Š” ๊ฒƒ์„ ๋ฐ˜ํ™˜(Return)์ด๋ผ๊ณ  ํ•œ๋‹ค.

ํ”„๋กœ์‹œ์ €๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋‚˜์„œ ์›๋ž˜์˜ ์‹คํ–‰ ํ๋ฆ„์œผ๋กœ ๋Œ์•„์™€์•ผ ํ•˜๋ฏ€๋กœ, call ๋‹ค์Œ์˜ ๋ช…๋ น์–ด ์ฃผ์†Œ(Return Address, ๋ฐ˜ํ™˜ ์ฃผ์†Œ)๋ฅผ ์Šคํƒ์— ์ €์žฅํ•˜๊ณ  ํ”„๋กœ์‹œ์ €๋กœ rip๋ฅผ ์ด๋™์‹œํ‚จ๋‹ค.

 

call addr

addr์— ์œ„์น˜ํ•œ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ

 

leave

์Šคํƒ ํ”„๋ ˆ์ž„ ์ •๋ฆฌ

 

ret

return address๋กœ ๋ฐ˜ํ™˜

 

Opcode: ์‹œ์Šคํ…œ ์ฝœ

์šด์˜์ฒด์ œ๋Š” ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋“ค์„ ์ œ์–ดํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

ํ•ดํ‚น์œผ๋กœ๋ถ€ํ„ฐ ๊ถŒํ•œ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋„ ๋ชจ๋“œ์™€ ์œ ์ € ๋ชจ๋“œ๋กœ ๊ถŒํ•œ์„ ๋‚˜๋ˆˆ๋‹ค.

๋ฆฌ๋ˆ…์Šค ๊ณ„์ธต

 

์ปค๋„ ๋ชจ๋“œ

  • ์šด์˜์ฒด์ œ๊ฐ€ ์ „์ฒด ์‹œ์Šคํ…œ์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด์— ๋ถ€์—ฌํ•˜๋Š” ๊ถŒํ•œ
  •  ํŒŒ์ผ์‹œ์Šคํ…œ, ์ž…๋ ฅ/์ถœ๋ ฅ, ๋„คํŠธ์›Œํฌ ํ†ต์‹ , ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋“ฑ ๋ชจ๋“  ์ €์ˆ˜์ค€์˜ ์ž‘์—…์€ ์‚ฌ์šฉ์ž ๋ชจ๋ฅด๊ฒŒ ์ปค๋„ ๋ชจ๋“œ์—์„œ ์ง„ํ–‰

์œ ์ € ๋ชจ๋“œ

  • ์šด์˜์ฒด์ œ๊ฐ€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ถ€์—ฌํ•˜๋Š” ๊ถŒํ•œ

์‹œ์Šคํ…œ ์ฝœ

  • ์œ ์ € ๋ชจ๋“œ์—์„œ ์ปค๋„ ๋ชจ๋“œ์˜ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด์—๊ฒŒ ์–ด๋–ค ๋™์ž‘์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์†Œํ”„ํŠธ์›จ์–ด ๋Œ€๋ถ€๋ถ„์€ ์ปค๋„์˜ ๋„์›€์ด ํ•„์š”ํ•˜๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ปค๋„์—๊ฒŒ ๋„์›€์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์š”์ฒญ์„ ์‹œ์Šคํ…œ ์ฝœ์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • ์œ ์ € ๋ชจ๋“œ์˜ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ•„์š”ํ•œ ๋„์›€์„ ์š”์ฒญํ•˜๋ฉด, ์ปค๋„์ด ์š”์ฒญํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์œ ์ €์—๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

x64 syscall ํ…Œ์ด๋ธ”

 

์š”์•ฝ

  1. ์Šคํƒ
    • push val: rsp๋ฅผ 8๋งŒํผ ๋นผ๊ณ , ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ์— val์„ ์Œ“์Šต๋‹ˆ๋‹ค.
    • pop reg: ์Šคํƒ ์ตœ์ƒ๋‹จ์˜ ๊ฐ’์„ reg์— ๋„ฃ๊ณ , rsp๋ฅผ 8๋งŒํผ ๋”ํ•ฉ๋‹ˆ๋‹ค.
  2. ํ”„๋กœ์‹œ์ €
    • call addr: addr์˜ ํ”„๋กœ์‹œ์ €๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.
    • leave: ์Šคํƒ ํ”„๋ ˆ์ž„์„ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ret: ํ˜ธ์ถœ์ž์˜ ์‹คํ–‰ ํ๋ฆ„์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
  3. ์‹œ์Šคํ…œ ์ฝœ
    • syscall: ์ปค๋„์—๊ฒŒ ํ•„์š”ํ•œ ๋™์ž‘์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

QUIZ

[Register]
rbx = 0x401A40

=================================

[Memory]
0x401a40 | 0x0000000012345678
0x401a48 | 0x0000000000C0FFEE
0x401a50 | 0x00000000DEADBEEF
0x401a58 | 0x00000000CAFEBABE
0x401a60 | 0x0000000087654321

=================================

[Code]
1: mov rax, [rbx+8]
2: lea rax, [rbx+8]

Q1. ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Code๋ฅผ 1๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A1. 0xC0FFEE

 

Q2. Code๋ฅผ 2๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ๋“ค์–ด์žˆ๋Š” ๊ฐ’์€?

A2. 0x401A48

 

[Register]
rax = 0x31337
rbx = 0x555555554000
rcx = 0x2

=================================

[Memory]
0x555555554000| 0x0000000000000000
0x555555554008| 0x0000000000000001
0x555555554010| 0x0000000000000003
0x555555554018| 0x0000000000000005
0x555555554020| 0x000000000003133A

==================================

[Code]
1: add rax, [rbx+rcx*8]
2: add rcx, 2
3: sub rax, [rbx+rcx*8]
4: inc rax

Q3. ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Code๋ฅผ 1๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A3. 0x3133A

[rbx+rcx*8] = 0x555555554010

๋”ฐ๋ผ์„œ rax = 31337 + 3 = 0x3133A

 

Q4. Code๋ฅผ 3๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A4. 0

rcx = 4

[rbx+rcx*8] = 0x555555554020

rax = 0 - 0 = 0

 

[Register]
rax = 0x31337
rbx = 0x555555554000
rcx = 0x2

=================================

[Memory]
0x555555554000| 0x0000000000000000
0x555555554008| 0x0000000000000001
0x555555554010| 0x0000000000000003
0x555555554018| 0x0000000000000005
0x555555554020| 0x000000000003133A

==================================

[Code]
1: add rax, [rbx+rcx*8]
2: add rcx, 2
3: sub rax, [rbx+rcx*8]
4: inc rax

Q5. Code๋ฅผ 4๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A5. 1

1. rax = 0x3133A

2. rcx = 4

3. rax = 0

4. rax = rax + 1 = 1

 

[Register]
rax = 0xffffffff00000000
rbx = 0x00000000ffffffff
rcx = 0x123456789abcdef0

==================================

[Code]
1: and rax, rcx
2: and rbx, rcx
3: or rax, rbx

Q6. ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Code๋ฅผ 1๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A6. 0x1234567800000000

 

Q7. Code๋ฅผ 2๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rbx์— ์ €์žฅ๋œ ๊ฐ’์€?

A7. 0x000000009ABCDEF0

 

Q8. Code๋ฅผ 3๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A8. 0x123456789ABCDEF0

 

[Register]
rax = 0x35014541
rbx = 0xdeadbeef

==================================

[Code]
1: xor rax, rbx
2: xor rax, rbx
3: not eax

Q9. ๋ ˆ์ง€์Šคํ„ฐ, ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Code๋ฅผ 1๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A9. 0xEBACFBAE

 

 

Q10. Code๋ฅผ 2๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A10. 0x35014541

 

Q11. Code๋ฅผ 3๊นŒ์ง€ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, rax์— ์ €์žฅ๋œ ๊ฐ’์€?

A11. 0xCAFEBABE

๋ฐ˜์‘ํ˜•

'Dreamhack > System Hacking' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Tool Installation - pwntools  (0) 2024.03.20
Tool Installation - gdb  (0) 2024.03.20
Background - Computer Science - Linux Memory Layout  (0) 2024.03.19
Background - Computer Science - Computer Architecture  (0) 2024.03.19
System Hacking Introduction  (1) 2024.03.19