[๋ฆฌ๋ฒ์ฑ] ํจํน, ์ธํจํน, ํจ์ปค!?
- -
์ค๋ ํฌ์คํ ์์๋ 'ํจํน', '์ธํจํน', 'ํจ์ปค' ๋ฑ์ ๊ฐ๋ ์ ๋ค๋ฃจ๊ณ ์์ถ ๋ฐฉ์์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ๋ค.
์์ถ์๋ ๋น์์ค ์์ถ, ์์ค ์์ถ ์ด ๋๊ฐ์ง ์์ถ์ด ์กด์ฌํ๋ค.
๋น์์ค ์์ถ์ด๋?
ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ ๋ณด๊ด ๋ฐ ์ด๋์ ์ฉ์ดํ๋๋ก ํ๋ ค๋ ๋ชฉ์ ์ ๊ฐ์ง๊ณ ์๋ค.
์ด ์์ถ ๋ฐฉ์์ ํฌ๊ธฐ๋ง ์ค์ผ ๋ฟ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์์ง ์๊ธฐ ๋๋ฌธ์ 100% ๋ณต์์ด ๊ฐ๋ฅํ๋ค.
๋์ ! ์ด ๋ฐฉ์์ ๊ฒฝ์ฐ ํด๋น ์์ถ์ ํด์ ํ ํ์ ์ฌ์ฉํ ์๊ฐ ์๋ค.
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ๊ณตํ๊ณ , ์์ถํด์ ๋ฅผ ํตํด ์๋ณธ ๋ฐ์ดํฐ๋ฅผ 100% ๋ณต๊ตฌ ํ ์ ์๋ค.
(์ผ๋ฐ์ ์ผ๋ก ์๊ณ ์๋ ์์ถ zip์ด๋ผ๊ณ ์๊ฐํด๋ ๋ ๊ฒ ๊ฐ๋ค.)
์์ค ์์ถ์ด๋?
ํ์ผ์ ์๋์ ์ธ ์์์ ์ฃผ์ด์ ๊ทธ ๋๊ฐ๋ก ์์ถ๋ฅ ์ ๋์ด๋ ๋ชฉ์ ์ ๊ฐ์ง๋ ์์ถ์ ๋ปํ๋ค.
์ด ์์ถ์ ์๋์ ์ธ ์์์ ์ฃผ์๊ธฐ ๋๋ฌธ์ ์์ถ ํด์ ์ 100% ์๋๋๋ก ๋ณต์ํ ์ ์๋ค.
์์ถ ํ์ผ ๊ทธ ์์ฒด๋ก ์ฌ์ฉํ๋ค๋ ๊ฒ์ด ์ด ์์ถ์ ํน์ง์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ค๋ ์ฐ๋ฆฌ๊ฐ ์ค์ตํด๋ณผ ๊ฒ์ 'ํจํน'์ด๋ผ๋ ์์ถ์ ํ์ข ๋ฅ๋ก ๋ณผ ์ ์๋๋ฐ,
ํจํน์ ์คํ ์์ถ์ ์๋ฏธํ๋ค.
ํจํน์ด๋?
ํจํน(Packing)์ด๋ ์คํ ์์ถ์ด๋ผ๋ ๋ป์ ๊ฐ์ง๊ณ ์๋ค.
์ผ๋ฐ์ ์ผ๋ก ํํ ์๊ณ ์๋ ์์ถ(Zip, RAR)๊ณผ ๊ฐ์ ์์ถ์ ๊ทธ ์์ถ์ ํด์ ์์ผ์ผ ํด๋น ํ๋ก๊ทธ๋จ์ ์คํ ์ํฌ ์๊ฐ ์์ง๋ง, ๊ทธ์๋ ๋ค๋ฅด๊ฒ packing์ ์๋ ๊ทธ๋๋ก ์ผ๋ฐ ํ๋ก๊ทธ๋จ ์ฒ๋ผ ์คํ์ด ๊ฐ๋ฅํ๋ค. ์ฆ ํจํน์ ํ๋(์์ถ๊ณผ ๋น์ทํ๊ฒ ์๊ฐํด๋๋จ) ์์ถ ํธ๋ ๊ณผ์ ์ด ์์ด ํ๋ก๊ทธ๋จ์ ์คํ ํ ์ ์๋ ๊ฒ์ ๋ฐ๋ก ์คํ ์์ถ ์ฆ ํจํน์ด๋ผ๊ณ ๋ช ์นญํ๋ค.
์คํ์์ถ์ ์ ์ธ๊น?

์ด๋ ๊ฒ ํจํน(์คํ ์์ถ)์ ๋ฐ์ดํฐ ์์ถ(ํ๋ก๊ทธ๋จ ํฌ๊ธฐ ์ค์ด๊ธฐ)์ ๋ชฉ์ ๋ ์๊ณ ,
์ ์ฑ ์ฝ๋์์๋ ์์ ์ฉ๋์ผ๋ก ๋น ๋ฅด๊ฒ ๋ง์ด ํผ์ง๊ฒ ํ์ฌ, ๋ถ์์ด ๋ถ๊ฐ๋ฅ ํ๊ฒ๋ ๋ง๋๋ ๋ชฉ์ ์ผ๋ก ์ฐ์ด๊ธฐ๋ ํ๋ค.
์คํ์์ถ ํด์ ์ ๊ธฐ๋ณธ์๋ฆฌ
๊ทธ๋ผ ์ด์ ๊ฐ์ฅ ์ค์ํ ์คํ์์ถ์ ํด์ ํ๊ธฐ ์ํ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ์์๋ณด์.
๋ฌด์๋ณด๋ค ์ค์ํ ๊ฑด"๊ฒฐ๊ณผ์ ์ผ๋ก ํ๋ก๊ทธ๋จ์ ์คํ๋ผ์ผ ํ๋ค๋ ์ ์ด๋ค.
"์๋ฌด๋ฆฌ ์์ถ์ ํ๊ณ , ์ํธํ๋ฅผ ํ๋๋ผ๋ ์๋ํ์ง ์์ผ๋ฉด ์๋ฌด๋ฐ ์ธ๋ชจ๊ฐ ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ค์์ผ๋ก ์ค์ํ ๊ฑด"์คํ ๋์์ด ๋ ํ๋ก๊ทธ๋จ ๊ธฐ๋ณธ๊ตฌ์กฐ ์์ฒด๋ ๋ฐ๊ฟ ์ ์๋ค๋ ๊ฒ์ด๋ค.
(์ฆ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋ฐ๋์ง ์์ง๋ง, ๊ทธ ๋ด์ฉ์ ๋ณ๊ฒฝ์ด ๋ ์ ์์)
์ด ๋ด์ฉ์ ๊ธฐ์ ์ ์ธ ๋ด์ฉ์ผ๋ก ๋ฐ๊พธ๋ฉด, ๊ธฐ๋ณธ์๋ฆฌ๋ ์คํ์์ถ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ์ด๋ ์์ ์์๋ ์์ถ๋๊ธฐ ์ ์ํ๋ก ๋์๊ฐ์ผ ํ๋ฉฐ, ๊ทธ ๋ ๋ฉ๋ชจ๋ฆฌ ์ํ๋ฅผ Dump(๋ฉ๋ชจ๋ฆฌ ๋ด์ฉ์ ๊ทธ๋๋ก ํ์ผ๋ก ์ ์ฅ)ํ๊ณ , Entry Point๋ฅผ ์์ถํ๊ธฐ ์ ์์น๋ก ์ค์ ํด์ฃผ๋ฉด ๋๋ค๋ ์ ์ด๋ค.
ํนํ ์ด๋ ์์ ์ OEP(Original Entry Point)๋ผ๊ณ ํ๋ฉฐ, PEP(Packed Entry Point, ์คํ์์ถ ๋ ํ๋ก๊ทธ๋จ์์ ์ฒ์ ์์ํ๋ ์ฝ๋์์น)์ ๋น๊ตํ๋ค. ์ด OEP๋ง ์ฐพ์ ์ ์๋ค๋ฉด ์คํ์์ถ ํด์ ๋ ์์ฃผ ์ฝ๊ฒ ์ด๋ฃจ์ด ์ง ์ ์๋ค.
์ค์ UPX ์คํ์์ถ์ ์ฌ์ฉํ ํ์ผ์ ์๋ก ๋ค์ด ์ค๋ช ํด ๋ณด๊ฒ ๋ค. ๋จผ์ UPX๋ก ์คํ ์์ถ๋ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ์ฒ์ ์์ํ ๋ UPX1์ PEP๊ฐ ์์ด UPX1์ด ์คํ๋๋ค.

UPX1์ Unpacker ๋ฃจํด์ด ๋๋๋ฉด EIP๊ฐ UPX0์ ์ด๋ ๋ถ๋ถ์ ๊ฐ๋ฆฌํค๊ฒ ๋๋ค. ์ฆ ์ด ๋ถ๋ถ์ด OEP์ด๋ค. ๊ทธ๋์ EIP ๊ฐ์ ๊ฒ์ฌํ๋ค๊ฐ UPX1์์ UPX0๋ก ๋์ด๊ฐ ๋ ํ๋ก๊ทธ๋จ ์๋์ ๋ฉ์ถ๋ฉด ๋๋ค.
PE๊ตฌ์กฐ ์์๋ณด๊ธฐ
์คํ์์ถ์ ๋ํด ๋ถ์ํ๊ธฐ ์ ์ ๋จผ์ PE๊ตฌ์กฐ ๋ฐ ์คํ์์ถ์ ๊ธฐ๋ณธ ์๋ฆฌ๋ฅผ ์์๋ณด์.
PE ํ์ผ์ Dos Header, Dos Stub code, PE Header, Section Header ๊ทธ๋ฆฌ๊ณ Section์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
ํนํ PE ํ์ผ์์์ ํค๋๋ ๋ค์๊ณผ ๊ฐ์ด ํฌ๊ฒ ์ธ ๊ฐ์ง๋ก ๋ณผ ์ ์๋ค.
IMAGE_DOS_HEADER, IMAGE_NT_HEADERS, IMAGE_SECTION_HEADER

์ ๋ด์ฉ๋ค ์ถ์ฒ : blog.naver.com/magu2564/130088945391
์ฌ๊ธฐ๊น์ง "ํจํน" ์ ์์๋ดค๋๋ฐ์, ์ฝ๊ฒ ๊ทธ๋ฅ ํ์ด์ ์จ๋์ ํ์ผ์ด ์๋ ํ์ผ์ด๋ ์ฐธ๊ณ ํด๋ณด์๋ฉด ์ดํด๊ฐ
์กฐ๊ธ ๋น ๋ฅผ ์๋ ์์ ๊ฒ ๊ฐ๋ค์.
@ ํจํน(Packing)
- ์คํํ์ผ์ ์ํธํํ๊ฑฐ๋, ์์ถํ์ฌ ์์ค์ฝ๋๋ฅผ ๋ณผ์ ์๋๋ก ํ๋ ๊ฒ
- ์์ถ์ ํ๋ฉด ์ฉ๋์ ์ค์ด๊ณ , ์คํ์๋๊ฐ ๋นจ๋ผ์ง(์ฌ์ฉ์ ์ธก๋ฉด์์๋ ์ ๋ฆฌํ์ง๋ง, ์ ์ฑ์ฝ๋ ์ ํฌ์์๋ ์ ๋ฆฌํ๊ฒ ์์ฉ)
- ๋ถ์ํ๊ธฐ์ ์ด๋ ค์์ด ์กด์ฌํจ(์ธํจํน์ด ํ์ํ๊ธฐ ๋๋ฌธ์)
@ ์ธํจํน(Unpacking)
- ํจํน๋ ์์ค์ฝ๋๋ฅผ ๋ณด๊ธฐ ์ํด ์ํธํ๋ ์์ถ์ ํธ๋ ํ์
@ ํจ์ปค(Packer)
- ํจํน์ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ(Compressor, Protector)
- Compressor : ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ค์ฌ ๋ฐฐํฌ๋ฅผ ์ฝ๊ฒํ๋๋ก ํ๋ ๋ชฉ์ , ์ฃผ๋ก ์ ์ฑ์ฝ๋ ์คํ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๋๋ฐ ๋ชฉ์ ์ด ์๊ณ ๋ํ์ ์ผ๋ก UPX, FSG ๋ฑ์ด ์๋ค.
-> UPX(Ultimate Paker eXecutables) : ์ฌ๋ฌ ์ด์์ฒด์ ์์ ์๋ง์ ํ์ผ ํฌ๋ฉง์ ์ง์ํ๋ ์คํ ์์ค ์คํ ํ์ผ ์์ถ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ถ๊ณผ ์์ถํด์ ๊ธฐ๋ฅ
- Protector : ์คํํ์ผ์ ๋ณดํธํ๋ ๊ฒ์ด ๋ชฉ์ , ํฌ๊ธฐ๋ ๋์ด๋์ง๋ง Anti-Reversing ๊ธฐ๋ฒ ์ ์ฉ๋์ด ์ธํจํน์ด ๊น๋ค๋กญ๊ณ , ์ฝ๋ ๊ฐ์ํ ๊ธฐ๋ฒ๊ณผ ๋๋ ํ์ ์ด๋ ค์
์ฐธ๊ณ ์ฃผ์ ๋ฐ ํ์ ์๋ฃ โผ
์๋ ์ฃผ์์์ upx, PEview ๋ค์ด๋ฐ๊ธฐ!
github.com/upx/upx/releases/tag/v3.96
Release UPX 3.96 ยท upx/upx
Please see the file NEWS for a detailed list of changes. Note: all versions are functionally equivalent, i.e. each version can handle all executable formats, so you only need the file that runs on ...
github.com
WJR Software - PEview (PE/COFF file viewer),...
Utilities (for use with Windowsยฎ XP operating system or later) PEview provides a quick and easy way to view the structure and content of 32-bit Portable Executable (PE) and Component Object File Format (COFF) files. This PE/COFF file viewer displays heade
wjradburn.com
blog.naver.com/magu2564/130084117489
[๊ณต์ ] CPU์ ์ดํด 1 - CPU๋ ๋ฌด์์ธ๊ฐ
CPU์ ์ดํด โ CPU์ ์ดํด 1 - CPU๋ ๋ฌด์์ธ๊ฐ? โก CPU์ ์ดํด 2 - CPU ๋์์ ์ดํดํ๊ธฐ ์...
blog.naver.com
์ด ๋ธ๋ก๊ทธ์ ๋ฆฌ๋ฒ์ฑ ๊ด๋ จ ๋ด์ฉ๋ค์ด ์ ๋ฆฌ๊ฐ ๋งค์ฐ ์ ๋์ด์์ผ๋ ์ฐธ๊ณ ํ์ ๋ ์ข์ ๊ฒ ๊ฐ์์.
๊ธ์ด ๋๋ฌด ๊ธธ์ด์ง๋ ๊ด๊ณ๋ก ํจํน ์ค์ต ๊ธ์ ๋ฐ๋ก ์ฌ๋ฆฌ๋๋ก ํ ๊ป์~
์์คํ ๊ณต๊ฐ ๊ฐ์ฌํฉ๋๋ค