»ç½Ç ÇÊÀÚÀÇ ÆÁÀ» º¸¸é
regsvr32 filename.dll À̶ó´Â ¸í·ÉÀ» ÀÚÁÖ »ç¿ëÇÑ´Ù. ±× ÀÌÀ¯´Â
DLLÀ̳ª OCX Áß¿¡´Â DLL ÀÚü¿¡ °ü·ÃµÈ Á¤º¸(CLISDµî)À» ·¹Áö½ºÆ®¸®¿¡ µî·ÏÇÏ´Â ±â´ÉÀ» °¡Áö°í ÀÖ´Â ÆÄÀÏÀÌ ÀÖ°í ÀÌ·± ÀÚü Á¤º¸°¡ Á¤»óÀûÀ¸·Î ·¹Áö½ºÆ®¸®¿¡ µî·ÏµÇ¾î ÀÖÁö ¾ÊÀ¸¸é ½Ã½ºÅÛÀÌ ¿Àµ¿ÀÛÇÒ ¼ö Àֱ⶧¹®ÀÌ´Ù. ÀÌ·¯ÇÑ ÆÄÀϵéÀº ³»ºÎÀûÀ¸·Î
DLLCanUnloadNow,
DLLGetClassObject,
DLLRegisterServer,
DLLUnregisterServer¶ó´Â 4°³ÀÇ ÇÔ¼ö¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.
¸¸¾à ÀÌ¿Í °°Àº ±â´ÉÀ» °¡Áö°í ÀÖÁö ¾ÊÀº DLL¸¦ µî·ÏÇϱâÀ§ÇØ
Regsvr32 ¸í·ÉÀ» »ç¿ëÇÏ¸é ±×¸²Ã³·³
DLLÀ» ·ÎµåÇßÁö¸¸ DLLRegisterServer ÁøÀÔÁ¡À» ãÀ» ¼ö ¾ø´Ù´Â ¿À·ù ¸Þ½ÃÁö°¡ ³ªÅ¸³´Ù.
»ç¿ëÀÚ¿¡µû¶ó Â÷ÀÌ´Â ÀÖ°ÚÁö¸¸ DLLÀ» ·¹Áö½ºÆ®¸®¿¡ µî·ÏÇÏ´Â °æ¿ì´Â ÀÚÁÖ ¹ß»ýÇÑ´Ù. ƯÈ÷ ¼öµ¿ ¼³Ä¡¸¦ Áñ±â´Â »ç¶÷ÀÇ °æ¿ì¿¡´Â ºó¹øÇÏ°Ô »ç¿ëÇÏ´Â ±â´ÉÀÌ DLLÀÇ ·¹Áö½ºÆ®¸® µî·ÏÀÌ´Ù. µû¶ó¼ À̹øÆÁ¿¡¼´Â
1. ¸¶¿ì½º ¿ìÃø ¸Þ´º¿¡ DLL µî·Ï/DLL ÇØÁ¦¶ó´Â µÎ°³ÀÇ ¸Þ´º¸¦ Ãß°¡ÇÏ°í
2. DLLÀÌ µî·Ï/ÇØÁ¦ °¡´ÉÇÑ DLLÀÎÁö °Ë»çÇÑ ÈÄ DLL µî·Ï/ÇØÁ¦ÇÏ´Â ÆÁÀ» ¼³¸íÇÏ°Ú´Ù.
ÀÌ ÆÁ¿¡´Â ÇÊÀÚ°¡ Á÷Á¢ ÀÛ¼ºÇÑ µÎ°³ÀÇ ¹èÄ¡ ÆÄÀÏÀÌ ÇÊ¿äÇϸç, ¹èÄ¡ ÆÄÀÏÀÇ ½ÇÇàÀ» ¼û±â±âÀ§ÇØ
¼û°ÜÁø âÀ¸·Î ¸í·É ½ÇÇàÇϱ⿡¼ ¼³¸íÇÑ
ShellExecute °¡ ÇÊ¿äÇÏ´Ù.
- Áغñ¹°
- ShellExecute À» ´Ù¿î¹Þ¾Æ À¯Æ¿ Æú´õ(¿¹: C:\Gain)¿¡ ¾ÐÃà ÇØÁ¦ÇÑ´Ù.
- DLLReg.zipÀ» ´Ù¿î¹Þ¾Æ À¯Æ¿ Æú´õ(¿¹: C:\Gain)¿¡ ¾ÐÃà ÇØÁ¦ÇÑ´Ù.
- DLL µî·Ï
- ½ÃÀÛ/½ÇÇà/Regedit¸¦ ÀÔ·ÂÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÑ´Ù.
- ´ÙÀ½ ·¹Áö½ºÆ®¸®·Î À̵¿ÇÑ´Ù.
HKCR\dllfile\shell
- Shell Å°¿¡ ¸¶¿ì½º ¿ìÃø ¹öÆ°À» Ŭ¸¯ÇÏ°í »õ·Î ¸¸µé±â/Å°¸¦ ¼±ÅÃÇÑ´Ù.
- Å° À̸§À» R·Î ÁöÁ¤ÇÑ´Ù.
- ¿ìÃø ÆгÎÀÇ ±âº»°ªÀ» µÎ¹ø Ŭ¸¯ÇÏ°í °ª µ¥ÀÌŸ¸¦ DLL µî·ÏÀ¸·Î ÁöÁ¤ÇÑ´Ù.
- »õ·Î ¸¸µç R Å°¿¡ ´Ù½Ã ¸¶¿ì½º ¿ìÃø ¹öÆ°À» Ŭ¸¯ÇÏ°í »õ·Î ¸¸µé±â/Å°¸¦ ¼±ÅÃÇÑ´Ù.
- Å°ÀÇ À̸§À» command·Î ÁöÁ¤ÇÑ´Ù.
- ¿ìÃø Æгο¡¼ ±âº»°ªÀ» µÎ¹ø Ŭ¸¯ÇÏ°í °ª µ¥ÀÌŸ¸¦ ´ÙÀ½ ó·³ ¼³Á¤ÇÑ´Ù.
<À¯Æ¿ Æú´õ>ShellExecute.exe /f:<À¯Æ¿ Æú´õ>\DLLReg.cmd /P:%L /r:hidden
¿¹:
C:\gain\ShellExecute.exe /f:C:\Gain\DLLReg.cmd /P:%L /r:hidden
- DLL ÇØÁ¦
- ½ÃÀÛ/½ÇÇà/Regedit¸¦ ÀÔ·ÂÇÏ°í È®ÀÎÀ» Ŭ¸¯ÇÑ´Ù.
- ´ÙÀ½ ·¹Áö½ºÆ®¸®·Î À̵¿ÇÑ´Ù.
HKCR\dllfile\shell
- Shell Å°¿¡ ¸¶¿ì½º ¿ìÃø ¹öÆ°À» Ŭ¸¯ÇÏ°í »õ·Î ¸¸µé±â/Å°¸¦ ¼±ÅÃÇÑ´Ù.
- Å° À̸§À» U·Î ÁöÁ¤ÇÑ´Ù.
- ¿ìÃø ÆгÎÀÇ ±âº»°ªÀ» µÎ¹ø Ŭ¸¯ÇÏ°í °ª µ¥ÀÌŸ¸¦ DLL ÇØÁ¦·Î ÁöÁ¤ÇÑ´Ù.
- »õ·Î ¸¸µç U Å°¿¡ ´Ù½Ã ¸¶¿ì½º ¿ìÃø ¹öÆ°À» Ŭ¸¯ÇÏ°í »õ·Î ¸¸µé±â/Å°¸¦ ¼±ÅÃÇÑ´Ù.
- Å°ÀÇ À̸§À» command·Î ÁöÁ¤ÇÑ´Ù.
- ¿ìÃø Æгο¡¼ ±âº»°ªÀ» µÎ¹ø Ŭ¸¯ÇÏ°í °ª µ¥ÀÌŸ¸¦ ´ÙÀ½ ó·³ ¼³Á¤ÇÑ´Ù.
<À¯Æ¿ Æú´õ>ShellExecute.exe /f:<À¯Æ¿ Æú´õ>\DLLUnReg.cmd /P:%L /r:hidden
¿¹:
C:\gain\ShellExecute.exe /f:C:\Gain\DLLUnReg.cmd /P:%L /r:hidden
- OCX ÆÄÀÏ
¸¸¾à OCX ÆÄÀÏ¿¡ Àû¿ëÇÏ·Á¸é ´ÙÀ½ ·¹Áö½ºÆ®¸®¿¡´ëÇØ DLL µî·Ï°ú DLL ÇØÁ¦¸¦ Àû¿ëÇÏ¸é µÈ´Ù.
HKCR\ocxfile\shell
ÀÌ ÆÁÀ» Àû¿ëÇÏ°í DLLÀ̳ª OCX ÆÄÀÏ¿¡ ¸¶¿ì½º ¿ìÃø ¹öÆ°À» Ŭ¸¯Çϸé
DLL µî·Ï°ú
DLL ÇØÁ¦¶ó´Â ¸Þ´º°¡ ³ªÅ¸³´Ù. À̶§ ¿ìÃø ¸Þ´º Áß
DLL µî·ÏÀ» Ŭ¸¯Çϸé DLLÀÌ µî·Ï °¡´ÉÇÑ DLLÀÎ °æ¿ì ±×¸²Ã³·³ µî·Ï ¼º°ø ¸Þ½ÃÁö°¡ ³ªÅ¸³´Ù.
¸¸¾à ÇØ´ç DLLÀÌ µî·Ï ºÒ°¡´ÉÇÑ °æ¿ì¿¡´Â ¾Æ¹«·± ¸Þ½ÃÁöµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù.
µî·Ï ÇØÁ¦ÀÇ °æ¿ìµµ °ÅÀÇ ºñ½ÁÇÏ´Ù.
DLL ÇØÁ¦¸¦ Ŭ¸¯Çϸé DLL µî·Ï ÇØÁ¦°¡ °¡´ÉÇÑ °æ¿ì¿¡´Â µî·Ï ÇØÁ¦ ¼º°ø ¸Þ½ÃÁö°¡ ³ªÅ¸³ª¸ç µî·Ï ÇØÁ¦ÇÒ ¼ö ¾ø´Â DLLÀÇ °æ¿ì¿¡´Â ¾Æ¹«·± ¸Þ½ÃÁöµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù.
Ãß°¡ Á¤º¸1:
´Ù¿î·Îµå
¾ÐÃà ÆÄÀÏ¿¡´Â µÎ°³ÀÇ ¹èÄ¡ ÆÄÀÏ(DLLReg.cmd, DLLUnReg.cmd)°ú ÇÊÀÚÀÇ ½Ã½ºÅÛ¿¡ Àû¿ëµÈ ·¹Áö½ºÆ®¸® ÆÄÀÏ(DLLReg.reg)ÀÌ Æ÷ÇԵǾî ÀÖ´Ù.
´Ù¿î·Îµå:
DLLReg.zip
Ãß°¡ Á¤º¸2:
¹èÄ¡ ÆÄÀÏ
¹èÄ¡ ÆÄÀÏÀº »ç½Ç ¾ÆÁÖ °£´ÜÇÑ ¸í·ÉÀ» Æ÷ÇÔÇÏ°í ÀÖÀ¸¸ç,
DLLReg.cmd³ª
DLLUnReg.cmd³ª °ÅÀÇ ºñ½ÁÇÏ´Ù. µû¶ó¼ ¼³¸íÀº
DLLReg.cmd¸¸ ¼³¸íÇÏ°Ú´Ù.
REM ¸Þ½ÃÁö Ãâ·ÂÀ» Á¦°Å
@echo off
REM ¸Å°³º¯¼ö(%1)°¡ ¾øÀ¸¸é ÇÁ·Î±×·¥ Á¾·á
if {%1}=={} goto end
REM find ¸í·ÉÀ» ÀÌ¿ëÇؼ ¸Å°³º¯¼ö·Î Àü´ÞµÈ ÆÄÀÏ¿¡¼ µî·Ï
REM ¸Þ½ÃÁö¸¦ °Ë»öÇϸç, °Ë»ö °á°ú¸¦ NUL ÀåÄ¡·Î º¸³¿
REM NUL ÀåÄ¡·Î º¸³»¸é ¾Æ¹«·± ¸Þ½ÃÁöµµ Ãâ·ÂµÇÁö ¾ÊÀ½
find /i "DLLRegisterServer" "%1" > nul
REM find ¸í·ÉÀÌ Á¤»óÀûÀ¸·Î ¼öÇàµÈ °æ¿ì register·Î ºÐ±âÇϸç
REM ±×·¸Áö ¾ÊÀº °æ¿ì END·Î ºÐ±â
if not errorlevel 1 goto register
goto end
REM regsvr32 ¸í·ÉÀ» ÀÌ¿ëÇØ ¸Å°³º¯¼ö·Î Àü´ÞµÈ ¸ðµâÀ» µî·Ï
:register
%systemroot%\system32\regsvr32.exe "%1"
goto end
:end
Ãß°¡ Á¤º¸3: DLL µî·Ï¿¡ ¼º°øÇÑ °æ¿ì DLL µî·Ï ¼º°ø âÀ» ¶ç¿ì°í ±×·¸Áö ¾ÊÀº °æ¿ì¿¡´Â ½ÇÆРâÀ» ¶ç¿ì´Â °ÍÀº ÈξÀ °£´ÜÇÏ´Ù. µî·Ï/ÇØÁ¦ ¸í·ÉÀ»
ShellExecute ´ë½Å¿¡
regsvr32¸¦ »ç¿ëÇÏ¸é µÈ´Ù.
º¯°æÀü: C:\gain\ShellExecute.exe /f:C:\Gain\DLLUnReg.cmd /P:%L /r:hidden
º¯°æÈÄ: %SystemRoot%\System32\regsvr32.exe %L