Windows NT¨t²Î¤¶²Ð

 

ùþ«e¨¥

³Ìªñ¹êÅç«Ç¾Çªø¦b³ø§i¤¤¡A¤¶²Ð¤F³\¦hLinux¨t²Îªº¹B§@¤è¦¡¡C¨ä¤¤¥]¬ALinux¥H80¤¤Â_¨ú±o¨t²ÎªA°È¡C¦b³o¦¸°Q½×¤§«á¡A§Ú¶}©l·Q¨ìNT¨t²Î¤¤¡A³z¹L2E¤¤Â_¨Ó¹F¦¨³\¦h¨t²ÎªA°Èªº©I¥s¡C

 

¦b°O¾ÐÅéºÞ²z¤è¦¡¡ANT»PWindows 9X¦³¤@¨Ç¤£¦PÂI¡CÁ|¨Ò¨Ó»¡¡A¦bUser Modeªº°O¾ÐÅé¤j¤p¡A±qWindows 9Xªº3GBÁY¤p¬°NT¤¤ªº2GB¡C¥H©¹§Ú­Ì¦bWindows 9X¤¤±`¨£ªºKernel32.dll¡AUser32.dll..µ¥©ñ¦b2GB¡X3GB³o¶ô¦@¥Î°O¾ÐÅéªÅ¶¡ªºDLL¡A¦bNT¤¤³£©ñ¨ì2GB¥H¤U(¨C­ÓProcess¨p¦³ªºªÅ¶¡¤¤)¡C¦p¹Ï(¤@)¡A¦Ó¦bInside Windows NT Second Edition´¿´£¨ìWindows NT4.0 Service Pack3¤¤´£¨Ñªº¥\¯à¡A¥iÅý¨Ï¥ÎªÌÀ³¥Îµ{¦¡¨Ï¥Î3GBªºµêÀÀ°O¾ÐÅéªÅ¶¡¡A¦Ó³Ñ¤Uªº1GBµêÀÀ°O¾ÐÅéªÅ¶¡«h«O¯dµ¹§@·~¨t²Î¡C

 


 


¹Ï(¤@)

ùþNTªº2E¤¤Â_

¦bNT¤¤±`¨£¨ì¨Ï¥Î2E¤¤Â_ªºµ{¦¡¥]¬AGDI32.DLL¡B User32.DLL¡BNTDLL.DLL(¦bNTDLL.DLL¤¤¥HNt¬°­ºªº¨ç¦¡¦WºÙ¬°§Ú­Ì¥D­n°Q½×ªº¹ï¶H)¡K¡A2E¤¤Â_¨Ï¥Îªº¨Ò¤l¦p¤U:

 

  NTDLL.DLL¤¤ªºNtAlertThread¨ç¦¡

   B8 07 00 00 00     mov        eax¡A7

   8D 54 24 04        lea         edx¡Adword ptr [esp+4]

   CD 2E            int         2Eh

   C2 04 00          ret          4

 


¨ä¤¤Eax¥Nªí¤F©Ò¨Ï¥Îªº¨ç¦¡½s¸¹¡AEdx«h¦s¤J¤F©I¥sNtAlertThread ®É©Ò¨Ï¥Î¤Þ¼Æªº°O¾ÐÅé¦ì§}<°Ñ¾\¹Ï(¤G)>¡A¥H«K2E¤¤Â_ªº³B²zªÌ¥i¥H³z¹LEax±oª¾©Ò©I¥sªº¨t²ÎªA°È¬°¦ó¡A¦Ó³o­Ó¨t²ÎªA°È©Ò»Ý¥Î¨ìªº¤Þ¼Æ«h³z¹LEdx¨Ó¨ú±o¡C

¹Ï(¤G)

 

­º¥ý¡A¦b¤U¹Ï(¤T)¤¤§Ú±N¥ý¥H¤@­Ó¹ê»Úªº¨Ò¤l¨Óªí¹F¾ã­Ó©I¥sªº¬yµ{

 

<Step 1>¥H¦p¤Uªºµ{¦¡½X

void main()

{

           Beep(300¡A2000);

}

 

¨ç¦¡Beep()¬O¥ÑKernel32.dll©Ò´£¨Ñªº¡C

 

<Step 2>§Ú­Ì¥i¥Hµo²{¦bBeep()¨ç¦¡°õ¦æ«á·|¶i¤J¨ìkernel32.dll¤¤Beep()¨ç¦¡©Ò¦bªº°O¾ÐÅé¦ì§}(¥i³z¹L¥»µ{¦¡ªºImport Table±oª¾Beep()¨ç¦¡¦b°O¾ÐÅ餤ªº¦ì§})¡C

 

<Step 3>¦bBeep()¨ç¦¡ªº°O¾ÐÅéªÅ¶¡¤¤¡A§Ú­Ìµo²{¥¦©I¥s¤F³\¦hNTDLL.DLL©Ò´£¨Ñªº¨ç¦¡¡C

       

<Step 4>¦C¥X¤FBeep()©Ò©I¥sNTDLL.DLL´£¨Ñªº¨ç¦¡¡C

 

<Step 5>¥HNTDLL.DLL¤¤ªºNtCreateFile()¨ç¦¡¬°¨Ò¡A¥ÑEax±oª¾¥¦­n¨D½s¸¹¬°17hªº¨t²ÎªA°È¡A¥ÑRet 2Ch±oª¾NtCreateFile()ªº¤Þ¼Æ¤j¤p¬°44 bytes¡C

 

<Step 6>¦b2E¤¤Â_IJµo«á¡Aµ{¦¡¥ÑUser ModeÂà¨ì¦bKernel Mode ¤¤NTOSKRNL.EXE©Ò´£¨ÑªºKiReleaseSpinLock¨ç¦¡¡A¦¹¨ç¦¡ªº¤£¦P¬q¸¨¤À§O¬°¨ä¥¦¤¤Â_©Ò¹ïÀ³ªº³B²zªÌ¡A¦p

 

Int 2A ¬° KiReleaseSpinLock+°¾²¾¦ì§}0D86h

Int 2C ¬° KiReleaseSpinLock+°¾²¾¦ì§}0F80h

Int 2E ¬° KiReleaseSpinLock+°¾²¾¦ì§}0900h

 

¦b¥»¤åªºµy«á¡A¤]±N¥H¹ê¨ÒÃÒ©úWinICEÄdºI¤FWindows NT³¡¥÷ªº¤¤Â_¡A¨ä¤¤¤]¥]¬A¤F2E¤¤Â_¡C

 

                ¹Ï(¥|)¡A¥i¥H¬Ý¨ìNTDLL.DLLªº¨ç¦¡NtCreateFile()©I¥s2E¤¤Â_¸g¥ÑKiReleaseSpinLock(NTOSKRNL.EXE)¡A¤À§O©I¥s¤FKernel Mode¤¤

0008:80167000   NtCreateFile

0008:80161EC0  IoCreateFile

0008:8018A79C  ObOpenObjectByName ¡K¡K¡K¡K¡K..µ¥¨ç¦¡

¥Ñ¦¹¥i¥H¤F¸Ñ¡A KiReleaseSpinLock(NTOSKRNL.EXE)¨­¬°Âà¹BªÌªº¨¤¦â¡A¥¦§â§Ú­Ì©Ò­n¨Dªº¨t²ÎªA°ÈÂಾ¨ì¹ïÀ³³B²z¨ç¦¡¡C


 


¹Ï(¤T)

 

          


 


¹Ï(¥|)

 

                     ¤£¹L¡A¨Ã¤£¬ONTDLL.DLL¤¤¡A¨C­Ó¦WºÙ¥HNt¬°­ºªº¨ç¦¡³£·|³z¹L2E¤¤Â_¶i¤JKernel Mode¡A¦p

 

NtCurrentTeb

  77F69284: 64 A1 18 00 00 00     mov      eax¡Afs:[00000018]

  77F6928A: C3                 ret

´N¥u²³æªº§â­È¶Ç¦^µ¹©I¥sªÌ¡C

 

           ¦]¦¹¡A¬O§_¨Ï¥Î2E¤¤Â_»Ý¨Ì¨ç¦¡¹ï¨t²ÎªA°È»Ý¨D¦Ó©w¡C¦b¹Ï(¤­)<Step 1>¤¤¡A§Ú§â¦bNTDLL.DLL¤¤¦WºÙ¥HNt¬°­ºªº¨ç¦¡©Ò¹ïÀ³ªºEax­È¾ã²z¥X¨Ó(½Ð°Ñ¾\ÀH¥óªþ¤W¡¨NTDLLªº2E¤¤Â_¸ê®Æ¡¨)¡A¥ÑRetªº­È§Ú­Ì¥i¥Hª¾¹D¤Þ¼Æ¤j¤p¡C¦b¹Ï(¤­)<Step 2>«h¨q¥X³¡¥÷¦bNTDLL.DLL¤¤¨Ï¥Î2E¤¤Â_ªº±¡§Î¡C¹Ï(¤­)<Step 3>¡B<Step 4>¬OUser32.DLL¨Ï¥Î2E¤¤Â_ªº±¡§Î¡A§Ú¤À§O¥HGetMessageA¡A GetDC¬°¨Ò(¦bInside Windows NT Second Edition ¡A101­¶ Figure3-8¦³¤@±i¤£¿ùªº¬[ºc¹Ï¡A©Î°Ñ¾\§Ú©Òµeªº¹Ï(¤»)²¹Ï)¡C

 

        ¦³¤@¥ó¨Æ±¡º¡¦³½ìªº¡A¦bNT Kernel Modeªº¨ç¦¡³º¤]¦³³¡¥÷³z¹L2E¤¤Â_¨Ó¨ú±o¨t²ÎªA°È¡C¬JµM³£¦bKernel Mode¬°¦ó­n¨Ï¥Î¸Ó¨ç¦¡¡A¤£ª½±µ©I¥s¦bKernel Modeªº¨ç¦¡¦ì§}¡A«oIJµo2E¤¤Â_¨Ó¨ú±o©Ò­nªºªA°È¡A³o¼Ë¤£¬O·|¦hªá¤@¬q®É¶¡¶Ü?(¤£¹L¥H²{¦bCPU®Ä¯à¡A¤]³\·Pı¤£¥X¨Ó¡K.^_^)¡C

 


¹Ï(¤­)


 


¹Ï(¤»)

       

               ¦b¦¹§ÚÁ|¤@­ÓNTOSKRNL.EXE¤¤¨Ï¥Î¨ì2E¤¤Â_ªº¨Ò¤l¡A¥Ñ¹Ï<¤C><Step 1>¥i¥H¬Ý¨ì¦bNTOSKRNL.EXE¤¤ªºZwAllocateVirtualMemory¨ç¦¡³z¹L2E¤¤Â_¨Ó¨ú±oªA°È¡C

 

MOV EAX¡A0A

LEA EDX¡A[ESP+04]

INT 2E

ret 18

 

§Ú·QŪªÌ­Ì¤@©w·|¦n©_¦P¼Ë¬O2E¤¤Â_¨º¦bNTDLL.DLL¤¤¨Ï¥ÎEax¬°0Ahªº¨ç¦¡¦WºÙ¬O¤°»ò©O?

 

        ¤ñ¹ï¤F¤@¤U¦bNTDLL.DLL ¤¤Eax¬°0Ahªº¨ç¦¡¬ONtAllocateVirtualMemory

          

  77F57624: B8 0A 00 00 00     mov        eax¡A0Ah

  77F57629: 8D 54 24 04        lea         edx¡Adword ptr [esp+4]

  77F5762D: CD 2E            int         2Eh

  77F5762F: C2 18 00          ret         18h

 

 

         ¦ÓZwAllocateVirtualMemory(NTOSKRNL)¤ÎNtAllocateVirtualMemory(NTDLL)³o¨â­Ó¤À§O¦bKernel Mode¤ÎUser Mode¨Ï¥Î2E¤¤Â_¨ú±oªA°Èªº¨ç¦¡¡A³Ì«á³£·|¸g¥ÑKiReleaseSpinLock(NTOSKRNL)¨ì¨ç¦¡NtAllocateVirtualMemory(NTOSKRNL)ªº°O¾ÐÅéªÅ¶¡¡C

 

        ZwAllocateVirtualMemory(NTOSKRNL)¦pªGª½±µ©I¥sNtAllocateVirtualMemory(NTOSKRNL)¡A¥Ñ©ó¨âªÌ³£¦bKernel Mode¡A¨Ã¤£·|³y¦¨¹H¤Ï¯SÅvµ¥¯Åªº±¡ªpµo¥Í¡C¦ý¥¦«o¤£³o¼Ë°µ¦Ó¤S¥hIJµo2E¤¤Â_¡A¶¤F¤@°é¤~¨ìNtAllocateVirtualMemory(NTOSKRNL)ªº°O¾ÐÅé¦ì§}¡A¨ä¥¦¦³ÃöNTDLL.DLL»PNTOSKRNL.EXE ¦bInt 2E³¡¥÷ªº¸ê®Æ½Ð°Ñ¾\ªþ¤WªºÀɮס¨NTDLLªº2E¤¤Â_¸ê®Æ¡¨¡C

 

         ³z¹L³o¨Ç»¡©ú¥i¥H²M·¡ªº¬Ý¨ìNT¤¤2E¤¤Â_ªº­«­n©Ê¡A¤£½×¬O¤W¼hªºAP­n³z¹L2E¤¤Â_¨ú±oKernelªA°È¡A³s¦bKernelªº¨ç¦¡¦³¨Ç¤]·|¸g¥Ñ2E¤¤Â_¨Ó¨ú±oªA°È¡C


 


¹Ï(¤C)

 

           ¨ä¹êNTOSKRNL.EXE(Kernel Mode) ¤¤Zw¬°­º¨ç¦¡¡A¦pZwFreeVirtualMemory¡A·|»PNTDLL.DLL(User Mode)¤¤ Nt¬°­ºªº¨ç¦¡¡A¦pNtFreeVirtualMemory³£³z¹L¦p¤Uªºµ{¦¡½X

 B83A000000            MOV    EAX¡A0000003A

 8D542404              LEA     EDX¡A[ESP+04]

 CD2E                  INT     2E

 C21000                RETN    0010

¸g¥ÑKiReleaseSpinLock(NTOSKRNL.EXE)¡A¦A°õ¦æNtFreeVirtualMemory(NTOSKRNL.EXE)¨Ó§¹¦¨¾ã­Ó°Ê§@¡A¦p¤U¹Ï(¤K)¡C

 

        ¬Û«HŪªÌ­Ì¬Ý¨ì³o¨à¡A¤ß¤¤ªººÃ´b¤´µM¦s¦b§a!¬°¦ó¦bKernel ModeªºZwFreeVirtualMemory(NTOSKRNL.EXE)¤£ª½±µ¥h©I¥sNtFreeVirtualMemory(NTOSKRNL.EXE)«o³z¹L2E¤¤Â_¨Ó¹F¦¨©O?¦bInside Windows NT Second Edition ²Ä¤G³¹ ¤¤¦³¤@­ÓNT¨ç¦¡¦WºÙªºªí¡A©Î³\¥i¥H¹ï¸ÑÄÀ³o°ÝÃD¦³¤@ÂIÀ°§U¡A¦pZw¬°­ºªº¨ç¦¡¦WºÙ»¡©ú¬°:¡¨Mirror entry point for functions beginning with Nt that assume the previous caller was in kernel mode¡¨¡Aµ§ªÌ¥Î¯}¯}ªº­^¤åµ{«×¸ò¦U¦ì»¡©ú¤@¤U¡AZw¬°­ºªº¨ç¦¡¬ONt¬°­º¨ç¦¡¹ïÀ³ªº¤@­Ó¶i¤JÂI(§Y©I¥sZw¡K.«á·|¶i¤JNt¡K.)¥B°²³]¥¦ªº©I¥sªÌ¦bKernel Mode¡A¤]´N¬O¦pªG¦bKernel Mode ¨Ï¥ÎZw¬°­ºªº¨ç¦¡¡A¦b°õ¦æªº¹Lµ{¤¤·|¥æµ¹¦bKernel Mode¸Ì Nt¬°­ºªº¨ç¦¡¨Ó°õ¦æ¡A¦Ó¦bInside Windows NT Second Edition¤¤¹ïNt¬°­ºªº¨ç¦¡»¡©ú¬°¡¨Windows NT system services (most of which are exported as Win32 functions)¡¨¡A³o¥y¸ÜÀ³¸Ó¬O»¡Nt¬°­ºªº¨ç¦¡¬°NT´£¨Ñªº¨t²ÎªA°È¡A¤j³¡¥÷¤]´£¨Ñ¬°Win32ªº¨ç¦¡¡A³z¹L³o¬q¸Ü©Î³\¤ñ¸û®e©ö¤F¸ÑNtFreeVirtualMemory(NTDLL.DLL)¦bUser Mode°õ¦æ«á·|¶i¤JKernel ModeªºNtFreeVirtualMemory(NTOSKRNL.EXE)¤F¡C

 

 

 

 

 


¹Ï(¤K)

 


ùþPE®æ¦¡ªºNT Driver

 

                      Windows NT »P Windows 9XªºDriver¦bÀɮ׮榡¤W¬O¤£¬Û¦Pªº¡AWindows NTªºDriver»PWin 32À³¥Îµ{¦¡ªº®æ¦¡¦P¬°PE®æ¦¡¡C¦b¹Ï(¤E)¡A§Ú¥ÎUltraEdit¬ÝTCPIP.SYSªºÀÉÀY¸ê®Æ¡A©úÅ㪺¥i¥H±oª¾NT Driver¨ã¦³PE®æ¦¡ªºÀÉÀY¡C¦bµy«á§Ú¤]±N°w¹ïNTªºDriver¦b°O¾ÐÅ骺¹B§@°µ¤@­Ó²³æªº»¡©ú¡C

 


¹Ï(¤E)

 


        ¦b¹Ï(¤Q)<Step 1>¤¤¡A§Ú¥HNT DDK¤¤\SRC\GENERAL\SIMPLE©Òªþªºµ{¦¡½X

 

status = IoCreateDevice(

                      DriverObject¡A

                      0¡A                    

                      &uniNtNameString¡A

                      FILE_DEVICE_UNKNOWN¡A

                      0¡A                    

                      FALSE¡A                

                      &deviceObject

                      );

¬°¨Ò¡C<Step 2>¬°¸g¹L½sĶ«áªºµ²ªG¡C<Step 3>¬°µ{¦¡½X©ñ¨ì°O¾ÐÅé«áªºµ²ªG¡A±q0008:F99CD2EF  CALL    DWORD PTR [F99CD204]

³o¦æµ{¦¡½X¡A¥i¥H±oª¾IoCreateDevice¨ç¦¡ªº°O¾ÐÅé¦ì§}¬ö¿ý¦bImport Table©ÒÄݪº°O¾ÐÅé¦ì§}F99CD204¡C¦b<Step 4>¤¤¡A§Ú­Ì¨ú±o¤F0008:F99CD204³o­Ó°O¾ÐÅé¦ì§}ªº¸ê®Æ¬°80161B08¡A³o­Ó¦ì§}¥¿¬O¦bNTOSKRNL¤¤IoCreateDevice¨ç¦¡©Ò¦bªº°O¾ÐÅé¦ì§}¡C


¹Ï(¤Q)

 


        ¨ä¹ê¦b¼g³o½g¤å³¹ªº¹Lµ{¤¤¡A¹J¨ì¤F¤@¨Çº¡¦³½ìªº¨Æ±¡¡C¦b¹Ï(¤Q¤@)<Step 1>¨ç¦¡IoCompleteRequest( Irp¡A IO_NO_INCREMENT )¡A¦b§Ú½sͦ¨Driver«á³ºµM«ü¨ì°O¾ÐÅ骺¥t¤@­Ó¨ç¦¡IofCompleteRequest¥h¤F¡C­è¶}©l¦³ÂIÅå³Y¥H¬°¬O¦Û¤v§Ë¿ù¤F¡A«á¨Ó¬Ý¨ì¦bNTDDK.H¤¤¦³<Step 2>³o¼Ëªº¸ê®Æ

#define IoCompleteRequest(a¡Ab) \

        IofCompleteRequest(a¡Ab)

 

·í³õ«éµM¤j®©¡A¤£¹L¬°¦ó­n¤j¶O¶g³¹ªº§âIoCompleteRequest´«¦¨IofCompleteRequest«o¤£¥HIofCompleteRequest¨Ó¼gµ{¦¡¡C¤£¹L¤Ï¥¿³o¬O¦b½sĶ®É©Òªáªº®É¶¡¡A¨Ã¤£·|¼vÅT¨ì°õ¦æªº®ÄªG¡C

 

 


¹Ï(¤Q¤@)

 


           °£¤F¦b¹Ï(¤Q¤@)©Ò´£¨ìªº±¡§Î¤§¥~¡A§Ú¤]·Q¨ì´¿©M¤@­ÓªB¤Í°Q½×¹Lªº¨ç¦¡ExAllocatePool¡C¦p¹Ï(¤Q¤G)<Step 1>ªºµ{¦¡½X

ExAllocatePool(PagedPoolCacheAligned¡A259)¡A

¦b¸g¹L½sĶ«á·|³Q´«¦¨¨ã¦³¤T­Ó¤Þ¼Æªº

ExAllocatePoolWithTag(a¡Ab¡A' kdD');

½sĶ«áªºµ{¦¡½X¦p¤U

 

6844646B20     PUSH    206B6444

6803010000     PUSH    00000103

6A05           PUSH    +05

FF1510020100  CALL DWORD PTR [¦bImport Table¬ö¿ýExAllocatePoolWithTagªº¦ì§}]

 

§Ú­Ì¤]¥i¥H¦b¹Ï(¤Q¤G)<Step 2>¤¤¡Aµo²{³o¨Ç¦³½ìªº²{¶H¡A­ì¥»¥H¬°ªº¨ç¦¡¦WºÙ¡A©Î¬O¤Þ¼Æªº­Ó¼Æ¦b¸g¹L½sĶªº¹Lµ{¤¤¡A¥i¯à·|¦]¬°DDK¹ï¬Y¨Ç¨ç¦¡ªº³B²z(¥[¤u?)¤Wªº¤£¦P¦Ó¦³¤@¨Çº¡¦nª±ªºµ²ªG¡C¦Ñ¹ê»¡¥H«e­è¹J¨ì³o¼Ëªºµ²ªG®ÉÁÙ·|¥H¬°¬O¦Û¤vªºµ{¦¡¦³°ÝÃD¡A«á¨Ó¬Ý¤F¤@¤U*.hªºÀɮפ~¤ñ¸ûª¾¹D­ì¦]¡C


¹Ï(¤Q¤G)

 


ùþWinICE©ÒÄdºIªº¤¤Â_

 

        ¦b¹Ï(¤Q¤T)<Step 1>¤¤¡A¦b¦³WinICEªº±¡ªp¤U³z¹LIDT BaseAddress¨ú±o¥Ø«e¤¤Â_ªí©Ò¦b°O¾ÐÅé¦ì§}¡A¥Ñ¸Ó¦ì§}§Ú­Ì±Àºâ¥X2E¤¤Â_¹h´y­z¾¹©Ò¦b°O¾ÐÅé¦ì§}¬°

80462471 (2E¤¤Â_¹h´y­z¾¹­È¬°71 24 08 00 00 EE 46 80)

¦Ó¦³Ãö¹h´y­z¾¹»¡©ú¦p¤U

0--15 bit => Offset 0--15

16-31 bit =>Selector

32-36 bit=>Dword count

37-39 bit=>0

40-43 bit=>Type

44   bit=> S = 0

45-46 bit=>DPL

47   bit=>P

48-63 bit=>Offset 16-31

 

¦]¦¹¦b<Step 2>¤¤¡A±oª¾2E¤¤Â_¦ì§}¬°0008:80462471¡A¦Ó¦¹°O¾ÐÅéªÅ¶¡³º¬O¦bNTICE.SYS¤§¤¤¡A«©¡K.¬°¦ó¸õ¨ìWinICEªºªÅ¶¡¥h¤F?

 

¦b<Step 3>¤¤¡A¥HWinICEªºidt«ü¥O¨ú±o2E¤¤Â_©Ò¦b¦ì§}¬°0008:8013CBC0 ³o¥¿¬OKiReleaseSpinLock (NTOSKRNL)©Ò¦bªÅ¶¡¡C¦]¦¹¡A§Ú²q´úWinICE§â2E¤¤Â_µ¹ÄdºI¨ìICEªº³B²z¨ç¦¡¥h¤F¡C·íµMÅo¡A¦pªG¦bNT¤¤¨C­ÓIJµoªº2E¤¤Â_³£¯à³z¹L§Ú­Ìªº¸Ü¡A¥i¥H°µªº¤u§@´N¦h¤F¡A¥i¥H¦b¨º¸Ì¹LÂo³\¦h¨t²ÎªA°È¡A¬Æ¦Ü¥i¥HÄdºI­n³z¹L2E¤¤Â_¨Ó¨Ï¥Î¨t²ÎªA°Èªºµ{¦¡¡C


¹Ï(¤Q¤T)

 

 


                ¤£¹L¡A¦pªG¥u¥H³o¼Ëªº¸ê®Æ¡A§Ú´N»¡ICE§â2E¤¤Â_ÄdºI¤F¡A¦ü¥GÁÙ¦³¨Ç¥ß³õ¤£¨¬¡C¦]¦¹§Ú§ï¤F¤@­ÓNT DDK ©Òªþªº½d¨Ò¡A³z¹L³o­ÓDriver¦b¨S¦³WinICEªº±¡ªp¤U¡A§â·í®É¤¤Â_ªíªº¸ê®Æ¦s¦¨¤@­ÓÀɮסA¨Ó¥[¥HÅçÃÒ¡C¦p¹Ï(¤Q¥|)(³o­ÓDriverªºSource Code¡A¤Î»¡©úÀÉÀH½Z¥óªþ¤W)¡A·Q¥²ÅªªÌ¤]µo²{µe­±¤Wªº¸ê®Æ¨Ã¤£¬O¤å¦rÀÉ¡A¦]¬°§Ú¤£¬O«Ü²M·¡¦p¦ó¦s¦¨¤å¦rÀÉ¡A¸Õ¤F¤@¨Ç¤è¦¡¤´¤£¦¨¥\¡A©Ò¥H´N¥H³o¤è¦¡§e²{¤F¡C

       

                §Ú³z¹LSIDT«ü¥O±o¨ì¤¤Â_ªíªº°O¾ÐÅé¦ì§}¡A¨Ã§â¦³WINICE»P¨SWINICE®Éªº¤¤Â_ªí¤ñ¸û¡A±oª¾

¦b¨S¦³¸ü¤JWinICE®É¥H¤U¤¤Â_©Ò¦b°O¾ÐÅé¦ì§}¬°

Int 2d   °O¾ÐÅé¦ì§}:0008:8013ddfc

Int 2e   °O¾ÐÅé¦ì§}:0008:8013cbc0

Int 31   °O¾ÐÅé¦ì§}: 0008:806b8044

Int 33   °O¾ÐÅé¦ì§}: 0008:80645dc4

Int 34   °O¾ÐÅé¦ì§}: 0008:806b9044

Int 37   °O¾ÐÅé¦ì§}: 0008:8013c336

¸ü¤JWinICE«á¥H¤U¤¤Â_©Ò¦b°O¾ÐÅé¦ì§}¬°

Int 2d   °O¾ÐÅé¦ì§}: 0008:8053c462

Int 2e   °O¾ÐÅé¦ì§}: 0008:8053c471

Int 31   °O¾ÐÅé¦ì§}: 0008:8053c480

Int 33   °O¾ÐÅé¦ì§}: 0008:8053c48f

Int 34   °O¾ÐÅé¦ì§}: 0008:8053c49e

Int 37   °O¾ÐÅé¦ì§}: 0008:8053c4bc

 

¨ä¥¦¸ê®Æ§Ú§â¥¦­Ì¾ã²z¦n¤F¡A©ñ¦b©ÒªþªºÀɮפ¤¡C

 


¹Ï(¤Q¥|)

ùþ°£¤F2E¤¤Â_

                NTDLL.DLL¤¤¨ä¹êÁÙ¥]¬A¤F2B¤¤Â_¡B2C¤¤Â_

¦p:

        NtSetHighWaitLowThread

           77F57F7C: CD 2B              int         2Bh

     77F57F7E: C3