SECURITY/REVERSING

λ°”μ΄λ„ˆλ¦¬ 파일, 파일 μ‹œκ·Έλ‹ˆμ²˜, PE 와 ELF ν˜•μ‹

\b\t 2020. 7. 19. 23:34

λ°”μ΄λ„ˆλ¦¬ 파일

 

: μ‚¬μš©μž λ˜λŠ” ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λ˜ μ •λ³΄λ‚˜ 숫자 값을 νŠΉλ³„ν•œ 가곡 없이 κ·ΈλŒ€λ‘œ μ €μž₯ν•œ 것

λ°”μ΄λ„ˆλ¦¬ 파일 λ‚΄μš©μ„ ν™•μΈν•˜λ €λ©΄ λ³„λ„μ˜ ν”„λ‘œκ·Έλž¨ 등이 ν•„μš”ν•˜λ‹€.

 

λ§Œμ•½ νŒŒμΌμ— 34, 67, 97 의 μ •λ³΄λ§Œ μ €μž₯λ˜μ–΄μžˆλ‹€λ©΄ 무슨 μ˜λ―ΈμΈμ§€ μ•Œ 수 μ—†μ§€λ§Œ,

그림판, 사진 μ•±κ³Ό 같이 사진을 λ³Ό 수 μžˆλŠ” ν”„λ‘œκ·Έλž¨μœΌλ‘œ λ³Έλ‹€λ©΄ λ‹€λ₯Έ 의미λ₯Ό 찾을 수 μžˆλ‹€.

 

이 ν¬μŠ€νŒ…μ˜ 제λͺ©μ„ μΊ‘μ³ν•œ 것을 μ €μž₯ν•˜μ˜€λ‹€.

사진 μ•±μœΌλ‘œ 이 νŒŒμΌμ„ μ—°λ‹€λ©΄

 

 

이런 κ²°κ³Όκ°€ λ‚˜μ˜€μ§€λ§Œ, λ©”λͺ¨μž₯으둜 열어보면 

 

와 같은 κ²°κ³Όκ°€ λ‚˜μ˜¨λ‹€.

 

κ·Έλƒ₯ λ΄μ„œλŠ” κ·Έ 이미λ₯Ό 이해할 수 μ—†λŠ” 'μ“°λ ˆκΈ°' 값이 λ‚˜μ˜¨λ‹€.

 

 

μ΄λ ‡κ²Œ exe, jpg, png, mp3, word λ“±μ˜ 파일이 λ°”μ΄λ„ˆλ¦¬ νŒŒμΌμ— ν•΄λ‹Ήν•œλ‹€.

 

 

 

 

μ°Έκ³ ) ν…μŠ€νŠΈ 파일

 

ν…μŠ€νŠΈ νŒŒμΌμ€ 문자λ₯Ό 기반으둜 ν•˜λŠ” 파일둜, λ¬ΈμžλΌλŠ” 가곡 쑰건으둜 μƒμ„±λœ νŒŒμΌμ΄λ‹€. 

 

λ§Œμ•½ ASCII / UTF-8 기반의 ν…μŠ€νŠΈ 파일이라면 ASCII / UTF-8 ν˜•μ‹μ˜ λ¬Έμžμ—΄μ΄ μ €μž₯λ˜μ–΄ μžˆλŠ” 것이닀.

 

int a = 20000; λ₯Ό λ°”μ΄λ„ˆλ¦¬λ‘œ μ €μž₯ν•œλ‹€λ©΄ 4 byte 에 μ €μž₯ν•  수 μžˆμ§€λ§Œ

ν…μŠ€νŠΈ νŒŒμΌμ— μ €μž₯ν•œλ‹€λ©΄ 더 λ§Žμ€ 곡간을 ν•„μš”λ‘œ ν•œλ‹€.

 

 

 

파일 μ‹œκ·Έλ‹ˆμ²˜ (file signature) (= file magic number)

 

: 파일 ν˜•μ‹λ§ˆλ‹€ 가지고 μžˆλŠ” 고유의 νŠΉμ§•, 즉 포맷에 λŒ€ν•œ 정보이닀.

즉, 파일의 ν˜•μ‹λ§ˆλ‹€ μ •ν•΄μ Έ μžˆλŠ” νŠΉμ •ν•œ byte λ“€ 이닀.

 

파일의 μ²˜μŒμ—λ§Œ μ‘΄μž¬ν•˜λŠ” 파일 포맷도 있고, λ§ˆμ§€λ§‰μ— μ‘΄μž¬ν•˜λŠ” 파일 포맷도 μžˆλ‹€.

파일의 μ²˜μŒμ— μžˆλŠ” μ‹œκ·Έλ‹ˆμ²˜λŠ” 헀더(Header) μ‹œκ·Έλ‹ˆμ²˜,

파일의 λ§ˆμ§€λ§‰μ— μžˆλŠ” μ‹œκ·Έλ‹ˆμ²˜λŠ” ν‘Έν„°(Footer or Tailer) μ‹œκ·Έλ‹ˆμ²˜ 라고 ν•œλ‹€.

 

λ§Œμ•½ 헀더와 ν‘Έν„° μ‹œκ·Έλ‹ˆμ²˜κ°€ λ‹€λ₯Έ ν˜•μ‹μΌ 경우, νŒŒμΌμ— λ¬Έμ œκ°€ μžˆκ±°λ‚˜ μ‘°μž‘λœ 파일일 κ°€λŠ₯성이 μžˆλ‹€.

 

HxD ν”„λ‘œκ·Έλž¨μœΌλ‘œ μ‰½κ²Œ 확인할 수 μžˆλ‹€.

 

File Type Header Signature (Hex) Footer Signature (Hex)
JPEG FF D8 FF E0
FF D8 FF E8
FF D9
GIF 47 49 46 38 37 61
47 49 46 38 39 61
00 3B
PNG 89 50 4E 47 0D 0A 1A 0A 49 45 4E 44 AE 42 60 82
PDF 25 50 44 46 2D 31 2E 25 25 45 4F 46
ZIP 50 4B 03 04 50 4B 05 06
ALX 41 4C 5A 01 43 4C 5A 02
RAR 52 61 72 21 1A 07 3D 7B 00 40 07 00

 

더 λ§Žμ€ 파일 μ‹œκ·Έλ‹ˆμ²˜λŠ”

-> https://en.wikipedia.org/wiki/List_of_file_signatures

-> https://www.garykessler.net/library/file_sigs.html

 

 

 

PE ν˜•μ‹ (Portable Executable)

: μœˆλ„μš° μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš©λ˜λŠ” μ‹€ν–‰ 파일, object μ½”λ“œ 등을 μœ„ν•œ 파일 ν˜•μ‹

 

μœˆλ„μš° λ‘œλ”κ°€ μ‹€ν–‰ κ°€λŠ₯ν•œ μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” 데 ν•„μš”ν•œ 정보λ₯Ό μΊ‘μŠν™”ν•œ 데이터 ꡬ쑰체이닀.

 

Windows 3.1 λΆ€ν„° μ§€μ›λ˜λŠ” μ‹€ν–‰ 파일 ν˜•μ‹

 

 

ELF ν˜•μ‹ (Executable and Linkabel Format)

: μœ λ‹‰μŠ€ 계열 운영체제(λ¦¬λˆ…μŠ€ λ“±) μ—μ„œ μ‚¬μš©λ˜λŠ” μ‹€ν–‰ 파일, object μ½”λ“œ 등을 μœ„ν•œ νŒŒμΌ ν˜•μ‹

 

 

 

- μ΄λŸ¬ν•œ μ‹€ν–‰ νŒŒμΌμ„ 톡해 ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λŠ” API , DLL λ“± λ‹€μ–‘ν•œ 정보와

  μ–΄λŠ λ©”λͺ¨λ¦¬ μ£Όμ†Œμ— λ‘œλ”©λ˜λŠ”μ§€λ₯Ό 확인할 수 μžˆλ‹€.

 

- 파일이 μ‹€ν–‰λ˜κΈ° μœ„ν•œ λͺ¨λ“  정보λ₯Ό μ•Œ 수 μžˆλ‹€.

 

 

각 파일 ν˜•μ‹μ—λŠ” 파일 속성(Machine, NumberOfSections λ“±)κ³Ό 같은 정보가 있으며

이 정보듀이 κ°–λŠ” 파일 μ‹œκ·Έλ‹ˆμ²˜λ‘œ 뢄석할 수 μžˆλ‹€.

 

 

μ°Έκ³ )

https://rednooby.tistory.com/33

.