์ค์ต์ ์ํด ์๋ 3๊ฐ์ง๊ฐ ๊ผญ ํ์ํ๋ ๋ค์ด๋ก๋ ํด์ฃผ์๊ธธ ๊ถ๊ณ ๋๋ฆฝ๋๋ค
python(version 3 ์ด์)
wjradburn.com/software/
github.com/upx/upx/releases/tag/v3.96
1. cmd์ฐฝ์์ python ์คํ๋๋์ง ํ์ธํด๋ณด๊ธฐ(ํ๊ฒฝ๋ณ์ ์ค์ ํด์ฃผ์ธ์)
ํ์ธ ํ ์์ ๊ฐ์ด ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํด์ค๋ค.
>> pip install pyinstaller
์ ๋ช
๋ น์ด๊ฐ ์๋จนํ๊ณ ์
๊ทธ๋ ์ด๋ ํ๋ผ๊ณ ๋ฌ๋ค๋ฉด
>>python -m pip install --upgrade pip ํด์ฃผ๋ฉด ๋๋ค.
(์ด ๋ช
๋ น์ด๋ฅผ ํตํด python ํ์ผ .py -> ์คํํ์ผ .exe ๋ก ๋ง๋ค๊ฑฐ์)
2. python ์ฝ๋ ์์ฑํ๊ธฐ
#์๋์ฐ์ฐฝ ๋์์ฃผ๋ ๋ชจ๋์
from tkinter import *
root = Tk()
lbl = Label(root, text = "Haeun!")
lbl.pack()
btn = Button(root, text = "Like You!")
btn.pack()
root.mainloop()
์ฐ์ต ์ฝ๋์ด๋ฏ๋ก ์ด๋ป๊ฒ ์ง๋ ์๊ด์ ์๋ค.
python ์ฝ๋์ ์ด๋ฆ์ packing.py
3. packing.py๊ฒฝ๋ก๋ก ๊ฐ์ exe๋ก ๋ง๋ค์ด ์ฃผ๊ธฐ
๋ง๋ ํ์ผ์ด ์๋ ๊ฒฝ๋ก๋ก ์ด๋ํด์
>> pyinstaller -F -w packing.py ์
๋ ฅํด์ฃผ๊ธฐ.
dist ๋ผ๋ ํ์ผ์ด ์์ฑ ๋์๋ค๋ฉด ok
dist์์ ๋ค์ด๊ฐ๋ณด๊ธฐ.
4. exeํ์ผ ์์ฑ๋จ.
์ด ์คํํ์ผ์ ์๋ณธ์ผ๋ก ์ฌ์ฉ๋ ๊ฒ์.
5. upx ๋ค์ด๋ก๋ ๋ ๊ฒฝ๋ก์ packing.exe (์์ ์๋ ์คํํ์ผ)์ ๋ณต์ฌํด์ ๋ฃ์ด์ค๋ค.
ํ๋ํด์ ๋ณด๊ธฐ.
upx๊ฒฝ๋ก์์ ์์ ๊ฐ์ ๋ช
๋ น์ ์จ์ฃผ๋ฉด, ํจํน ์๋ฃ
6. PEview๋ก ๋ณ๊ฒฝ ๋ด์ฉ ํ์ธํ๊ธฐ
PEview?
์๋์ฐ ์ฉ ์คํ ํ์ผ์ธ PE(Portable Executable)์ ๊ตฌ์กฐ๋ฅผ ๋ถ์ํ ์ ์๋ ํ๋ก๊ทธ๋จ์ผ๋ก,
PE File Header์ ๋ด์ฉ์ ๋ณผ ์ ์๊ณ ์ฌ๋ฌ ์ ๋ณด๋ค์ ์ป์ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก ๋ํ๋ฉด (ํจํน ์ exe, ํจํน ํ exeํ์ผ)์ ๋์๋๊ณ ๋น๊ตํด๋ณด๋ฉด ๋๋ค.
๊ฐ์ ์ค์ตํด๋ณด๋ฉฐ, ๊ตฌ์กฐ ๋ถ์๋ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
์์ผ๋ก ์ฐจ์ฐจ ๋ฆฌ๋ฒ์ฑ์ ๊ณต๋ถํด๋ด์ผ๊ฒ ๋ค.