์ด ๋ฌธ์๋ ํ์ผ๋ฆฌ์ค ์
์ฑ ์ฝ๋ ์๋ฆฌ์ฆ์ ์ผ๋ถ์
๋๋ค. ์๋ฆฌ์ฆ์ ๋ค๋ฅธ ๋ชจ๋ ๋ถ๋ถ:
ํฌ์ฐฉํ๊ธฐ ์ด๋ ค์ด ์ ์ฑ์ฝ๋์ ๋ชจํ XNUMX๋ถ ํ์ ํ๊ธฐ ์ด๋ ค์ด ์ ์ฑ ์ฝ๋์ ๋ชจํ, XNUMX๋ถ: ๋น๋ฐ์ค๋ฌ์ด VBA ์คํฌ๋ฆฝํธ ํ์ ํ๊ธฐ ์ด๋ ค์ด ์ ์ฑ ์ฝ๋์ ๋ชจํ, XNUMX๋ถ: ์์๊ณผ ์ด์ต์ ์ํ ๋ณต์กํ VBA ์คํฌ๋ฆฝํธ - ํ์ ํ๊ธฐ ์ด๋ ค์ด ์ ์ฑ ์ฝ๋์ ๋ชจํ, XNUMX๋ถ: DDE ๋ฐ Word ๋ฌธ์ ํ๋(ํ์ฌ ์์น)
์ด ๊ธฐ์ฌ์์๋ ์์คํ
์ ๊ณ ์ ํ๋ ํจ์ฌ ๋ ๋ณต์กํ ๋ค๋จ๊ณ ํ์ผ๋ฆฌ์ค ๊ณต๊ฒฉ ์๋๋ฆฌ์ค๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๋๋ผ์ธ ์ ๋๋ก ๊ฐ๋จํ๊ณ ์ฝ๋๊ฐ ํ์ ์๋ ๊ณต๊ฒฉ์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ฆ, Word๋ Excel ๋งคํฌ๋ก๊ฐ ํ์ํ์ง ์์ต๋๋ค! ๊ทธ๋ฆฌ๊ณ ์ด๋ ์ด ์ผ๋ จ์ ๊ธฐ์ฌ์ ๊ธฐ์ดํ ๋์ ์๋ ๊ฐ์ค์ ํจ์ฌ ๋ ํจ๊ณผ์ ์ผ๋ก ์ฆ๋ช
ํฉ๋๋ค. ๋ชจ๋ ์กฐ์ง์ ์ธ๋ถ ๊ฒฝ๊ณ๋ฅผ ๋ฌด๋๋จ๋ฆฌ๋ ๊ฒ์ ์ ํ ์ด๋ ค์ด ์์
์ด ์๋๋๋ค.
์ ๊ฐ ์ค๋ช
ํ ์ฒซ ๋ฒ์งธ ๊ณต๊ฒฉ์ ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Microsoft Word ์ทจ์ฝ์ ์ ์
์ฉํฉ๋๋ค. ์๋์ ๋ค์ณ์ง
DDE์ ํจ๊ป ๋ฏธ๋๋ก ๋์๊ฐ์ธ์
DDE๋ฅผ ๊ธฐ์ตํ๋ ์ฌ๋์ด ์๋์? ์๋ง๋ ๋ง์ง ์์ ๊ฒ์ ๋๋ค. ๊ทธ๊ฒ์ ์ฒซ ๋ฒ์งธ ์ค ํ๋์์ต๋๋ค ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฅ์น๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ก์ธ์ค ๊ฐ ํต์ ํ๋กํ ์ฝ.
๋ ์์ ๋ ํต์ ์ฅ๋น๋ฅผ ์ ๊ฒํ๊ณ ํ ์คํธํด ๋ณธ ์ ์ด ์์ด์ ์กฐ๊ธ ์ต์ํ๋ค. ์๋ฅผ ๋ค์ด ๊ทธ ๋น์ DDE๋ ์ฝ์ผํฐ ์ด์์๊ฐ ๋ฐ์ ์ ID๋ฅผ CRM ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ ์กํ์ฌ ๊ถ๊ทน์ ์ผ๋ก ๊ณ ๊ฐ ์นด๋๋ฅผ ์ด ์ ์๋๋ก ํ์ฉํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํด๋ํฐ๊ณผ ์ปดํจํฐ๋ฅผ RS-232 ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐํด์ผ ํ์ต๋๋ค. ์๋ ์ด ์ข์์ง!
์๊ณ ๋ณด๋ Microsoft Word๋ ์ฌ์ ํ
์ฝ๋ ์์ด ์ด ๊ณต๊ฒฉ์ ํจ๊ณผ์ ์ผ๋ก ๋ง๋๋ ์ด์ ๋ DDE ํ๋กํ ์ฝ์ ์ก์ธ์คํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์ง์ Word ๋ฌธ์์ ์๋ ํ๋์์(SensePost๋
ํ๋ ์ฝ๋ ๋ฌธ์์ ๋์ ํ ์คํธ์ ์ฝ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ์ ์ถ๊ฐํ ์ ์๋ ๋ ๋ค๋ฅธ ๊ณ ๋ MS Word ๊ธฐ๋ฅ์ ๋๋ค. ๊ฐ์ฅ ํ์คํ ์๋ {PAGE *MERGEFORMAT} ๊ฐ์ ์ฌ์ฉํ์ฌ ๋ฐ๋ฅ๊ธ์ ์ฝ์ ํ ์ ์๋ ํ์ด์ง ๋ฒํธ ํ๋์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํ์ด์ง ๋ฒํธ๊ฐ ์๋์ผ๋ก ์์ฑ๋ ์ ์์ต๋๋ค.
ํํธ: ์ฝ์
์๋์์ ํ๋ ๋ฉ๋ด ํญ๋ชฉ์ ์ฐพ์ ์ ์์ต๋๋ค.
Word์์ ์ด ๊ธฐ๋ฅ์ ์ฒ์ ๋ฐ๊ฒฌํ์ ๋ ๋๋๋ ๊ธฐ์ต์ด ๋ฉ๋๋ค. ํจ์น๋ก ์ธํด ๋นํ์ฑํ๋ ๋๊น์ง Word๋ ์ฌ์ ํ DDE ํ๋ ์ต์ ์ ์ง์ํ์ต๋๋ค. ์์ด๋์ด๋ DDE๊ฐ Word๊ฐ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ง์ ํต์ ํ ์ ์๋๋ก ํ์ฌ ํ๋ก๊ทธ๋จ์ ์ถ๋ ฅ์ ๋ฌธ์๋ก ์ ๋ฌํ ์ ์๋ค๋ ๊ฒ์ด์์ต๋๋ค. ๊ทธ ๋น์์๋ ์ธ๋ถ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ์ ๋ฐ์ดํฐ ๊ตํ์ ์ง์ํ๋ ๋งค์ฐ ์๋ก์ด ๊ธฐ์ ์ด์์ต๋๋ค. ๋์ค์ COM ๊ธฐ์ ๋ก ๊ฐ๋ฐ๋์์ผ๋ฉฐ ์ด์ ๋ํด์๋ ์๋์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
๊ฒฐ๊ตญ ํด์ปค๋ ์ด DDE ์์ฉ ํ๋ก๊ทธ๋จ์ด PowerShell์ ์คํํ๋ ๋ช
๋ น ์
ธ์ผ ์ ์์ผ๋ฉฐ ๊ฑฐ๊ธฐ์์ ํด์ปค๊ฐ ์ํ๋ ๊ฒ์ ๋ฌด์์ด๋ ํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
์๋ ์คํฌ๋ฆฐ์ท์ ์ด ์คํ
์ค ๊ธฐ์ ์ ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๋ณด์ฌ์ค๋๋ค. DDE ํ๋์ ์์ PowerShell ์คํฌ๋ฆฝํธ(์ดํ PS๋ผ๊ณ ํจ)๋ ๊ณต๊ฒฉ์ ๋ ๋ฒ์งธ ๋จ๊ณ๋ฅผ ์์ํ๋ ๋ ๋ค๋ฅธ PS ์คํฌ๋ฆฝํธ๋ฅผ ๋ก๋ํฉ๋๋ค.
๋ด์ฅ๋ DDEAUTO ํ๋๊ฐ ๋น๋ฐ๋ฆฌ์ ์์ ์์ํ๋ ค๊ณ ํ๋ค๋ ํ์
๊ฒฝ๊ณ ๋ฅผ ์ ๊ณตํ Windows์๊ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.
์ทจ์ฝ์ ์ ์
์ฉํ๋ ๊ธฐ๋ณธ ๋ฐฉ๋ฒ์ ์คํฌ๋ฆฝํธ๋ฅผ ์๋์ผ๋ก ์คํํ๋ DDEAUTO ํ๋๊ฐ ์๋ ๋ณํ์ ์ฌ์ฉํ๋ ๊ฒ์
๋๋ค. ์ด ๋ ์๋ ๋ฌธ์.
์ด์ ๋ํด ์ฐ๋ฆฌ๊ฐ ๋ฌด์์ ํ ์ ์๋์ง ์๊ฐํด ๋ด
์๋ค.
์๋ฅผ ๋ค์ด ์ด๋ณด ํด์ปค๋ผ๋ฉด ์ฐ๋ฐฉ์ธ์ฒญ ์์์ธ ๊ฒ์ฒ๋ผ ๊ฐ์ฅํ์ฌ ํผ์ฑ ์ด๋ฉ์ผ์ ๋ณด๋ด๊ณ ์ฒซ ๋ฒ์งธ ๋จ๊ณ(๊ธฐ๋ณธ์ ์ผ๋ก ๋๋กํผ)์ PS ์คํฌ๋ฆฝํธ์ DDEAUTO ํ๋๋ฅผ ์ฝ์
ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ ํ๋ ๊ฒ์ฒ๋ผ ๋งคํฌ๋ก ๋ฑ์ ์ค์ ์ฝ๋ฉ์ ํ ํ์๋ ์์ต๋๋ค.
ํผํด์๊ฐ ๋ฌธ์๋ฅผ ์ด๊ณ ํฌํจ๋ ์คํฌ๋ฆฝํธ๊ฐ ํ์ฑํ๋๋ฉด ํด์ปค๊ฐ ์ปดํจํฐ ๋ด๋ถ๋ก ๋ค์ด๊ฐ๋๋ค. ๋ด ๊ฒฝ์ฐ์๋ ์๊ฒฉ PS ์คํฌ๋ฆฝํธ๊ฐ ๋ฉ์์ง๋ง ์ธ์ํ์ง๋ง ์๊ฒฉ ์
ธ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ PS Empire ํด๋ผ์ด์ธํธ๋ฅผ ์ฝ๊ฒ ์์ํ ์๋ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ํผํด์๊ฐ ๋ฌด์จ ๋ง์ ํ๊ธฐ๋ ์ ์ ํด์ปค๋ค์ ๋ง์์์ ๊ฐ์ฅ ๋ถ์ ํ ์ญ๋ ์ฒญ์๋
์์ด ๋ฐํ์ง ๊ฒ์
๋๋ค.
์์ ์ฝ๊ฐ์ ์ฝ๋ฉ๋ ์์ด ์คํ๋์์ต๋๋ค. ์ฌ์ง์ด ์ด๋ฆฐ์ด๋ ์ด๊ฒ์ ํ ์ ์์ต๋๋ค!
DDE ๋ฐ ํ๋
Microsoft๋ ๋์ค์ Word์์ DDE๋ฅผ ๋นํ์ฑํํ์ง๋ง ํ์ฌ์์ ์ด ๊ธฐ๋ฅ์ด ๋จ์ํ ์ค์ฉ๋์๋ค๊ณ ๋ฐํ๊ธฐ ์ ์๋ ๊ทธ๋ ์ง ์์์ต๋๋ค. ๊ทธ๋ค์ด ์๋ฌด๊ฒ๋ ๋ฐ๊พธ์ง ์์ผ๋ ค๋ ๊ฒ์ ์ดํดํ ์ ์์ต๋๋ค. ๋ด ๊ฒฝํ์ ๋ฌธ์๋ฅผ ์ด ๋ ํ๋ ์ ๋ฐ์ดํธ๋ ํ์ฑํ๋์์ง๋ง IT์์ Word ๋งคํฌ๋ก๋ ๋นํ์ฑํํ์ง๋ง ์๋ฆผ์ ํ์ํ๋ ์๋ฅผ ์ง์ ๋ณธ ์ ์ด ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Word ์ค์ ์น์ ์์ ํด๋น ์ค์ ์ ์ฐพ์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํ๋ ์ ๋ฐ์ดํธ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ Microsoft Word์์๋ ์์ DDE์ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋์์ ์ญ์ ๋ ๋ฐ์ดํฐ์ ๋ํ ์ก์ธ์ค๋ฅผ ์์ฒญํ ๋ ์ฌ์ฉ์์๊ฒ ์ถ๊ฐ๋ก ์๋ฆฝ๋๋ค. Microsoft๋ ์ ๋ง๋ก ๊ฒฝ๊ณ ํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์ํ๊ณ Word์์ ํ๋ ์ ๋ฐ์ดํธ๋ฅผ ํ์ฑํํฉ๋๋ค. ์ด๋ ์ํํ DDE ๊ธฐ๋ฅ์ ๋นํ์ฑํํ Microsoft์ ๋ํด ๊ฐ์ฌ๋ฅผ ํํ ์ ์๋ ๋๋ฌธ ๊ธฐํ ์ค ํ๋์ ๋๋ค.
ํ์ฌ ํจ์น๊ฐ ์ ์ฉ๋์ง ์์ Windows ์์คํ ์ ์ฐพ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ต์ต๋๊น?
์ด ํ ์คํธ์์๋ AWS Workspaces๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ๋ฐ์คํฌํฑ์ ์ก์ธ์คํ์ต๋๋ค. ์ด๋ฐ ์์ผ๋ก DDEAUTO ํ๋๋ฅผ ์ฝ์ ํ ์ ์๋ ํจ์น๋์ง ์์ MS Office ๊ฐ์ ๋จธ์ ์ ์ป์์ต๋๋ค. ๋น์ทํ ๋ฐฉ์์ผ๋ก ํ์ํ ๋ณด์ ํจ์น๋ฅผ ์์ง ์ค์นํ์ง ์์ ๋ค๋ฅธ ํ์ฌ๋ฅผ ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ ์์ฌ์ ์ฌ์ง๊ฐ ์์ต๋๋ค.
์ฌ๋ฌผ์ ์ ๋น
์ด ํจ์น๋ฅผ ์ค์นํ๋๋ผ๋ MS Office์๋ ํด์ปค๊ฐ Word์์ ํ๋ ๊ฒ๊ณผ ๋งค์ฐ ์ ์ฌํ ์์ ์ ์ํํ ์ ์๋ ๋ค๋ฅธ ๋ณด์ ํ์ ์ด ์์ต๋๋ค. ๋ค์ ์๋๋ฆฌ์ค์์ ์ฐ๋ฆฌ๋ ๋ฐฐ์ธ ๊ฒ์ ๋๋ค ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ Excel์ ํผ์ฑ ๊ณต๊ฒฉ์ ๋ฏธ๋ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ด ์๋๋ฆฌ์ค๋ฅผ ์ดํดํ๊ธฐ ์ํด Microsoft ๊ตฌ์ฑ ์์ ๊ฐ์ฒด ๋ชจ๋ธ์ ๊ธฐ์ตํด ๋ณด๊ฒ ์ต๋๋ค. COM(๊ตฌ์ฑ ์์ ๊ฐ์ฒด ๋ชจ๋ธ).
COM์ 1990๋
๋๋ถํฐ ์กด์ฌํด ์์ผ๋ฉฐ RPC ์๊ฒฉ ํ๋ก์์ ํธ์ถ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ "์ธ์ด ์ค๋ฆฝ์ , ๊ฐ์ฒด ์งํฅ ๊ตฌ์ฑ ์์ ๋ชจ๋ธ"๋ก ์ ์๋ฉ๋๋ค. COM ์ฉ์ด์ ๋ํ ์ผ๋ฐ์ ์ธ ์ดํด๋ฅผ ๋ณด๋ ค๋ฉด ๋ค์์ ์ฝ์ด๋ณด์ธ์.
๊ธฐ๋ณธ์ ์ผ๋ก COM ์์ฉ ํ๋ก๊ทธ๋จ์ Excel์ด๋ Word ์คํ ํ์ผ ๋๋ ์คํ๋๋ ๋ค๋ฅธ ๋ฐ์ด๋๋ฆฌ ํ์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค.
COM ์์ฉ ํ๋ก๊ทธ๋จ๋ ์คํํ ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๋๋ณธ โ JavaScript ๋๋ VBScript. ๊ธฐ์ ์ ์ผ๋ก๋ ์คํฌ๋ฆฝํ๋ฆฟ. Windows์์ ํ์ผ์ .sct ํ์ฅ์๋ฅผ ๋ณธ ์ ์ด ์์ ๊ฒ์ ๋๋ค. ์ด๋ ์คํฌ๋ฆฝํ๋ฆฟ์ ๊ณต์ ํ์ฅ์์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ XML ๋ํผ๋ก ๋ํ๋ ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋๋ค.
<?XML version="1.0"?>
<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[
var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");
]]>
</script>
</scriptlet>
ํด์ปค์ ์นจํฌ ํ ์คํฐ๋ Windows์ COM ๊ฐ์ฒด์ ์ด์ ๋ฐ๋ฅธ ์คํฌ๋ฆฝํ๋ฆฟ๋ ํ์ฉํ๋ ๋ณ๋์ ์ ํธ๋ฆฌํฐ์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๋ค๋ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค.
VBS๋ก ์์ฑ๋ pubprn์ด๋ผ๋ Windows ์ ํธ๋ฆฌํฐ์ ์คํฌ๋ฆฝํ๋ฆฟ์ ์ ๋ฌํ ์ ์์ต๋๋ค. C:Windowssystem32Printing_Admin_Scripts ๊น์ด์ ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ์ฒด๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์๋ค์ด๋ ๋ค๋ฅธ Windows ์ ํธ๋ฆฌํฐ๋ ์์ต๋๋ค. ๋จผ์ ์ด ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ธ์ ์คํฌ๋ฆฝํธ์์๋ ์์ด ์์๋ ์ ์๋ค๋ ๊ฒ์ ๋งค์ฐ ์์ฐ์ค๋ฌ์ด ์ผ์
๋๋ค. ๋ง์ดํฌ๋ก์ํํธ๋ก ๊ฐ์ธ์!
ํ ์คํธ๋ฅผ ์ํด ์์ ์คํํ๊ณ "You've just been scripted!"๋ผ๋ ์ฌ๋ฏธ์๋ ๋ฉ์์ง๋ฅผ ์ธ์ํ๋ ๊ฐ๋จํ ์๊ฒฉ ์คํฌ๋ฆฝํ๋ฆฟ์ ๋ง๋ค์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก pubprn์ ์คํฌ๋ฆฝํ๋ฆฟ ๊ฐ์ฒด๋ฅผ ์ธ์คํด์คํํ์ฌ VBScript ์ฝ๋๊ฐ ๋ํผ๋ฅผ ์คํํ ์ ์๋๋ก ํฉ๋๋ค. ์ด ๋ฐฉ๋ฒ์ ์์คํ ์ ๋ชฐ๋ ๋ค์ด๊ฐ ์จ๊ณ ์ถ์ดํ๋ ํด์ปค์๊ฒ ํ์คํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
๋ค์ ๊ฒ์๋ฌผ์์๋ ํด์ปค๊ฐ Excel ์คํ๋ ๋์ํธ๋ฅผ ์ฌ์ฉํ์ฌ COM ์คํฌ๋ฆฝํ๋ฆฟ์ ์ด๋ป๊ฒ ์ ์ฉํ ์ ์๋์ง ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์์ ๋ฅผ ์ํด ์ดํด๋ณด์ธ์
์ถ์ฒ : habr.com