Study/Reversing

๊ธฐ์ดˆ ์ •์  ๋ถ„์„

mnzy๐ŸŒฑ 2024. 4. 1. 13:39

 

1. ์ •์  ๋ถ„์„ 

  • ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ถ„์„
  • ์•…์„ฑ์ฝ”๋“œ์˜ ๊ธฐ๋Šฅ์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ์•…์„ฑ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋ถ„์„ํ•˜๋Š” ๊ณผ์ • 
  • ์ฃผ์š” ์‚ฌ์šฉ ๊ธฐ๋ฒ•
    • ์•ˆํ‹ฐ๋ฐ”์ด๋Ÿฌ์Šค ๋„๊ตฌ ์‚ฌ์šฉ (ex. ๋ฐฑ์‹  ..)
    • ์•…์„ฑ์ฝ”๋“œ๋ฅผ ํŒ๋ณ„ํ•˜๋Š” ํ•ด์‹œ ์ •๋ณด ๊ฒ€์ฆ (๋ชจ๋“  exe ํŒŒ์ผ์€ ์ƒ์„ฑ๋  ๋•Œ ๊ณ ์œ ์˜ ๊ฐ’์„ ๊ฐ€์ง)
    • ํŒŒ์ผ์˜ ๋ฌธ์ž์—ด, ํ•จ์ˆ˜, ํ—ค๋”์—์„œ ์ฃผ์š” ์ •๋ณด ์ˆ˜์ง‘ (e.g. PE viewer)

 

2. ์•ˆํ‹ฐ๋ฐ”์ด๋Ÿฌ์Šค ์Šค์บ๋‹ 

  • ์•…์„ฑ์ฝ”๋“œ ํƒ์ง€ (๊ธฐ๋ณธ)
    • ํŒจํ„ด ๋งค์นญ ๋ถ„์„(์ฃผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ): file signatures๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ฐพ๋Š” ๋ฐฉ๋ฒ•
    • heuristic: ์•…์„ฑ์ฝ”๋“œ๋ฅผ ๋ณ€์กฐ์‹œํ‚ค๊ฑฐ๋‚˜, ์‹ ์ข…์„ ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

VirusTotal : https://www.virustotal.com/gui/home/upload

 

VirusTotal

 

www.virustotal.com

 

์˜จ๋ผ์ธ ์ƒ์—์„œ 71๊ฐœ์˜ ์•…์„ฑ ์ฝ”๋“œ ๊ฒ€์‚ฌ ์—”์ง„์œผ๋กœ ์˜์‹ฌ์Šค๋Ÿฌ์šด ํŒŒ์ผ ๋“ฑ์„ ๋ถ„์„ํ•ด์ค€๋‹ค. 

 

- notepad.exe ํ”„๋กœ๊ทธ๋žจ ๊ฒ€์ฆ ์‹œ๋„

๋‹น์—ฐํžˆ ๋ชจ๋“  ์—”์ง„์—์„œ ํ•ด๋‹น ํŒŒ์ผ์ด ์ •์ƒ ํŒŒ์ผ์ด๋ผ๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. 

 

 

DETAILS์—์„œ ํ•ด์‹œ๊ฐ’ ํ•ญ๋ชฉ์„ ํ†ตํ•ด notepad.exe์˜ ๊ณ ์œ  ํ•ด์‹œ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์ž์ฒด์˜ ์ง„์œ„์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (๋ณ€์กฐ๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ๋“ฑ)

์ด์™ธ์˜ ๋‹ค์–‘ํ•œ ์ •๋ณด๋“ค์ด ์žˆ์Œ 

 

 

3. ํ•ด์‹œ ์ •๋ณด ๊ฒ€์ฆ 

  • ํ•ด์‹œ: ์•…์„ฑ/์ •์ƒ ์ฝ”๋“œ์˜ ๊ณ ์œ  ๊ฐ’
  • SHA-1, MD5
  • ํ•ด์‹œ ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ  ๋ณ€์กฐ๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • WinMD5Free : https://www.winmd5.com/

4. ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ 

  • ์‹คํ–‰ํ•ด๋ณด์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด ์ •๋ณด๋งŒ์„ ์ถ”์ถœํ•œ๋‹ค.
    • ์ฝ”๋“œ๋‚ด์˜ ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ๋ฐ ์ถ”์ถœ
  • ๋ฌธ์ž ํ‘œํ˜„(๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹)
    •  ASCII(8bit)
    •  Unicode(16bit)
  • Strings(https://technet.microsoft.com/en-us/sysinternals/bb897439)

 

- ์‹คํ–‰ 

 

 

- api , dll ๋“ฑ๋„ ํ™•์ธ ๊ฐ€๋Šฅ 

 

5. ํŒจํ‚น / ๋‚œ๋…ํ™” 

  • ์•…์„ฑ์ฝ”๋“œ ์€ํ ๋ชฉ์ , ๋ฌธ์ž์—ด ๊ฒ€์ƒ‰ ์•ˆ๋จ
  • LoadLibrary, GetProcAddress ํ•จ์ˆ˜ -> ์•…์„ฑ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ
  • ์ด ๋‘ ํ•จ์ˆ˜๋Š” Windows API์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, ์ฃผ๋กœ ๋™์  ๋งํฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(DLL) ํŒŒ์ผ์„ ํ”„๋กœ๊ทธ๋žจ์— ๋กœ๋“œํ•˜๊ณ , ํ•ด๋‹น DLL ํŒŒ์ผ ๋‚ด์˜ ํ•จ์ˆ˜ ์ฃผ์†Œ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • ์•…์„ฑ์ฝ”๋“œ์—์„œ์˜ ์‚ฌ์šฉ: ์•…์„ฑ์ฝ”๋“œ ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜์—ฌ ์•…์„ฑ ๊ธฐ๋Šฅ์„ ์ˆจ๊ธฐ๊ฑฐ๋‚˜, ๋ณด์•ˆ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์‰ฝ๊ฒŒ ํƒ์ง€ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • DLL์„ ๋Ÿฐํƒ€์ž„์— ๋กœ๋“œํ•˜์—ฌ ํ•ด๋‹น DLL์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์ •์  ๋ถ„์„์„ ํšŒํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • PEiD(ํƒ์ง€), UPX(ํŒจํ‚นํ”„๋กœ๊ทธ๋žจ)

ํŒจํ‚น ํŒŒ์ผ

  • ์ •์˜: ํŒจํ‚น(packing)์€ ํŒŒ์ผ์„ ์••์ถ•ํ•˜๊ณ  ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ํŒŒ์ผ์˜ ์‹ค์ œ ๋‚ด์šฉ์„ ์ˆจ๊ธฐ๋Š” ๊ธฐ์ˆ ์ด๋‹ค.
    • ์ด ๋ฐฉ๋ฒ•์€ ์ฃผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์ €์ž‘๊ถŒ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋‚˜, ์•…์„ฑ์ฝ”๋“œ ์ž‘์„ฑ์ž๋“ค๋„ ํƒ์ง€๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ž์ฃผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํŒŒ์ผ ํฌ๊ธฐ: ํŒจํ‚น ๊ณผ์ •์„ ํ†ตํ•ด ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค๊ฒŒ ๋˜๋ฉฐ, ์ด๋Š” ๋„คํŠธ์›Œํฌ ์ „์†ก ์‹œ๊ฐ„ ๊ฐ์†Œ๋‚˜ ๋””์Šคํฌ ๊ณต๊ฐ„ ์ ˆ์•ฝ ๋“ฑ์˜ ์ด์ ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ž˜ํผ ํ”„๋กœ๊ทธ๋žจ: ํŒจํ‚น๋œ ํŒŒ์ผ์„ ๋‹ค์‹œ ์›๋ž˜๋Œ€๋กœ ๋ณต๊ตฌํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ
  • ์ด ํ”„๋กœ๊ทธ๋žจ์€ ์‹คํ–‰ ์‹œ ํŒจํ‚น๋œ ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œํ•˜๊ณ , ๊ทธ ๋‚ด์šฉ์„ ๋™์ ์œผ๋กœ ๋ณต๊ตฌํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.
  • ์ฆ‰, ์›๋ณธ ์‹คํ–‰ ํŒŒ์ผ์„ ๋ž˜ํผ ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•จ๊ป˜ ํŒจํ‚นํ•˜์—ฌ ๋ฐฐํฌํ•˜๊ณ , ์‹คํ–‰ ์‹œ์— ๋ž˜ํผ๊ฐ€ ํŒจํ‚น๋œ ๋‚ด์šฉ์„ ํ’€์–ด ์›๋ณธ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.

- ์ •์ƒ ํŒŒ์ผ ํ™•์ธ 

 

UPX๋กœ ํŒจํ‚น๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.