biahn
1
์๋
ํ์ธ์ c# winform์ผ๋ก ์ด๊ฒ์ ๊ฒ ๊ฐ๋ฐํด๋ณด๋ค๊ฐ ์์ฆ ๊ฒ์์ชฝ์์ ํด๋ผ์ด์ธํธ ๋ณ์กฐ ์ด๋ฐ์๊ธฐ๊ฐ ๋ณด์ฌ์ ๋ฌธ๋ ๊ถ๊ธํ์ ์ด ์๊ฒจ์ ์ง๋ฌธ ๋จ๊ฒจ๋ด
๋๋ค.
C# ๊ฐ์๊ฒฝ์ฐ์ exeํ์ผ์ ๋์ปดํ์ผํ๋ฉด ๋ด๋ถ ์์ค๊ฐ ๊ทธ๋๋ก ๋ณด์ด๋๋ฐ ์ฌ์ง์ด ํ๋ก์ ํธ๋ก export๋ ๊ฐ๋ฅํ๋๋ผ๊ตฌ์
๊ทธ๋์ ์ ๊ฐ ํ์ธ์ ํด๋ดค๋๋ฐ ์ฝ๋ ๋ฐ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ ๊ทธ๋๋ก export๋์๋๋ฐ delegate๋ ๋ฐ๋ก ํด๋์ค๋ก ๋น ์ง๊ณ ๋์์ด๋ ์ฝ๋๋ ๋ชป ๋ด๋ณด๋ด๋ ๊ฒ ๊ฐ์์ต๋๋ค. ์๋๊ฐ์ด ์๋ฌ๊ฐ ๋จ๋๋ผ๊ตฌ์
โInitializeComponentโ ๋ฉ์๋๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ์ง ๋ชปํ์ต๋๋ค. ํ์์์ ๋ค์ ์ค๋ฅ๋ฅผ ๋ณด๊ณ ํ์ต๋๋ค. โInvalid symbol kind: NamedTypeโ. ์์
๋ชฉ๋ก์ ์ ์ฌ์ ์ค๋ฅ๊ฐ ์๋์ง ํ์ธํ์ธ์.
๊ทธ๋์ ๊ถ๊ธํ์ ์ ๋ง์ฝ ์ ๊ฐ winform์ผ๋ก ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌ๋ฅผ ํ๋๋ฐ, ์ด ํ๋ก๊ทธ๋จ์๋ ๋ก๊ทธ์ธ์ ํด์ผ ๋ค์ ๋์์ ์งํ ํ ์ ์๋ค๊ณ ํ๋ค๋ฉด
- ๋๊ตฐ๊ฐ๊ฐ ๋์ปดํ์ผํด์ ๋ก๊ทธ์ธ๋ง ์ฐํํด์ ๋ค์ ๋์์ ์งํํ๊ฒ๋ ํ ์ ์๋์?? ๋ก๊ทธ์ธ์ ์๋ฒ์์ ์งํ์ ํฉ๋๋ค.
โ ๋ง์ฝ ์ฐํ๊ฐ ๊ฐ๋ฅํ๋ค๋ฉด, ์ด๊ฒ์ ๋ง๊ธฐ์ํด์ ์ด๋ป๊ฒ ํด์ผํ ๊น์??
1๊ฐ์ ์ข์์
rkttu
2
๊ธฐ์ ์ ์ธ ์๋ฃจ์
์ด ์์ ์๋ ์์ง๋ง, ์ ๊ฐ์ธ์ ์ผ๋ก๋ "์ง์ฐ"์ํค๋ ๊ฒ์ ์ด์ ์ด ์๋ ๊ฒ์ด์ง, "์ฐจ๋จ"์ํค๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค๋ ์๊ฐ์
๋๋ค. ๊ทธ ์ ์ ์
๊ฐํ์ฌ ์๋ ์๊ฒฌ์ ๋๋ ค๋ด
๋๋ค.
Windows Forms๋ฅผ ๋น๋กฏํ ๋ท๋ท ๊ณ์ด ์ฝ๋๋ IL ์ฝ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๋์ด์์ด์, ๋์ปดํ์ผ์ ๋ฌผ๋ก tampering (๋ณ์กฐ)๊ฐ ๋ค๋ฅธ ๊ธฐ๊ณ์ด ์ฝ๋๋ณด๋ค ์๋ฑํ ์ฝ์ต๋๋ค. ์ด๋ฅผ ์ํํ ๋ชฉ์ ์ผ๋ก, ๋ชจ๋ ์ฝ๋๋ฅผ ์ฒ์๋ถํฐ ๊ธฐ๊ณ์ด๋ก ์ปดํ์ผํ๋ AOT ์ฒ๋ฆฌ๋ ๋๋
์ฒ๋ฆฌ๋ฅผ ํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง, ๊ถ๊ทน์ ์ผ๋ก ๋์ปดํ์ผ์ด๋ ๋ณ์กฐ๋ฅผ ์ ์๋ฏธํ๊ฒ "์ง์ฐ"์ํค๋ ๊ฒ์ด๊ณ , "์ฐจ๋จ"ํ๋ ๊ฒ์ด ์๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ C/C++๋ก ๋น๋ํ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ผ๊ณ ํด๋ ๋ค๋ฅด์ง ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ธก๋ฉด์ผ๋ก, ๋ก๊ทธ์ธ ๊ฐ์ด ๋คํธ์ํฌ ๋์์ ํฌํจํ๋ ๋ถ๋ถ์ ๊ตณ์ด EXE ํ์ผ์ ์๋ณ์กฐํ๋ ค๋ ์ฑ์๋ฅผ ๋ค์ผ ํ์ ์์ด, ๋คํธ์ํฌ ํจํท์ ์ค๋ํํ๊ณ ์ญ๊ณตํ ์์
์ ๊ฑฐ์ณ์ ํ๋กํ ์ฝ์ ๊ตฌ์กฐ๋ฅผ ํ์
ํ์ฌ ์์ฝ๊ฒ ์๋ฒ๋ก ์์กฐ๋๊ฑฐ๋ ํผ์๋ ํจํท์ ๋ณด๋ผ ์ ์์ต๋๋ค. ์ด๋ฅผ "๋ง์ ์ ์๋ ๋ฐฉ๋ฒ"์ ๊ทธ๋์ ์๋ค๊ณ ๋ณด๋ ๊ฒ์ด ์ ํํฉ๋๋ค.
๊ทธ๋์ ์ ๊ฐ ๋ณด๊ธฐ์ ์ ์ ํ๋ค๊ณ ์๊ฐํ๋ ๋์ ๋ฐฉ๋ฒ์ ์์ ๋ ์ธก๋ฉด์ ๋๋ ์ ๋ณด๋ฉด ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
EXE ํ์ผ์ด๋ ๋์งํธ ์ฌ๋ณธ ์ธก๋ฉด: ํ๋ก๊ทธ๋จ ํ์ผ ๋ด์ ์ค์ํ ์ ๋ณด๋ ๋ฏผ๊ฐ ์ ๋ณด, ๋ฏผ๊ฐ ์์ฐ์ ํฌํจ๋์ง ์๋๋ก ์ค๊ณํด์ผ ํฉ๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ์์ ์์ ๋ ๋๋ ๋์งํธ ์ฌ๋ณธ์ ์ธ์ ๋ "์๋ณ์กฐ๋๋ค"๊ณ ๋ฏฟ๋ ๊ฒ์ด ์์ ํ๋ฉฐ, ํํ zero-trust ๋ณด์ ๋ชจ๋ธ์ด ์ด๋ฐ ์๋ฏธ๋ฅผ ๋ดํฌํฉ๋๋ค. ๊ทธ๋์ EXE ํ์ผ์ด ์ด๋ป๊ฒ ์ฐ์ด๋์ง ์์ ์๋๋ก, ์ ๋๋ฆฌํฑ์ค ๋ก๊ทธ๋ฅผ ์์งํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ๋์์ด ๋ ์ ์์ต๋๋ค. (๋ฌผ๋ก ์ด ๋ํ ๊ถ๊ทน์ ์ผ๋ก๋ ์ ๋๋ฆฌํฑ์ค ๋ก๊ทธ๋ฅผ ๋ณด๋ด์ง ์๋๋ก ๋ ์ฌ์ง๋ ์์ต๋๋ค.)
๋คํธ์ํฌ ์ธก๋ฉด: ๋ฐฐํฌ๋ ํด๋ผ์ด์ธํธ๋ฅผ ๋ณ์กฐํ๋ , ์ง์ ํ๋กํ ์ฝ์ ๋ถ์ํด์ ๋์๋๋ ํด๋ผ์ด์ธํธ๋ฅผ ์ฐฝ์ํ๋ , ์ด๋์๋ ์ ๋ขฐํ ์ ์๋ ํจํท์ด๋ ๋ฉ์์ง๋ ์ ์
๋ ์ ์๋ค๊ณ ๊ฐ์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. (๋ง์ฐฌ๊ฐ์ง๋ก zero-trust ๋ณด์ ๋ชจ๋ธ์ ๋ฐ๋ฅธ ํด์์
๋๋ค.) ๊ทธ๋์ ์ ์
๋๋ ํจํท์ด๋ ๋ฉ์์ง๊ฐ "์ ๋นํ ์์ฒญ"์ธ์ง, ๊ทธ๋ฆฌ๊ณ "์ ์ ์๋ณ"์ด ์ด๋ฃจ์ด์ก๊ณ , 6ํ ์์น์ ๋ฐ๋ผ ๋ก๊ทธ๋ฅผ ์๋ฒ ์ธก์ ๊ธฐ๋กํด๋๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ทธ๋์ ์์ ๋ ๊ฐ์ง ์ธก๋ฉด์์ "์์งํ ๋ฐ์ดํฐ"๋ฅผ ํ ๋๋ก, ๋ถ์์ด๋ ์ฌ๊ฑด์ด ๋ฐ์ํ๋ฉด, ๋ฒ์ ํ๋จ์ ์ํ "์ฆ๊ฑฐ ์๋ฃ"๋ก์ ์ ์ถ๋ ์ ์๋๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
3๊ฐ์ ์ข์์
์ผ๋จ ๋ก๊ทธ์ธ ์๋ฒ์์ client ์ ์๋ณ์กฐ๋ฅผ ๋ง๋๊ฒ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ ๊ฒ์์
์น์ ๊ฒฝ์ฐ cors ๋ผ๋ ์์ง๋ง ๋ค์ดํฐ๋ธ์ ๊ฒฝ์ฐ ๊ทธ๋๋ก ์ ์ ๋ก๊ทธ์ธ์ผ๋ก ํ๋จํ์ฃ
๊ทผ๋ฐ ์ ๊ฐ ํด์ปค๋ผ๋ฉด ๊ตณ์ด ํ๋ก๊ทธ๋จ์ ๋์ปดํ์ผํ ๊ฒ ๊ฐ์ง๋ ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ์ด๋ ต๊ฒ ํ๋๋ ๋จ์ํ ํต์ ์ผ๋ก ๋ค์ด๊ฐ๋ ํจํท ๋ถ์ํด์
์๋ณ์กฐํด์ ํต์ ์ผ๋ก ๋ฐ์ดํ๋ฅผ ์ป๊ฒ ์ต๋๋ค. ๊ทผ๋ฐ ์ด๊ฑด ์ ์ด์ ๋น๋ฒ ์ด ํธ๋ ธ๋ค๋ ์๊ธฐ๋
์๋ฒ์ธก์์ ์ด์ ์ ํธ์ ๋ํด์ ๋ชจ๋ํฐ๋ง ํ๋ฉด์ ์ฌ๋์ด ์ฐจ๋จ ๊ด๋ฆฌํ๋ ์ด์์ธก๋ฉด์ผ๋ก ํ์ด์ผ๊ฒ ์ฃ
๊ตญ๋ด ๋ด๋
ธ๋ผํ๋ ์จ๋ผ์ธ ๊ฒ์๋ ๊ทธ๋ ๊ฒ ํธ๋ ค์ ํด์ ์๋ฒ ์ด์ ๋๋๊น์
๊ทธ๋ฆฌ๊ณ ์ํ์ด ์ฝ๋ฉ์ ํ๋ฉด์ ๊ฐ์ด๋๋ง ์ถฉ์คํ์
๋ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
4๊ฐ์ ์ข์์
Vincent
4
์ ์๊ฐ์๋ ์ ๋ ๋ถ์ ์๊ฒฌ๊ณผ ๊ฐ์ต๋๋ค.
Desktop Application์ ๋๋
ํ ์๋ฃจ์
์ ๊ดํ์ฌ ๊ฐ๋ก ์๋ฐ์ด ๋ง์ง๋ง, ์ ๋ ํ ์ ์๋ค๋ฉด ํ๋ ๊ฒ์ด ์ข๋ค๋ ์ฃผ์์
๋๋ค.
๋ค๋ง ์ฐจ๋จ์ด ์๋๋ผ ์ง์ฐ์ธ ๊ฒ์ด์ฃ .
์ ๊ธฐ์ต์ด ์๋๋๋ฐ, ๋ํ์ ์ธ Desktop Application์ธ ๊ฒ์ ํด๋ผ์ด์ธํธ๊ฐ์ ๊ฒฝ์ฐ์๋ ์ธ๋ฆฌ์ผ ์์ง์ผ๋ก ๊ฐ๋ฐ๋์๋ค๋ฉด ์์ค์ฝ๋๋ฅผ ์์ผ ๋ด๋ก ์น ๋ถ์ํด์ ์ฌ๋ ค๋๋ ์ฌ์ดํธ๋ ์์๋ ๊ฒ์ผ๋ก ๊ธฐ์ต๋ฉ๋๋ค.
๋ฐ๋ผ์ ํด๋ผ์ด์ธํธ์๋ ๋น์ง๋์ค ๋ก์ง์์ ์ค์ํ ๋ถ๋ถ์ ๋ฃ์ง ์๋ ๊ฒ์ด ์ผ๋ฐ์ ์
๋๋ค.
๋ค๋ฅธ ์๊ธฐ๊ธด ํ๋ฐ ๊ทธ๋๋ ํธ๋ฆด ๊ฒฝ์ฐ๋ฅผ ๋๋นํด์ ์์ฆ ๋ชจ๋ฐ์ผ ๊ฒ์๋ค ๊ฐ์ ๊ฒฝ์ฐ ๊ฒฝ๋งค์ฅ์ ์ญ์ ํ๊ฑฐ๋, ์ ์ ๊ฐ ๊ฑฐ๋ ๊ธฐ๋ฅ์ ์๋์ ์ผ๋ก ๊ฐ๋ฐํ์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ ์ด๊ฒ์ ํดํน๋์์ ๋ ๊ธ์ ์ ์ธ ๋ฌธ์ ์ญ์ ์ต์ํ ํ๊ธฐ ์ํจ์ธ ๊ฒ๋ ์์ต๋๋ค. (๊ทธ๋์ ๊ณ์ ๊ฑฐ๋๋ฅผ ํ์ง๋ง์)
3๊ฐ์ ์ข์์
C๋ C++๋ก ๋ง๋ค์ด๋ ์ด์
๋ธ๋ฆฌ ์์ค์์ ๋ฆฌ๋ฒ์ฑํ๋ฉด ์๋ ๊ฒ ์์๊ฒ๋๋ค.
ํน์ ๊ธฐ๋ฅ์ ์๋ฒ์์ ์ฒ๋ฆฌํ๋ ์๋ฐ์ ์์ต๋๋ค.
ํต์ ๋ฆฌ๋ฒ์ฑ์ ๋ฐฉ์งํ๊ธฐ ์ํด,
pe packer๋ฅผ ํตํด ์คํํ์ผ ์์ถ์ผ๋ก ๋ฆฌ๋ฒ์ฑ์ด ์ด๋ ต๊ฒํ๊ฑฐ๋
pe protector๋ฅผ ํตํด ๋ฆฌ๋ฒ์ฑ ๋ฐฉ์ง๋ฅผ ํ๊ฑฐ๋ ํฉ๋๋ค.
์์ฉ protector์ค์ ASProtect, Themida๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์นด์นด์คํก pc๋ฒ์ ์ด Themida๋ฅผ ์ด์ฉํ๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค.~
3๊ฐ์ ์ข์์
biahn
6
๋ชจ๋ ๋ต๋ณ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
๊ฒฐ๊ตญ ๋๋
ํ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๋ฐฉ๋ฒ์ ํตํด ๋ถ์์ ์ด๋ ต๊ฒ ํจ์ผ๋ก์จ
์ฐจ๋จ๋ณด๋ค๋ ์๊ฐ๋๋น ๋ถ์์ ๋๋ ๋น์ฉ์ ๋์ฌ์ ๊ทธ๋งํผ ๋ถ์ํ ๊ฐ์น๋ฅผ ๋จ์ด๋จ๋ฆฌ๊ณ ,
๋คํธ์ํฌ ํต์ ์์๋ ์ํธํ ๋ฐ ๋ณด์์ ์ ๊ฒฝ์ฐ๊ณ ์ ์ฌ์ ๋์์ ์ํ ๋ก๊ทธ๋ฅผ ๊ฐ์ง๊ณ ์๋๊ฒ ์ต์ ์ด ๋๊ฒ ๋ค์
๊ฐ์ฌํฉ๋๋ค!
2๊ฐ์ ์ข์์