|

ű״ ¶ç¾î¾²±â°¡ ¹«½ÃµÇ¸ç, 2°³ ÀÌ»ó ÀÔ·Â ½Ã ÅÂ±×¿Í Å±״ ½°Ç¥(,)·Î ±¸ºÐÇÕ´Ï´Ù.
ÇÑ Å±×ÀÇ ÃÖ´ë ±ÛÀÚ¼ö´Â 10±ÛÀÚÀ̸ç, º»ÀÎÀÌ ÀÔ·ÂÇϰųª Âù¼ºÇÑ Å±״ ³ë¶õ»öÀ¸·Î Ç¥±âµË´Ï´Ù.
WDM µð¹ÙÀ̽º µå¶óÀ̹ö ±¸Á¶¿Í ¿ø¸®¸¦ ¼³¸íÇÒ »Ó ¾Æ´Ï¶ó ´Ù¾çÇÑ µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ±¸Á¶¿Í ¿ø¸®¸¦ ¼Ò°³ÇÑ´Ù. ÀϹݷРºÎºÐÀº °ú°¨È÷ »ý·«Çϰí, ½ÇÁ¦ °³¹ß ´ç½Ã¿¡ ±Ã±ÝÇØ ÇÒ ¼ö ÀÖ´Â ºÎºÐ°ú °³¹ßÀÚµéÀÌ Âü°íÇÒ ¼ö ÀÖ´Â »ùÇõéÀ» À§ÁÖ·Î ±¸¼ºÇÏ¿´´Ù. WDM µð¹ÙÀ̽º µå¶óÀ̹ö ºÐ¾ß¿¡ ´ëÇÑ ±âº» ÀÌÇØ¸¦ ÇÊ¿ä·Î ÇÑ´Ù.
[ºÎ·Ï CD] °ü·Ã µ¿¿µ»ó (PS2 ¸¶¿ì½º¸¦ À§ÇÑ µð¹ÙÀ̽º ½ºÅà Çü¼º°úÁ¤, USB À̵¿½Ä µð½ºÅ©¸¦ À§ÇÑ µð¹ÙÀ̽º ½ºÅà Çü¼º°úÁ¤, WinDbgÀÇ WebSymbol °æ·Î ¼³Á¤)
Á¦1Àå ½ÃÀÛÇϱâ Àü¿¡
1. Windows¿¡¼ ¿î¿ëµÇ´Â WDM µå¶óÀ̹ö¿¡ ´ëÇÑ ¼Ò°³
Windows Driver ModelÀÇ Æ¯Â¡
¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼ ¹ö½º¿Í Ŭ·¡½º µå¶óÀ̹ö Áö¿ø
¼Ò½º¿Í ÀÌÁø ȣȯ¼º
°èÃþÈ
2. ÀÌ Ã¥ÀÇ ±¸¼º
3. ÀÌ Ã¥¿¡¼ Á¦°øµÇ´Â ¸ðµç »ùÇà ¼Ò½º Äڵ忡 ´ëÇÏ¿©
4. Âü°í¹®Çå
Á¦2Àå WDM µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÃÖ¼ÒÇÑÀÇ ±âº» °ñ°Ý
1. DriverEntry Routine
2. AddDevice Routine
3. IRP Dispatch Routine
4. DriverUnload Routine
5. Hajesoft Sample Driver(2-1) ¼³Ä¡Çϱâ
Á¦3Àå ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¸¦ ÅëÇÑ µð¹ÙÀ̽º ³ëµå ºÐ¼®
1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
Á¦1Àå ½ÃÀÛÇϱâ Àü¿¡
1. Windows¿¡¼ ¿î¿ëµÇ´Â WDM µå¶óÀ̹ö¿¡ ´ëÇÑ ¼Ò°³
Windows Driver ModelÀÇ Æ¯Â¡
¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿¡¼ ¹ö½º¿Í Ŭ·¡½º µå¶óÀ̹ö Áö¿ø
¼Ò½º¿Í ÀÌÁø ȣȯ¼º
°èÃþÈ
2. ÀÌ Ã¥ÀÇ ±¸¼º
3. ÀÌ Ã¥¿¡¼ Á¦°øµÇ´Â ¸ðµç »ùÇà ¼Ò½º Äڵ忡 ´ëÇÏ¿©
4. Âü°í¹®Çå
Á¦2Àå WDM µð¹ÙÀ̽º µå¶óÀ̹öÀÇ ÃÖ¼ÒÇÑÀÇ ±âº» °ñ°Ý
1. DriverEntry Routine
2. AddDevice Routine
3. IRP Dispatch Routine
4. DriverUnload Routine
5. Hajesoft Sample Driver(2-1) ¼³Ä¡Çϱâ
Á¦3Àå ½Ã½ºÅÛ ·¹Áö½ºÆ®¸®¸¦ ÅëÇÑ µð¹ÙÀ̽º ³ëµå ºÐ¼®
1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
3. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
4. ¹ö½º µå¶óÀ̹ö¿Í ÀÚ½Ä µå¶óÀ̹ö¸¦ ÀÛ¼ºÇÏ¿© ¼³Ä¡µÈ ·¹Áö½ºÆ®¸® È®ÀÎÇϱâ
Á¦4Àå WDM µð¹ÙÀ̽º µå¶óÀ̹ö°¡ »ç¿ëÇÏ´Â ÀڷᱸÁ¶
1. DRIVER_OBJECT
2. DEVICE_OBJECT
µð¹ÙÀ̽º ½ºÅûóÀÇ DeviceObject
DeviceObject¸¦ ±¸¼ºÇÏ´Â Çʵ忡 ´ëÇÏ¿©
3. IRP
IRP ±¸Á¶Ã¼¿Í ±¸Á¶Ã¼¸¦ »ç¿ëÇÏ´Â ÇÔ¼ö
IO_STACK_LOCATION ±¸Á¶Ã¼¿Í °ü·Ã ÇÔ¼ö
4. FILE_OBJECT
DeviceObject
FsContext
SectionObjectPointer, PrivateCacheMap, RelatedFileObject, CurrentByteOffset
FileName
5. Mini DevTree »ý¼ºÇϱâ
Á¦5Àå ÀÀ¿ë ÇÁ·Î±×·¥°ú µð¹ÙÀ̽º µå¶óÀ̹ö
1. ÀÀ¿ë ÇÁ·Î±×·¥¿¡¼ºÎÅÍ Ä¿³Î±îÁö
CreateFile()
ReadFile()
WriteFile()
DeviceIoControl()
CloseHandle()
CancelIo()
2. Ä¿³Î¿¡¼ºÎÅÍ IO Manager±îÁö
3. IO Manager¿¡¼ºÎÅÍ WDM µð¹ÙÀ̽º µå¶óÀ̹ö±îÁö
NtCreateFile()
NtReadFile()
NtWriteFile()
NtDeviceIoControlFile()
NtCancelIoFile()
NtClose()
4. IRP Cancel(Ãë¼Ò) °úÁ¤
IRP Ãë¼Ò°¡ ¹ß»ýÇÏ´Â ¿©·¯ °¡Áö ÀÌÀ¯¿¡ ´ëÇÏ¿©
IRP Ãë¼Ò°¡ ¹ß»ýÇÏ´Â ¶Ç ´Ù¸¥ Ưº°ÇÑ Çö»ó
IRP Ãë¼Ò °úÁ¤ÀÇ Á߿伺
µð¹ÙÀ̽º ½ºÅðú Ãë¼Ò ¿äû °ü°è
IRP ¸í·É¿¡ ´ëÇÑ Ãë¼Ò ¿äû¿¡ ´ëÀÀÇÏ´Â ¸ð½À
5. IRP Complete(Á¾·á) °úÁ¤
IoCompleteRequest() ÇÔ¼öÀÇ µ¿ÀÛ ¿ø¸®
IoCompleteRequest() ÇÔ¼ö°¡ µî·ÏÇÏ´Â ÈÄó¸® ·çƾ(APC ·çƾ)¿¡ ´ëÇÏ¿©
6. Áßø ÀÔÃâ·Â(Overlapped IO)¿¡ ´ëÇÏ¿©
7. IRP Ãë¼Ò °úÁ¤ ¿¹Á¦
Á¦6Àå µð¹ÙÀ̽º ½ºÅûóÀÇ ÈÄÅ·À» À§ÇÑ Á¤±Ô WDM ÇÊÅÍ µð¹ÙÀ̽º µå¶óÀ̹ö ÀÛ¼º
1. ½Ã¸®¾ó ÀåÄ¡°¡ »ç¿ëÇÏ´Â µð¹ÙÀ̽º ½ºÅà Çü¼º ½Ã Âü°íµÇ´Â ·¹Áö½ºÆ®¸®
2. º» Àå¿¡¼ ÀÛ¼ºÇÒ ¿¹Á¦ÀÇ Æ¯Â¡
¼ºñ½º µî·Ï ÀÛ¾÷
·¹Áö½ºÆ®¸® ¼öÁ¤ ÀÛ¾÷(ClassÀÇ UpperFilter)
µð¹ÙÀ̽º ½ºÅà À籸¼º ¿äûÇϱâ
½Ã¸®¾ó ÀåÄ¡¿¡ ´ëÇÑ ÀÔÃâ·Â ÅëÁ¦ ¼³Á¤Çϱâ
ÅëÁ¦µÈ ÀåÄ¡¸¦ »ç¿ëÇÏ¸é¼ ±¸ÇØÁö´Â ·Î±× Á¤º¸ Ãâ·ÂÇϱâ
3. ½Ã¸®¾ó ÀåÄ¡¸¦ À§Çؼ »ç¿ëµÇ´Â ÇÊÅÍ µå¶óÀ̹ö(SAMFLT) ¼Ò½º ºÐ¼®
LOGOUT.C
SAMFLT.C
Á¦7Àå Æ¯Á¤ µå¶óÀ̹öÀÇ µ¿ÀÛÀ» ÈÄÅ·Çϱâ À§ÇÑ ºñÁ¤±Ô ÇÊÅÍ µå¶óÀ̹ö ÀÛ¼º
1. º» Àå¿¡¼ ÀÛ¼ºÇÒ ¿¹Á¦ÀÇ Æ¯Â¡
2. SERIAL.SYS¸¦ ºñÁ¤±ÔÀûÀÎ ¹æ¹ýÀ¸·Î °¨½ÃÇÏ´Â µå¶óÀ̹ö ¼Ò½º ºÐ¼®
LOGOUT.C
SAMHOOK.C
Á¦8Àå ½Ã¸®¾ó/¸ðµ© Ŭ·¡½º¸¦ ±¸¼ºÇÏ´Â WDM µð¹ÙÀ̽º µå¶óÀ̹ö
1. º» Àå¿¡¼ ÀÛ¼ºÇÒ ¿¹Á¦ÀÇ Æ¯Â¡
µå¶óÀ̹ö ºôµå ÀÛ¾÷
µå¶óÀ̹ö ¼³Ä¡ °úÁ¤
µå¶óÀ̹ö »ç¿ë ¹æ¹ý
2. °¡»ó ½Ã¸®¾ó(VSerial) µå¶óÀ̹ö ¼Ò½º ºÐ¼®
MAIN.C
UTIL.C
QUEUE.C
RS232.C
3. °¡»ó ½Ã¸®¾ó(VSerial) µå¶óÀ̹ö ¼³Ä¡ ÆÄÀÏ ºÐ¼®
4. °¡»ó ½Ã¸®¾ó(VSerial) µå¶óÀ̹öÀÇ Ãë¾àÁ¡¿¡ ´ëÇÏ¿©
Á¦9Àå µð½ºÅ© Ŭ·¡½º¸¦ ±¸¼ºÇÏ´Â WDM µð¹ÙÀ̽º µå¶óÀ̹ö
1. À©µµ¿ìÁî(XP)¿¡¼ ½ÇÁ¦·Î »ç¿ëµÇ°í ÀÖ´Â µð½ºÅ© µå¶óÀ̹ö¸¦ À§ÇÑ µð¹ÙÀ̽º ½ºÅÃ
2. º» Àå¿¡¼ ÀÛ¼ºÇÒ ¿¹Á¦ÀÇ Æ¯Â¡
µå¶óÀ̹ö ºôµå ÀÛ¾÷
µå¶óÀ̹ö ¼³Ä¡ °úÁ¤
3. µå¶óÀ̹ö ¼Ò½º ºÐ¼®
RAMDISK.INF
RAMDISK.C
4. ¼³Ä¡ ÈÄÀÇ µð¹ÙÀ̽º ½ºÅÃ
Á¦10Àå Universal Serial Bus µð¹ÙÀ̽º µå¶óÀ̹ö ÀÛ¼º
1. USB Standard Specification°ú À©µµ¿ìÁî
Àü¼Û(Transfer), Æ®·£Àè¼Ç(Transaction), ±×¸®°í ÆÐŶ(Packet)
Æ®·£Àè¼Ç¿¡ ´ëÇÑ ±×¸²
2. Descriptors
Device Descriptor
Configuration Descriptor
Interface Descriptor
Endpoint Descriptor
3. USBHUB µð¹ÙÀ̽º µå¶óÀ̹ö »ç¿ëÇϱâ
4. URB¿¡ ´ëÇÏ¿©
URB_SELECT_CONFIGURATION
URB_CONTROL_VENDOR_OR_CLASS_REQUEST
URB_BULK_OR_INTERRUPT_TRANSFER
URB_ISOCH_TRANSFER
Á¦11Àå ÆÄÀÏ ½Ã½ºÅÛ ÇÊÅÍ µå¶óÀ̹ö ÀÛ¼º
1. ÆÄÀÏ ½Ã½ºÅÛ µå¶óÀ̹ö°¡ °ü¿©ÇÏ´Â µð¹ÙÀ̽º ½ºÅÃ
VDO(Volume DeviceObject)¸¦ ±Ù°Å·Î ÇÏ´Â µð¹ÙÀ̽º ½ºÅÃ
CDO(Control DeviceObject)¸¦ ±Ù°Å·Î ÇÏ´Â µð¹ÙÀ̽º ½ºÅÃ
2. ÆÄÀÏ ½Ã½ºÅÛ µå¶óÀ̹ö°¡ °ü¿©ÇÏ´Â µð¹ÙÀ̽º ½ºÅûóÀ¸·Î ÇÊÅÍ µå¶óÀ̹öÀÇ DeviceObject ¿Ã·Á³õ±â
3. ÆÄÀÏ ¼û±â±â ±â´ÉÀ» ±¸ÇöÇϱâ À§Çؼ ¾Ë¾Æ¾ß ÇÒ IRP ¸í·É
IRP_MJ_DIRECTORY_CONTROL
FileObjectÀÇ ´ë»ó À̸§À» ±¸Çϱâ À§ÇÏ¿© ÇØ½Ã ±¸Á¶Ã¼¸¦ »ç¿ëÇϱâ
4. »ùÇà ¼Ò½º¿¡ ´ëÇÏ¿©
µå¶óÀ̹ö ¼Ò½º ÆÄÀϵ鿡 ´ëÇÏ¿©
µå¶óÀ̹ö ¼Ò½º°¡ Á¦°øÇÏ´Â ÆÄÀϵéÀÇ ÇÔ¼ö ¼³¸í
ºÎ·Ï
A. Microsoft WinDBG¿¡ ´ëÇÏ¿©
B. USB ¹ö½º¸¦ »ç¿ëÇÏ´Â ½Ã¸®¾ó µð¹ÙÀ̽º µå¶óÀ̹ö °³¹ß
C. ¸Þ¸ð¸®(RAM)¸¦ »ç¿ëÇÏ´Â µð½ºÅ© µð¹ÙÀ̽º µå¶óÀ̹ö °³¹ß
D. CDROM Á¢±ÙÀ» °¨½ÃÇÏ´Â WDM ÇÊÅÍ µð¹ÙÀ̽º µå¶óÀ̹ö °³¹ß
E. CDROMÀÇ ¿øÇÏ´Â ¼½Å͸¦ ÀÐ°í ¾²±â À§ÇÑ ASPI¿ë µð¹ÙÀ̽º µå¶óÀ̹ö °³¹ß
F. ÆÄÀÏ ¼û±â±â ±â´ÉÀ» °¡Áø ÇÊÅÍ µå¶óÀ̹ö °³¹ß
G. Áß¿ä ±¸Á¶Ã¼
|
 |

âÀÛºí·Î±× Àαâ ÃÊû ¿¬ÀçÀÛ

|



 |
|
¾Ë¶óµò¿¡¼ ÁÖ¹®ÇϽб¹³»µµ¼ÀÇ ±¸¸Å ±Ý¾×ÀÌ ´Ù¸¥ ÀÎÅͳݼÁ¡(¿¹½º24, ÀÎÅÍÆÄÅ© µµ¼, ÀÎÅÍ³Ý ±³º¸¹®°í)¿¡¼ µ¿ÀÏÇÑ Á¶°ÇÀ¸·Î ÁÖ¹®ÇÑ ±Ý¾×º¸´Ù ºñ½Ò °æ¿ì ±× Â÷¾×¸¸Å ¾Ë¶óµò Àû¸³±ÝÀ¸·Î
º¸»óÇØµå¸®´Â Á¦µµÀÔ´Ï´Ù.
ÃÖÀú°¡ º¸»ó ´ë»ó »óǰÀº "±¹³»µµ¼"ÀÔ´Ï´Ù.
ÀüÁý·ù, ÇØ¿Üµµ¼, À½¹Ý/DVD/ÈÀåǰ/GIFT, ´Ù¸¥ ÀÎÅÍ³Ý ¼Á¡¿¡¼ ÆÇ¸ÅÁßÀÌÁö ¾ÊÀº µµ¼, 1ÀÏ Æ¯°¡ µµ¼(Ư°¡ ÆÇ¸Å À̺¥Æ® ±â°£ÀÌ 1ÀÏ À̳»ÀÎ µµ¼), ´Ù¸¥ ÀÎÅÍ³Ý ¼Á¡¿¡¼ °íÀÇÀûÀ¸·Î ÇöÇà¹ýÀ» À§¹ÝÇÏ´Â ¹«ºÐº°ÇÑ ÇÒÀÎÀ̳ª ¸¶Àϸ®Áö¸¦ Á¦°øÇÏ´Â °æ¿ì µîÀº ÃÖÀú°¡ º¸»ó
´ë»ó¿¡¼ Á¦¿ÜµË´Ï´Ù. |
| |
|
|
 |
|
¼ö·É¿¹»óÀÏÀº ÁÖ¹®»óǰÀ» ¹ÞÀ¸½Ç °ÍÀ¸·Î ¿¹»óµÇ´Â ³¯Â¥ÀÔ´Ï´Ù. °áÁ¦(¶Ç´Â ÀԱݿϷá)¸¦ ÇÏ¸é »óǰÁغñ¿Í Ãâ°í°úÁ¤À» °ÅÃÄ ¹è¼Û¾÷ü¸¦ ÅëÇØ ÁÖ¹®»óǰÀ» °í°´´Ô²² Àü´ÞÇÕ´Ï´Ù.
µµ¼ : 1¸¸¿ø ÀÌ»ó ±¸ÀԽà ¹«·á¹è¼Û(¸¸È, ÀâÁö·ù´Â Á¦¿Ü), ÈÀåǰ/À½¹Ý/DVD/¸¸È,ÀâÁö·ù,¾Ë¶óµòÁ÷¹è¼ÛGIFT : 20,000¿ø ÀÌ»ó ±¸ÀԽà ¹«·á¹è¼Û, GIFT(ÆÇ¸ÅÀÚ Á÷¹è¼Û)»óǰÀÇ °æ¿ì ÆÇ¸ÅÀÚÀÇ ¹è¼Û·á ±âÁØ¿¡ µû¶ó Â÷µî(¿¹: 30,000¿ø ÀÌÇÏ ±¸¸Å½Ã ¹è¼Û·á 2,500¿ø)
´Ü, Á¦ÁÖµµ ÅÃ¹è ¹è¼ÛÀÇ °æ¿ì, ÁÖ¹®±Ý¾× ¶Ç´Â ¹«·á¹è¼Û ¿©ºÎ¿¡ °ü°è¾øÀÌ Ç×°ø¹è¼Û·á 2,500¿øÀÌ ºÎ°úµË´Ï´Ù.¶ÇÇÑ ÆÇ¸ÅÀÚ Á÷¹è¼Û Á¦Ç°ÀÇ °æ¿ì, Á¦ÁÖµµ/¹é·Éµµ µî ¹è¼Û·á Ư¼öÁö¿ªÀº º°µµÀÇ ¹è¼Û·á°¡ ºÎ°úµÇ°Å³ª ¹è¼ÛÀÌ ºÒ°¡´ÉÇÏ´Ï, ¹è¼Û·á°¡
ÀϹÝÀûÀÌÁö ¾ÊÀº Áö¿ª¿¡ ¹è¼ÛÄÚÀÚÇϽô °í°´Àº ¹Ì¸® ¹è¼Û·á¿¡ ´ëÇØ »ó´ãÇϽñ⠹ٶø´Ï´Ù.  |
| |
|
|
 |
|
ÀýÆÇ : Á¦ÀÛÀ» Áß´ÜÇÑ »óǰÀ¸·Î, ´õ ÀÌ»ó À¯ÅëµÇÁö ¾Ê±â¿¡ ÁÖ¹®ÇÏ½Ç ¼ö°¡ ¾ø½À´Ï´Ù.
ǰÀý : °ø±ÞóÀÇ Àç°í°¡ ¼ÒÁøµÈ »óǰÀ¸·Î Àç Àμâ/Ãâ½ÃÇÒ ¶§±îÁö ÁÖ¹®ÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.  |

|