-
๋ฐ์ด๋๋ฆฌ ํ์ผ, ํ์ผ ์๊ทธ๋์ฒ, PE ์ ELF ํ์SECURITY/REVERSING 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 E8FF D9 GIF 47 49 46 38 37 61
47 49 46 38 39 6100 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
.
'SECURITY > REVERSING' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ์ด๋ (0) 2020.07.20 ์ปดํ์ผ ๊ณผ์ (C์ธ์ด) : ์ ์ฒ๋ฆฌ, ์ปดํ์ผ, ์ด์ ๋ธ, ๋งํฌ (0) 2020.07.20 ๋ฆฌ๋ ์ค(Linux) ๊ธฐ์ด - 03 ํธ์ง๊ธฐ :: vi ์ฌ์ฉ๋ฒ (0) 2020.07.16 ๋ฆฌ๋ ์ค(Linux) ๊ธฐ์ด - 02 Permission, chmod, ํ์ดํ๋ผ์ธ(|), ๋ฆฌ๋ค์ด๋ ์ (>) (0) 2020.07.16 ์ด์ ๋ธ๋ฆฌ ์ฝ๋ ๋ถ์ 5 - example 5 :: ๋ฐ๋ณต๋ฌธ (0) 2020.07.15