πŸ€–μ •λ³΄λ³΄μ•ˆ/β€οΈλ ˆλ“œνŒ€

[정보] 리버싱 기초 κ°œλ…

TwoIceFish 2023. 2. 15. 12:07

리버싱을 ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μ–‘ν•œ 도ꡬ듀이 μžˆμŠ΅λ‹ˆλ‹€. 이 μ€‘μ—μ„œ κ°€μž₯ 일반적으둜 μ‚¬μš©λ˜λŠ” 도ꡬ듀은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  1. 디버거 (Debugger): λ””λ²„κ±°λŠ” ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ 쀑에 μ½”λ“œμ˜ λ™μž‘μ„ μ‘°μ‚¬ν•˜κ³  였λ₯˜λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ ν”„λ‘œκ·Έλž˜λ° 언어와 ν”Œλž«νΌμ€ λ‚΄μž₯된 디버거λ₯Ό μ œκ³΅ν•˜λ©°, 제3의 디버거 도ꡬ도 많이 μžˆμŠ΅λ‹ˆλ‹€.
  2. λ””μ»΄νŒŒμΌλŸ¬ (Decompiler): λ””μ»΄νŒŒμΌλŸ¬λŠ” 컴파일된 ν”„λ‘œκ·Έλž¨μ„ μ—­μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ μ†ŒμŠ€ μ½”λ“œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 리버싱을 μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ–ΈνŒ¨μ»€ (Unpacker): μ–ΈνŒ¨μ»€λŠ” νŒ¨ν‚Ήλœ ν”„λ‘œκ·Έλž¨μ„ ν•΄μ œν•˜κ³  μ›λž˜μ˜ μ‹€ν–‰ νŒŒμΌμ„ μΆ”μΆœν•©λ‹ˆλ‹€. νŒ¨ν‚Ήλœ ν”„λ‘œκ·Έλž¨μ€ ν”„λ‘œκ·Έλž¨ μ½”λ“œλ₯Ό μ•”ν˜Έν™”ν•˜κ±°λ‚˜, λ³΅ν˜Έν™”ν•˜κΈ° μœ„ν•œ 인증 절차λ₯Ό μˆ˜ν–‰ν•˜κΈ° λ•Œλ¬Έμ— 리버싱을 μ–΄λ ΅κ²Œ λ§Œλ“€κΈ° λ•Œλ¬Έμ— μ–ΈνŒ¨ν‚Ήμ„ λ¨Όμ € μˆ˜ν–‰ν•΄μ•Όν•©λ‹ˆλ‹€.
  4. 정적 뢄석 도ꡬ (Static Analysis Tool): 정적 뢄석 λ„κ΅¬λŠ” ν”„λ‘œκ·Έλž¨ μ½”λ“œλ₯Ό λΆ„μ„ν•˜μ—¬, ν”„λ‘œκ·Έλž¨μ˜ λ‚΄λΆ€ λ™μž‘μ„ μ΄ν•΄ν•˜κ³  취약점을 λ°œκ²¬ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€.
  5. 동적 뢄석 도ꡬ (Dynamic Analysis Tool): 동적 뢄석 λ„κ΅¬λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ ν”„λ‘œκ·Έλž¨μ˜ λ™μž‘μ„ λΆ„μ„ν•˜μ—¬ 취약점을 λ°œκ²¬ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. 디버깅 및 λͺ¨λ‹ˆν„°λ§ 도ꡬ, λ©”λͺ¨λ¦¬ μŠ€μΊλ„ˆ, νŒ¨ν‚· 캑처 및 뢄석 도ꡬ 등이 μžˆμŠ΅λ‹ˆλ‹€.
  6. λ©”λͺ¨λ¦¬ 에디터 (Memory Editor): λ©”λͺ¨λ¦¬ μ—λ””ν„°λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” λ™μ•ˆ λ©”λͺ¨λ¦¬μ— μ ‘κ·Όν•˜μ—¬ 값을 μˆ˜μ •ν•˜κ±°λ‚˜, μ½”λ“œλ₯Ό μ‚½μž…ν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.
  7. νŒ¨ν‚· 캑처 도ꡬ (Packet Capture Tool): νŒ¨ν‚· 캑처 λ„κ΅¬λŠ” λ„€νŠΈμ›Œν¬ νŒ¨ν‚·μ„ μΊ‘μ²˜ν•˜κ³  λΆ„μ„ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. λ„€νŠΈμ›Œν¬ 기반 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 뢄석할 λ•Œ μœ μš©ν•©λ‹ˆλ‹€.

주의: μ•…μ˜μ μΈ λͺ©μ μœΌλ‘œ μ‚¬μš©ν•˜κ±°λ‚˜ λΆˆλ²•μ μΈ ν–‰μœ„λ₯Ό μˆ˜ν–‰ν•˜λŠ” 것은 범죄이며, 법적인 μ±…μž„μ„ μ§€κ²Œλ  수 μžˆμŠ΅λ‹ˆλ‹€.