cho2cee
TIL
cho2cee
전체 방문자
였늘
μ–΄μ œ
  • 전체 κ²Œμ‹œκΈ€ (78)
    • Cloud (31)
      • AWS (12)
      • Kubernetes (16)
      • IaC (3)
    • Security (15)
      • ELK (5)
      • Reversing (10)
    • Network (8)
    • Linux (4)
    • Etc. (20)
      • 기타 (4)
      • 업무 (16)

νƒœκ·Έ

  • CLOUD
  • 합격후기
  • AWS
  • VPC
  • SAA

졜근 λŒ“κΈ€

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝
hELLO
cho2cee

TIL

[Reversing] 01μž₯. 리버싱 μŠ€ν† λ¦¬
Security/Reversing

[Reversing] 01μž₯. 리버싱 μŠ€ν† λ¦¬

2021. 11. 21. 11:43

πŸ‘† μœ„ 책을 읽고 μ •λ¦¬ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. 

 

1. λ¦¬λ²„μŠ€ μ—”μ§€λ‹ˆμ–΄λ§ 

λ¦¬λ²„μŠ€ μ—”μ§€λ‹ˆμ–΄λ§(Reverse Engineering, Re: 역곡학) : λ¬Όκ±΄μ΄λ‚˜ 기계μž₯치 ν˜Ήμ€ μ‹œμŠ€ν…œ λ“±μ˜ ꡬ쑰, κΈ°λŠ₯, λ™μž‘ 등을 λΆ„μ„ν•˜μ—¬ κ·Έ 원리λ₯Ό μ΄ν•΄ν•˜λ©° 단점을 λ³΄μ™„ν•˜κ³  μƒˆλ‘œμš΄ 아이디어λ₯Ό μΆ”κ°€ν•˜λŠ” 일련의 μž‘μ—… 

 

2. λ¦¬λ²„μŠ€ μ½”λ“œ μ—”μ§€λ‹ˆμ–΄λ§ 

λ¦¬λ²„μŠ€ μ½”λ“œ μ—”μ§€λ‹ˆμ–΄λ§(Reverse Code Engineering, RCE) : μ†Œν”„νŠΈμ›¨μ–΄ λΆ„μ•Όμ˜ λ¦¬λ²„μŠ€ μ—”μ§€λ‹ˆμ–΄λ§

 

2.1 리버싱(뢄석) 방법 

1) 정적 뢄석 

  • 파일의 겉λͺ¨μŠ΅μ„ κ΄€μ°°ν•˜μ—¬ λΆ„μ„ν•˜λŠ” 방법 
  • 정적 뢄석 λ‹¨κ³„μ—μ„œλŠ” νŒŒμΌμ„ μ‹€ν–‰ν•˜μ§€ μ•ŠμŒ
  • 파일의 μ’…λ₯˜, 크기, 헀더(PE) 정보, Import/Export API, λ‚΄λΆ€ λ¬Έμžμ—΄, μ‹€ν–‰ μ••μΆ• μ—¬λΆ€, 등둝 정보, 디버깅 정보, λ””μ§€ν„Έ μΈμ¦μ„œ λ“±μ˜ λ‹€μ–‘ν•œ λ‚΄μš©μ„ ν™•μΈν•˜λŠ” 것 
  • λ””μŠ€μ–΄μ…ˆλΈ”λŸ¬λ₯Ό μ΄μš©ν•΄μ„œ λ‚΄λΆ€ μ½”λ“œμ™€ κ·Έ ꡬ쑰λ₯Ό ν™•μΈν•˜λŠ” 것 

2) 동적 뢄석 

  • νŒŒμΌμ„ 직접 μ‹€ν–‰μ‹œμΌœμ„œ κ·Έ ν–‰μœ„λ₯Ό λΆ„μ„ν•˜κ³ , 디버깅을 톡해 μ½”λ“œ 흐름과 λ©”λͺ¨λ¦¬ μƒνƒœ 등을 μžμ„Ένžˆ μ‚΄νŽ΄λ³΄λŠ” 방법 
  • 파일, λ ˆμ§€μŠ€νŠΈλ¦¬, λ„€νŠΈμ›Œν¬ 등을 κ΄€μ°°ν•˜λ©΄μ„œ ν”„λ‘œκ·Έλž¨μ˜ ν–‰μœ„λ₯Ό 뢄석 
  • 디버거λ₯Ό μ΄μš©ν•˜μ—¬ ν”„λ‘œκ·Έλž¨ λ‚΄λΆ€ ꡬ쑰와 λ™μž‘ 원리λ₯Ό 뢄석 

 

2.2 Source, Hex, Assembly code

Source Code 

κ°œλ°œλ„κ΅¬(Visual C++)μ—μ„œ μ†ŒμŠ€μ½”λ“œλ₯Ό λΉŒλ“œν•˜λ©΄ .exe μ‹€ν–‰νŒŒμΌμ΄ 생성됨 

 

Hex Code 

μƒμ„±λœ μ‹€ν–‰ νŒŒμΌμ€ 컴퓨터가 이해할 수 μžˆλŠ” 2μ§„μˆ˜ ν˜•μ‹μœΌλ‘œ λ˜μ–΄μžˆμŒ 

2μ§„μˆ˜λ₯Ό 16μ§„μˆ˜(Hex ν˜•μ‹)으둜 λ³€ν™˜μ‹œν‚€λ©΄ 보기에 훨씬 μˆ˜μ›”ν•˜λ‹€.

Hex EditorλŠ” binary ν˜•μ‹μ˜ νŒŒμΌμ„ hex ν˜•μ‹μœΌλ‘œ λ³΄μ—¬μ£ΌλŠ” μœ ν‹Έλ¦¬ν‹° 

 

Assembly Code 

Hex CodeλŠ” μ‚¬λžŒμ—κ²Œ 직관적인 ν˜•νƒœλŠ” μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— μ‚¬λžŒμ΄ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄ μ–΄μ…ˆλΈ”λ¦¬ μ½”λ“œλ‘œ λ³€ν™˜ν•œλ‹€.

Ollydbgλ₯Ό μ΄μš©ν•΄ .exe μ‹€ν–‰νŒŒμΌμ„ μ–΄μ…ˆλΈ”λ¦¬ μ½”λ“œ ν˜•νƒœλ‘œ λ³Ό 수 있음 

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)

'Security > Reversing' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Reversing] 05. μŠ€νƒ  (0) 2021.11.26
[Reversing] 04. IA-32 Register κΈ°λ³Έ μ„€λͺ…  (0) 2021.11.25
[Reversing] 03. 리틀 μ—”λ””μ–Έ ν‘œκΈ°λ²•  (0) 2021.11.25
[Reversing] OllyDbg 기초 μ‚¬μš©λ²•  (0) 2021.11.25
[Reversing] 02μž₯. Hello World! 리버싱  (0) 2021.11.22
    'Security/Reversing' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [Reversing] 04. IA-32 Register κΈ°λ³Έ μ„€λͺ…
    • [Reversing] 03. 리틀 μ—”λ””μ–Έ ν‘œκΈ°λ²•
    • [Reversing] OllyDbg 기초 μ‚¬μš©λ²•
    • [Reversing] 02μž₯. Hello World! 리버싱
    cho2cee
    cho2cee
    Today I Learned

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”