๋ฆฌ๋ฒ์ฑ ๊ธฐ์ด
- -
๋ชจ๋ ๋ด์ฉ์ ์ถ์ฒ๋ ๊ตฌ๊ธ, ๊ตฌ๊ธ ์ํค๋ฐฑ๊ณผ, ๊ทธ์ธ์ ๋ธ๋ก๊ทธ ๋ฑ์ ์ฐธ๊ณ ํ์์ต๋๋ค.
๋ํ ํ๊ต ์์ ์๊ฐ์ ์๋ฃ๋ฅผ ์ฐธ๊ณ ํ์ฌ ๊ธ์ ์์ฑํ์์ต๋๋ค.
๋ฆฌ๋ฒ์ฑ ๊ธฐ์ด์ ๋ํ ๋์์ด ๋ ๋ฏ ํ์ฌ ์ฌ๋ ค ๋์ ๊ฒ์ด๋ฉฐ,์์ฉ๋ชฉ์ ์ด ์๋๋๋ค.
1-1. ๋ฆฌ๋ฒ์ฑ ์์ง๋์ด๋ง
๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง(reverse engineering, RE) ๋๋ ์ญ๊ณตํ(้ๅทฅๅญธ)์ ์ฅ์น ๋๋ ์์คํ ์ ๊ธฐ์ ์ ์ธ ์๋ฆฌ๋ฅผ ๊ทธ ๊ตฌ์กฐ๋ถ์์ ํตํด ๋ฐ๊ฒฌํ๋ ๊ณผ์ ์ด๋ค. ์ด๊ฒ์ ์ข ์ข ๋์(๊ธฐ๊ณ ์ฅ์น, ์ ์ ๋ถํ, ์ํํธ์จ์ด ํ๋ก๊ทธ๋จ ๋ฑ)์ ์กฐ๊ฐ๋ด์ ๋ถ์ํ๋ ๊ฒ์ ํฌํจํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ง ๋ณด์๋ฅผ ์ํด, ๋๋ ๊ฐ์ ๊ธฐ๋ฅ์ ํ๋ ์ ์ฅ์น๋ฅผ ์๋ณธ์ ์ผ๋ถ๋ฅผ ์ด์ฉํ์ง ์๊ณ ๋ง๋ค๊ธฐ ์ํด ๋์์ ์ธ๋ถ์ ์ธ ์๋์ ๋ถ์ํ๋ ๊ฒ์ ํฌํจํ๋ค.
๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ๊ธฐ์์ ์์ ์ ๋๋ ๊ตฐ์ฌ์ ์ผ๋ก ํ๋์จ์ด๋ฅผ ๋ถ์ํ ๊ฒ์์ ์์๋์๋ค. ๋ชฉ์ ์ ์๋ณธ ์์ฐ์ ์ ์ฐจ์ ๊ดํ ์ง์์ด ๊ฑฐ์ ์๋ ์ํ์์, ์ต์ข ์ ํ์ ๊ฐ์ง๊ณ ๋์์ธ ๊ฒฐ์ ๊ณผ์ ์ ์ถ๋ก ํ๋ ๊ฒ์ด๋ค. ๊ฐ์ ๊ธฐ์ ์ด ๋ ๊ฑฐ์ ์ํํธ์จ์ด ์์คํ ์ ์์ฉํ๊ธฐ ์ํด ํ์ฌ ์ฐ๊ตฌ๋๊ณ ์๋๋ฐ, ์ฐ์ ์ด๋ ๊ตญ๋ฐฉ์ด ์๋๊ณ , ์ค๋ฅ, ๋ฏธ์์ฑ, ์ ๊ทผ ๋ถ๊ฐ์ธ ๋ฌธ์๋ฅผ ์์ ํ๊ธฐ ์ํจ์ด๋ค. (๊ตฌ๊ธ ์ํค๋ฐฑ๊ณผ)
1-2. ๋ฐ์ด๋๋ฆฌ
- ๋ฐ์ด๋๋ฆฌ๋ 2์ง์ ๋ผ๋ ์๋ฏธ๋ก์, ๋ฐ์ด๋๋ฆฌ ํ์ผ์ 0๊ณผ1, ์ฆ 2์ง์๋ก ์ด๋ค์ง ํ์ผ์ ์๋ฏธํ๋ค. ํ์ง๋ง '๋ฐ์ด๋๋ฆฌ ๋ถ์'์์์ ๋ฐ์ด๋๋ฆฌ๋ ์ด๊ฒ๋ณด๋ค ์ ํ์ ์ธ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. ์ข์ ์๋ฏธ๋ก ์คํ ๊ฐ๋ฅํ ํ์์ ๋ฐ์ดํฐ ํ์ผ์ ๋งํ๋ค. ํ์์ผ๋ก๋ ์๋์ฐ์ PE๋ ๋ฆฌ๋ ์ค์ ELF๊ฐ์ ๊ฒ์ด ์๋ค.
- ์ด๋ค ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ๋ถ์ํ ๋, ์ฐ์ ์ค์ ๋ก ํ๋ก๊ทธ๋จ์ ์คํํด ๋ณด๋ฉด ์ด๋ค ๋์์ ํ๋์ง ๋๋ต์ ์ผ๋ก ์ ์ ์๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ฑ ์์ธํ ์๊ณ ์ถ์ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ฝ๋๋ฅผ ํ์ธํ๋ค. ํ์ง๋ง ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์์ค์ฝ๋๊ฐ ์์ผ๋ฏ๋ก ์์ค์ฝ๋๊ฐ ์๋ ๋ค๋ฅธ ํํ์ ์ฝ๋๋ฅผ ์ฝ์ด์ผ ํ๋ค. ๋์์ ํ์ธํด๋ณด๊ธฐ ์ํด์๋ ์ฐ์ ์คํํด๋ณด๋ ๊ฒ์ด ์ ์ผ์ด๋ค.
ํ์ง๋ง ์ด๊ฒ๋ง์ผ๋ก๋ ํ์ค ์
์ถ๋ ฅ ์ด์์ ์ ๋ณด๋ฅผ ์ป์ ์ ์์ผ๋ฏ๋ก ๋ค์ํ ์ ๋ณด๋ฅผ ์ป์ ์ ์๋ ์ ์ฉ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด ๋์์ ๋ฐ๋ ๊ฒ์ด ์ข๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ์ด๋๋ฆฌ ์ฝ๋๋ฅผ ์ฝ๋๋ค. ๋จ ๋ฐ์ด๋๋ฆฌ์ ์ฝ๋๋ ํ๋ฒ ์ปดํ์ผ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ค์ฝ๋๊ฐ ์๋๋ผ disassemble์ด๋ผ๋ ์ฒ๋ฆฌ ๊ณผ์ ์ผ๋ก ์ป์ด์ง ์ด์
๋ธ๋ฆฌ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๋๋๊ฒ์ด๋ค. ์ด๊ฒ์ด mov add์๊ฐ์ assembly์ด์ด๋ค. disassemble์ด๋ ๊ธฐ๊ณ์ด๋ก ๋ ์ฝ๋๋ฅผ ์ฌ๋์ด ํด์ํ๊ธฐ ์ฌ์ด ์ด์
๋ธ๋ฆฌ ์ธ์ด๋ก ๋ณํํ๋ ๊ฒ์ด๋ค.
1-3. ๋ฐ์ด๋๋ฆฌ ๋ถ์
๋ฐ์ด๋๋ฆฌ ๋ถ์(Binary Analysis) ํด์ ์ด๋ค ํจ์ปค๋ฅผ ์ด์ฉํด์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ํจํนํ๋์ง, ์ด๋ค ์ธ์ด๋ก ์ ์๋ ํ๋ก๊ทธ๋จ์ธ์ง๋ฅผ ์์๋ผ ๋ ์ฌ์ฉ๋๋ค. ํ์ผ์ ์ด์ด๋ ๋๊ณ ๋๋๊ทธ ์ค ๋๋กญ์ ํ์ฌ ํ์ผ์ ๋ฃ์ ์๋ ์๋ค.
์์ค ์ฝ๋๋ฅผ ๋ถ์ํด์๋ ์ด๋ฌํ ์ ์ฒ์ ์ทจ์ฝ์ ๊ณผ ๊ฐ์ ๊ฒฐํจ์ด ์๋์ง ์ ๋ฐฉ๋ฒ์ด ์์ง๋ง ์ด๋ฅผ ์ฐพ์๋ผ ๊ธธ์ ์์ฐํ ์กด์ฌํ๋ค. ๋ฐ๋ก ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ถ์ํ๋ ๊ฒ์ด๋ค. ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ถ์์ ์ํํธ์จ์ด ์คํ ํ์ผ ์์ฒด๋ฅผ ๋ถ์ํ๋ฏ๋ก ๋ ์ง์ ์ ์ด๊ณ ๋ช ํํ๊ฒ ์ํํธ์จ์ด๋ฅผ ๋ถ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ด๊ธฐ๋ ํ๋ค.(์ถ์ฒ : https://gnu-cse.tistory.com/22?category=601172)
1-4. ๊ณต๊ฒฉ์ข ๋ฅ(ํ์ )
1-5. ๋ฐ์ด๋๋ฆฌ ๋ถ์ ๋๊ตฌ
- showString
๊ณต๊ฒฉํ์ ์ Binary Analyysis๋ก ํ๋ก๊ทธ๋จ ๋ด๋ถ ์คํธ๋ง์ ๋ณด์ฌ์ฃผ๋ ๋๊ตฌ์ด๋ค.
- Resource Hacker Plus
๊ณต๊ฒฉํ์ ์ Binary Analyysis๋ก ์ํํธ์จ์ด ๋ฆฌ์์ค๋ฅผ ํธ์งํ ์ ์๋ ๋๊ตฌ์ด๋ค.
- Windbg
๊ณต๊ฒฉํ์ ์ Debugger ๋ก ๋๋ฒ๊น ์ ํ ์ ์๋ ๋๊ตฌ์ด๋ค.
- Ollydbg
๊ณต๊ฒฉํ์ ์ Debugger, Disassembler ๋ก, ๊ฐ์ฅ ๋ฒ์ฉ์ผ๋ก ์ฌ์ฉ๋๋ ๋๋ฒ๊ทธ, ๋์ค์ด์ ๋ธ๋ฌ ํด์ด๋ค.
OllyDbg (๋ง๋ ์ด์ธ Oleh Yuschuk์ ์ด๋ฆ์ ๋ด)๋ ๋ฐ์ด๋๋ฆฌ ์ฝ๋ ๋ถ์์ ์ํ x86 ๋๋ฒ๊ฑฐ๋ก์, ์์ค ์ฝ๋๊ฐ ์์ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค. ์ด๊ฒ์ ๋ ์ง์คํฐ๋ฅผ ์ถ์ ํ๊ณ , ํจ์, API ํธ์ถ, Switch ๋ฌธ, ํ (table), ์์ ๊ทธ๋ฆฌ๊ณ ๋ฌธ์์ด์ ์ธ์ํ๋ฉฐ, ์ค๋ธ์ ํธ ํ์ผ๊ณผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ฃจํด๋ค์ ์์น๋ฅผ ์ฐพ์์ค๋ค.
- VBDE
๊ณต๊ฒฉํ์ ์ Decompiler ๋ก, ๋น์ฃผ์ผ๋ฒ ์ด์ง์ผ๋ก ๋ง๋ค์ด์ง ํ๋ก๊ทธ๋จ ๋ถ์ ํด์ด๋ค.
- W32dsm9b
๊ณต๊ฒฉํ์ ์ Desassembler๋ก, ๊ธฐ๊ณ์ด๋ฅผ ์ด์ ๋ธ๋ฆฌ์ด๋ก ๋ฒ์ญํด์ฃผ๋ ํด์ด๋ค.
- WinHex
๊ณต๊ฒฉํ์ ์ Hex Editor๋ก ์ด์ง ํ์ผ์ ์ฝ๋ ํด์ด๋ค.
- Procexp
๊ณต๊ฒฉํ์ ์ Monitoring ์ผ๋ก, ์์คํ ๋ชจ๋ํฐ๋ง์ ํ ์ ์๋ ํด์ด๋ค.
- Exeinfo PE & VMUnpacker
๋๋ค ๊ณต๊ฒฉํ์ ์ Unpacker์ด๋ฉฐ, ์ธํจํน์ ํ ์ ์๋ ํด์ด๋ค.
๊ทธ ์ธ์๋ ํ์ ์ ๋ฐ๋ผ์, ๋ง์ ํด๋ค์ด ์กด์ฌํ๋ค.
'IT & Security > Reversing' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฆฌ๋ฒ์ฑ] ํจํน | ํจ์ปค | ์คํ์์ถ (0) | 2021.04.15 |
---|---|
[๋ฆฌ๋ฒ์ฑ] ์ํฐ ๋ฆฌ๋ฒ์ฑ (0) | 2020.09.22 |
[๋ฆฌ๋ฒ์ฑ] ํจํน ์ค์ตํ๊ธฐ (0) | 2020.09.22 |
[๋ฆฌ๋ฒ์ฑ] ํจํน, ์ธํจํน, ํจ์ปค!? (0) | 2020.09.22 |
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค