| ²é¿´: 643 | »Ø¸´: 4 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
kiyeerÌú³æ (³õÈëÎÄ̳)
|
[½»Á÷]
VxD±à³ÌÈëÃŽ̳Ì(Ò»)
|
||
|
VxD±à³ÌÈëÃŽ̳Ì(Ò») Ò»¡¢Windows 95 DDKµÄ°²×° °²×°Windows 95 DDKÒ»°ãÐèÒªÏȰ²×°Win32 SDK£¬ÔÒòÊÇWindows 95 DDK ÐèÒªWin32 SDKµÄ16λ×ÊÔ´±àÒëÆ÷£¬µ«ÊÇWin32 SDKºÜ´ó£¨Ò»ÕûÕŹâÅÌ µÄÈÝÁ¿£©£¬¶øÇÒ¹úÄÚÄÑÒÔÂòµ½£¬ftpÕ¾ÉÏÒ²½ÏÉÙ¼û£¬¼´Ê¹ÓУ¬ÏÂÔØÒ²ºÜÀ§ÄÑ¡£ ±ÊÕß¾¹ýÒ»¶Îʱ¼äµÄÃþË÷£¬ÕÒµ½Á˰²×°Windows 95 DDKµÄ¼¸ÖÖ¼òµ¥·½·¨£¬ ÏÖ½«·½·¨½éÉÜÈçÏ£º ·½·¨Ö®Ò»£ºÊ¹ÓõÚÈý·½×ÊÔ´±àÒëÆ÷ 1¡¢ÐÞ¸Ä×¢²á±í£¬·ÂÕæWin32 SDKÒѾ°²×°µÄÇé¿ö¡£ ½¨Á¢Ò»¸öÃûΪWIN32SDK.REGµÄ×¢²á±íÎļþ£¬ÄÚÈÝΪ£º REGEDIT4 [HKEY_USERS\.Default\Software\Microsoft\Win32SDK] [HKEY_USERS\.Default\Software\Microsoft\Win32SDK\Directories] "Install Dir"="C:\\MSTOOLS" ÔÚ×ÊÔ´¹ÜÀíÆ÷ÖÐË«»÷´ËÎļþ£¬½«´ËÎļþÖеÄÄÚÈÝÌí¼Óµ½×¢²á±í¡£¾Í¿ÉÒÔ°² ×°Windows 95 DDKÁË¡£ 2¡¢ÔËÐÐWindows 95 DDKÖеÄSETUP.EXEÎļþ£¬°²×°Windows 95 DDKµ½ C:\DDK¡£ 3¡¢°²×°MASM 6.11µ½C:\MASM611£¬°²×°Íê³Éºó½«Î´°²×°µÄWindows 95 DDK ÖеÄMASM611CĿ¼ÏµÄÎļþ¸²¸Çµ½C:\MASM611\BIN¡£ 4¡¢°²×°Visual C++ 5.0£¨4.0Ò²¿ÉÒÔ£¬µ«²»ÒËʹÓÃ6.0£©µ½C:\Program Files\DevStudio\VC¡£ 5¡¢½¨Á¢C:\MSTOOLS\BINW16Ŀ¼£¬¿½±´×ÊÔ´±àÒëÆ÷¡£ Windows 95 DDKÐèÒªÒ»¸öÄܽ«Win32×ÊÔ´Ô´Îļþ±àÒë³É16λ×ÊÔ´µÄ×ÊÔ´ ±àÒëÆ÷¡£Èç¹ûÓÐWin32 SDK£¬¿ÉÒÔ½«BINW16Ŀ¼ÏµÄÎļþÖ±½Ó¿½±´µ½ C:\MSTOOLS\BINW16£¬Èç¹ûûÓÐWin32 SDK£¬Ôò¿ÉÒÔʹÓõÚÈý·½µÄ×ÊÔ´±àÒë Æ÷£¬ÕâÀïÒÔʹÓÃBorlandµÄ×ÊÔ´±àÒëÆ÷ΪÀý£º ×¼±¸Turbo MASM 5.0Ò»Ì×£¬ÓÃUNPAK¹¤¾ß½âѹËõCMDLINE.PAKÎļþ£¬ÕÒ µ½ÏÂÃæÈý¸öÎļþ£º BRC.EXE BRCC32.EXE RW32CORE.DLL ½«ÕâÈý¸öÎļþ¿½±´µ½C:\MSTOOLS\BINW16£¬²¢½«BRC.EXE¸ÄÃûΪRC.EXE¼´ ¿É¡£ 6¡¢ÐÞ¸ÄCONFIG.SYSÔö´ó»·¾³±äÁ¿¿Õ¼ä¡£ ÔÚCONFIG.SYSÎļþ×îºó¼ÓÈëÒ»ÐУº SHELL=C:\WINDOWS\COMMAND.COM /E:8192 /P 7¡¢½øÈëWindows 95 MS-DOS·½Ê½£¬³õʼ»¯±àÒë»·¾³£¨×îºÃ½¨Á¢Ò»¸öÅú´¦ ÀíÎļþ£©£º C:\MASM611\BINR\NEW-VARS.BAT C:\DDK\DDKINIT.BAT 32 BASE £¨±àÒëµÄÉ豸Çý¶¯³ÌÐò²»Í¬£¬²ÎÊýÒ²²»Í¬£© C:\Program Files\DevStudio\VC\bin\VCVARS32.BAT ¾Í¿ÉÒÔʹÓÃWindows 95 DDKÁË£¬Á¬½Óʱ³öÏֵľ¯¸æ¿ÉÒÔ²»Àí»á¡£ ·½·¨Ö®¶þ£ºÊ¹ÓÃWindows 98 DDK ÍêÕû°æµÄWindows 98 DDK£¨Ô¼30M£©°üÀ¨Windows 95 DDK¡¢È«Ì×SDK±àÒë Æ÷ºÍMASM 6.11C»ã±àÆ÷£¬°²×°·½·¨·Ç³£¼òµ¥£º°²×°Windows 98 DDKºÍVisual C++ 5.0£¬È»ºóÖ±½ÓÔËÐС°Check Build Environment¡±£¨±àÒë´øµ÷ÊÔÐÅÏ¢ µÄÉ豸Çý¶¯³ÌÐò£©»òÕß¡°Free Build Environment¡±£¨±àÒëÕýʽ·¢²¼°æ±¾ µÄÉ豸Çý¶¯³ÌÐò£©³ÌÐòÏî¼´¿É¡£ ¶þ¡¢Ò»¸öÀ¹½ØWindows 95£¯98Îļþ²Ù×÷µÄVxD VxD¡ª¡ªÐéÄâÉ豸Çý¶¯³ÌÐò£¬¹ËÃû˼Ò壬VxDÊÇÓÃÀ´¿ØÖÆÓ²¼þÉ豸µÄ£¬ÄÇô ÕâÀïΪʲôҪ½²Ò»¸öÀ¹½ØWindows 95£¯98Îļþ²Ù×÷µÄVxDÄØ£¿Æäʵ£¬VxD ²»½ö½ö¿ÉÒÔÓÃÀ´¿ØÖÆÓ²¼þÉ豸£¬ÒòΪVxD¹¤×÷ÔÚ80386±£»¤Ä£Ê½Ring 0 ÌØÈ¨¼¶£¨×î¸ßÌØÈ¨¼¶£©ÉÏ£¬¶øÒ»°ãµÄÓ¦ÓóÌÐò¹¤×÷ÔÚRing 3ÌØÈ¨¼¶£¨×î µÍÌØÈ¨¼¶£©ÉÏ£¬ËùÒÔVxD¿ÉÒÔÍê³ÉÐí¶àAPI²»ÄÜÍê³ÉµÄ¹¦ÄÜ£¬ÀýÈç¶Ë¿Ú¶Á д¡¢ÎïÀíÄÚ´æ¶Áд¡¢Öжϵ÷Óá¢APIÀ¹½ØµÈ¡£ÕýÒòΪÈç´Ë£¬VxDÔÚWindows ϵͳ±à³ÌÖÐÓй㷺ÓÃ;£¬Æäʵ´ó¼ÒÒ»°ã¶¼ÊÇÅöµ½Windows API²»Äܽâ¾ö»ò ÕßÄÑÒÔ½â¾öµÄÎÊÌâ²Å¿¼ÂDZàдVxD½â¾öÎÊÌâ¡£ ÕâÀï½éÉܵÄÀ¹½ØWindows 95£¯98Îļþ²Ù×÷µÄVxD¿ÉÒÔÓÃÀ´À¹½ØWindows 95 £¯98£¨Windows NT²»Ö§³ÖVxD£©µÄËùÓÐÎļþ²Ù×÷£¬ÄÇôÕâ¸öVxDÓÐʲôÓÃ Í¾ÄØ£¿×î´óµÄÓÃ;¿ÉÄÜÊÇ¡ª¡ª²¡¶¾·À»ðǽ£¬ÓÃÀ´¶ÔÎļþ²Ù×÷½øÐйýÂË£¬¿É ÒÔ½øÐж¯Ì¬²¡¶¾¼ì²âºÍ¶¯Ì¬É±¶¾¡£Õâ¸öVxDʹÓõÄÔÀíºÍĿǰÁ÷ÐеÄCIH ²¡¶¾´«È¾µÄÔÀíÊÇ»ù±¾ÏàͬµÄ¡£ £¨Æäʵ´ó¼ÒÈç¹ûÒªÎÊÎÒΪʲôҪдÕâôһ¸öVxD£¬ÄÇÊÇÒòΪ¡ª¡ªÎÒÊÇVirus °æµÄ°æÖ÷À²£© ¸ÃVxDµÄÎļþÃûÊÇFILEHOOK.VXD£¬Ô´³ÌÐò£¨FILEHOOK.ASM£©ÈçÏ£º ;FILEHOOK.VXD££À¹½ØWindows 95£¯98Îļþ²Ù×÷µÄVxD .386p .XLIST INCLUDE VMM.Inc INCLUDE VWin32.Inc INCLUDE Shell.Inc MASM=1 INCLUDE IFS.Inc INCLUDE IFSMgr.Inc .LIST ;VxDÉùÃ÷ Declare_Virtual_Device FILEHOOK,1,0,VxD_Control,Undefined_Device_ID,,, ;±£»¤Ä£Ê½Êý¾Ý¶Î VxD_DATA_SEG Prev_File_System_Api_Hook dd 0 In_File_System_Api_Hook db 0 Message1 db 'Open file !',0 Caption1 db 'FILEHOOK',0 VxD_DATA_ENDS ;±£»¤Ä£Ê½´úÂë¶Î VxD_CODE_SEG ;ϵͳ¿ØÖƹý³Ì BeginProc VxD_Control Control_Dispatch SYS_DYNAMIC_DEVICE_INIT,VxD_Device_Init Control_Dispatch SYS_DYNAMIC_DEVICE_EXIT,VxD_Device_Exit Control_Dispatch W32_DEVICEIOCONTROL,VxD_IOCTL clc ret EndProc VxD_Control ;IOCTL ¿ØÖÆ£¨É豸I£¯O¿ØÖÆ£©¹ý³Ì BeginProc VxD_IOCTL ;»ñÈ¡DeviceIoControl¿ØÖÆ´úÂë mov ecx,[esi.dwIoControlCode] cmp ecx,1 jz Install_File_System_Api_Hook cmp ecx,2 jz Uninstall_File_System_Api_Hook jmp VxD_IOCTL_Exit ;°²×°ÎļþϵͳAPI ¹³×Ó Install_File_System_Api_Hook: mov eax,OFFSET32 File_System_Api_Hook VxDCall IFSMgr_InstallFileSystemApiHook or eax,eax jz Error_Handler ;±£´æÉÏÒ»¸öÎļþϵͳAPI ¹³×ÓµØÖ· mov Prev_File_System_Api_Hook,eax jmp VxD_IOCTL_Exit ;ÒÆÈ¥ÎļþϵͳAPI ¹³×Ó Uninstall_File_System_Api_Hook: mov eax,OFFSET32 File_System_Api_Hook VxDCall IFSMgr_RemoveFileSystemApiHook cmp eax,0FFFFFFFFH jz Error_Handler jmp VxD_IOCTL_Exit ;IOCTL ¿ØÖƹý³Ì½áÊø VxD_IOCTL_Exit: xor eax,eax clc ret ;´íÎó´¦Àí Error_Handler: mov eax,0FFFFFFFFH stc ret EndProc VxD_IOCTL ;VxD_Device_Exit¹ý³Ì BeginProc VxD_Device_Exit clc ret EndProc VxD_Device_Exit ;ÎļþϵͳAPI ¹³×Ó¹ý³Ì£¨CÓïÑÔµ÷Ó÷½Ê½£© BeginProc File_System_Api_Hook,CCALL ArgVar FSDFnAddr,DWORD ArgVar FunctionNum,DWORD ArgVar Drive,DWORD ArgVar ResourceFlags,DWORD ArgVar CodePage,DWORD ArgVar pir,DWORD EnterProc pushad ;·ÀÖ¹ÖØÈë cmp byte ptr In_File_System_Api_Hook,00h jnz Prev_Hook ;±È½ÏÊÇ´ò¿ªÎļþ²Ù×÷Â𣿠cmp dword ptr FunctionNum,IFSFN_OPEN jnz Prev_Hook ;ÉèÖÃÖØÈë±êÖ¾ inc byte ptr In_File_System_Api_Hook ;È¡µ±Ç°VM¾ä±ú VMMCall Get_Cur_VM_Handle ;ÏÔʾÏûÏ¢¿ò mov eax,MB_ICONASTERISK+MB_OK mov ecx,OFFSET32 Message1 mov edi,OFFSET32 Caption1 mov esi,0 mov edx,0 VxDCall Shell_Message ;È¡ÏûÖØÈë±êÖ¾ dec byte ptr In_File_System_Api_Hook ;תµ½ÉÏÒ»¸öÎļþϵͳAPI ¹³×ÓµØÖ· Prev_Hook: popad LeaveProc mov eax,Prev_File_System_Api_Hook jmp [eax] Return EndProc File_System_Api_Hook VxD_CODE_ENDS ;±£»¤Ä£Ê½³õʼ»¯´úÂë¶Î VxD_ICODE_SEG ;VxD_Device_Init¹ý³Ì BeginProc VxD_Device_Init clc ret EndProc VxD_Device_Init VxD_ICODE_ENDS end ¸ÃVxDÔÚÉ豸¿ØÖƹý³Ì£¨VxD_Control¹ý³Ì£©Öд¦ÀíÁË3¸öϵͳ¿ØÖÆÏûÏ¢£¬ ·Ö±ðÊÇSYS_DYNAMIC_DEVICE_INIT£¨¶¯Ì¬VxD³õʼ»¯£©¡¢ SYS_DYNAMIC_DEVICE_EXIT£¨¶¯Ì¬VxDÍ˳ö£©ºÍW32_DEVICEIOCONTROL£¨Éè ±¸I£¯O¿ØÖÆ£©£¬¶ÔÓ¦µÄÏûÏ¢´¦Àí¹ý³Ì·Ö±ðÊÇVxD_Device_Init¡¢ VxD_Device_ExitºÍVxD_IOCTL¡£ÆäÖÐVxD_Device_Init¹ý³ÌºÍ VxD_Device_Exit¹ý³ÌÖ»Çå³ý½øÎ»±êÖ¾·µ»Ø£¨±íʾ³É¹¦£©£¬VxD_IOCTL¹ý³Ì ÊÇWindows 95£¯98Ó¦ÓóÌÐòÓëVxDͨÐŵĽӿڣ¬Íê³ÉÎļþϵͳAPI¹³×Ó µÄ°²×°ºÍÒÆÈ¥¹¤×÷£¬[esi.dwIOControlCode]ÖÐÊÇÉ豸I£¯O¿ØÖÆ´úÂ룬¸Ã ¿ØÖÆ´úÂëΪ1ʱ°²×°ÎļþϵͳAPI¹³×Ó£¬Îª2Ê±ÒÆÈ¥ÎļþϵͳAPI¹³×Ó¡£ File_System_Api_HookÊÇÎļþϵͳAPI¹³×Ó¹ý³Ì£¬ÕâÀï×÷Ϊһ¸ö¼òµ¥µÄʵ Àý£¬¹³×Ó¹ý³ÌÅжÏÊÇ·ñÊÇ´ò¿ªÎļþ²Ù×÷£¬Èç¹ûÊÇÔòÏÔʾһ¸ö¼òµ¥µÄÏûÏ¢¿ò£¬ È»ºóÌø×ªµ½ÉÏÒ»¸öÎļþ¹³×Ó£¨Ï൱ÓھɵÄÎļþϵͳAPIÈë¿Ú£©¡£Èç¹ûÐèÒª À©³ä¹¦ÄÜ£¬¿ÉÒÔÔڸùý³ÌÖÐÔö¼Ó´úÂë¡£ »ã±àÁ¬½ÓVxDÐèÒªÒ»¸öÄ£¿é¶¨ÒåÎļþºÍÒ»¸öNMAKEÎļþ£¨ÊÖ¹¤»ã±àÁ¬½Óµ± ȻҲ¿ÉÒÔ£©¡£ÕâÁ½¸öÎļþ¶¼¿ÉÒÔÖ±½ÓÓÃDDKÖеÄGENERICʵÀýÖеÄÄ£¿é¶¨ ÒåÎļþºÍNMAKEÎļþÐ޸Ķø³É£¬Ä£¿é¶¨ÒåÎļþ£¨FILEHOOK.DEF£©ÈçÏ£º VXD FILEHOOK DYNAMIC DESCRIPTION 'File System API Hook Program' SEGMENTS _LPTEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE _LTEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE _LDATA CLASS 'LCODE' PRELOAD NONDISCARDABLE _TEXT CLASS 'LCODE' PRELOAD NONDISCARDABLE _DATA CLASS 'LCODE' PRELOAD NONDISCARDABLE CONST CLASS 'LCODE' PRELOAD NONDISCARDABLE _TLS CLASS 'LCODE' PRELOAD NONDISCARDABLE _BSS CLASS 'LCODE' PRELOAD NONDISCARDABLE _LMSGTABLE CLASS 'MCODE' PRELOAD NONDISCARDABLE IOPL _LMSGDATA CLASS 'MCODE' PRELOAD NONDISCARDABLE IOPL _IMSGTABLE CLASS 'MCODE' PRELOAD DISCARDABLE IOPL _IMSGDATA CLASS 'MCODE' PRELOAD DISCARDABLE IOPL _ITEXT CLASS 'ICODE' DISCARDABLE _IDATA CLASS 'ICODE' DISCARDABLE _PTEXT CLASS 'PCODE' NONDISCARDABLE _PMSGTABLE CLASS 'MCODE' NONDISCARDABLE IOPL _PMSGDATA CLASS 'MCODE' NONDISCARDABLE IOPL _PDATA CLASS 'PDATA' NONDISCARDABLE SHARED _STEXT CLASS 'SCODE' RESIDENT _SDATA CLASS 'SCODE' RESIDENT _DBOSTART CLASS 'DBOCODE' PRELOAD NONDISCARDABLE CONFORMING _DBOCODE CLASS 'DBOCODE' PRELOAD NONDISCARDABLE CONFORMING _DBODATA CLASS 'DBOCODE' PRELOAD NONDISCARDABLE CONFORMING _16ICODE CLASS '16ICODE' PRELOAD DISCARDABLE _RCODE CLASS 'RCODE' EXPORTS FILEHOOK_DDB @1 NMAKEÎļþ£¨MAKEFILE£©ÈçÏ£º !ifdef MASTER_MAKE BUILD_BITS=32 BUILD_TYPE=base !INCLUDE $(DDKROOT)\master.mk !endif NAME = filehook # supply the location of a 16-bit linker LINK = # Definitions for the debug level !ifdef DEBUG DDEBUG =-DDEBLEVEL=1 -DDEBUG !else DDEBUG =-DDEBLEVEL=0 !endif # Definitions for MASM 6 Assembler ASM = ml AFLAGS = -coff -DBLD_COFF -DIS_32 -W2 -c -Cx -Zm -DMASM6 $(DDEBUG) ASMENV = ML LFLAGS = /VXD /NOD # MASM 6 only inference rules .asm.obj: set $(ASMENV)=$(AFLAGS) $(ASM) -Fo$*.obj $< all : $(NAME).VXD OBJS = filehook.obj filehook.obj: filehook.asm $(NAME).vxd: $(NAME).def $(OBJS) link @<<$(NAME).lnk $(LFLAGS) /OUT:$(NAME).vxd /MAP:$(NAME).map /DEF:$(NAME).def $(OBJS) << mapsym -s -o $(NAME).sym $(NAME).map clean: -@del *.obj -@del *.vxd -@del *.exp -@del *.lib -@del *.map -@del *.sym ÓÐÁËÕâÁ½¸öÎļþ£¬ÔËÐÐNMAKE¼´¿É»ã±àÁ¬½ÓVxD¡£ [ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-7 at 07:38 ] |
» ²ÂÄãϲ»¶
ÉϺ£µçÁ¦´óѧ²ÄÁÏ·À»¤ÓëвÄÁÏÖØµãʵÑéÊÒÕÐÊÕµ÷¼ÁÑо¿Éú£¨²ÄÁÏ¡¢»¯Ñ§¡¢µç»¯Ñ§£¬»·¾³£©
ÒѾÓÐ4È˻ظ´
²ÄÁÏѧÇóµ÷¼Á
ÒѾÓÐ6È˻ظ´
303Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Ò»Ö¾Ô¸ÎäÀí085500»úеרҵ×Ü·Ö300Çóµ÷¼Á
ÒѾÓÐ7È˻ظ´
¿¼Ñе÷¼Á
ÒѾÓÐ4È˻ظ´
281Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
0805 316Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
085601Çóµ÷¼Á×Ü·Ö293Ó¢Ò»Êý¶þ
ÒѾÓÐ3È˻ظ´
08¹¤Ñ§µ÷¼Á
ÒѾÓÐ17È˻ظ´
340Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
jiangnanhero
ÖÁ×ðľ³æ (ÕýʽдÊÖ)
- Ó¦Öú: 9 (Ó×¶ùÔ°)
- ½ð±Ò: 14926.7
- É¢½ð: 449
- ºì»¨: 5
- Ìû×Ó: 396
- ÔÚÏß: 143.7Сʱ
- ³æºÅ: 27677
- ×¢²á: 2003-10-25
- רҵ: ¹¦ÄÜÓëÖÇÄܸ߷Ö×Ó
2Â¥2006-02-28 20:49:11
3Â¥2006-03-03 12:51:20
sbttmxk
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.45
- ½ð±Ò: 886.8
- Ìû×Ó: 2509
- ÔÚÏß:
- ³æºÅ: 158329
- ×¢²á: 2006-01-06
- ÐÔ±ð: GG

4Â¥2006-03-03 14:42:38
0.5
| hao |
5Â¥2006-03-03 21:27:23













»Ø¸´´ËÂ¥
