⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 softice.h

📁 ICEExt for Driver Studio3.2的sourcecode
💻 H
📖 第 1 页 / 共 5 页
字号:
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_ActivateBPs  (VOID(__stdcall*)(VOID))

#define     OFS_ActivateBPs   0

UCHAR PAT_ActivateBPs[] =                       
{
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x01, // cmp         dw_IsBPActivated,1
      0x74, _XX_,                               // jz          short locret_41BD4
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x01, // cmp         dwNumberOfBPs?,1
      0x74, _XX_,                               // jz          short locret_41BD4
      0x83, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x00, // cmp         dword_C28AC+1,0
      0x74                                      // jz          short loc_41BD5
};

//////////////////////////////////////////////////////////////////////////////
//                           pDeactivateBPs
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_DeactivateBPs  (VOID(__stdcall*)(VOID))

#define     OFS_DeactivateBPs   0

UCHAR PAT_DeactivateBPs[] =                     
{
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x00, // cmp         dwNumberOfBPs?, 0
      0x75, 0x01,                               // jnz         short loc_418EA
      0xC3,                                     // retn
                                                //loc_418EA:
      0x60,                                     // pusha
      0x06,                                     // push        es
      0x66, 0x8E, 0x05                          // mov         es, wNTICE_SS
};

//////////////////////////////////////////////////////////////////////////////
//                          pShowBreakReason
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_ShowBreakReason (VOID(__stdcall*)(VOID))

#define     OFS_ShowBreakReason  0
#define     OFS_BreakReason      2

UCHAR PAT_ShowBreakReason[] =                                     // code     pattern
{
      0x81, 0x3D, _XX_, _XX_, _XX_, _XX_, _XX_, 0x00, 0x01, 0x00, // cmp      dBreakReason, 100xxh
//                ^^^^^^^^^^^^^^^^^^^^^^ - BreakReason
      0x76, _XX_,                                                 // jbe      short loc_30512
      0xF8,                                                       // clc
      0xC3,                                                       // retn
      0xBF                                                        // mov      edi, ...
};

//////////////////////////////////////////////////////////////////////////////
//                          pSetCursorShape
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_SetCursorShape (VOID(__stdcall*)(VOID))

#define     OFS_SetCursorShape  0

UCHAR PAT_SetCursorShape[] =                    
{
      0xA2, _XX_, _XX_, _XX_, _XX_,             // mov         byte_B07E9, al
      0x50,                                     // push        eax
      0xE8, _XX_, _XX_, _XX_, _XX_,             // call        sub_778BA
      0x58,                                     // pop         eax
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x00, // cmp         byte_C28B8, 0
      0x74, 0x01,                               // jz          short loc_38C38
      0xC3                                      // retn
                                                //loc_38C38:
};

//////////////////////////////////////////////////////////////////////////////
//                           pCallVideoDriver
//                          pCallVideoDriver_1x
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_CallVideoDriver_1x (VOID(__stdcall*)(VOID))
#define     TYPE_CallVideoDriver    (VOID(__stdcall*)(VOID))

#define     OFS_CallVideoDriver_1x  0
#define     OFS_CallVideoDriver    18

UCHAR PAT_CallVideoDriver_1x[] =                
{
      0x60,                                     // pusha
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x01, // cmp         VidDrv_1_flag, 1
      0x75, _XX_,                               // jnz         short loc_376AC
      0xE8, _XX_, _XX_, _XX_, _XX_,             // call        sub_36536
      0xB0, 0x01,                               // mov         al, 1
      0xE8, _XX_, _XX_, _XX_, _XX_,             // call        pCallVideoDriver
      0xC6, 0x05, _XX_, _XX_, _XX_, _XX_, 0x01, // mov         byte_AFD2F, 1
                                                //loc_376AC:
      0xE8, _XX_, _XX_, _XX_, _XX_,             // call        pUpdateScreen
      0x61,                                     // popa
      0xC3                                      // retn
};

//////////////////////////////////////////////////////////////////////////////
//                          pSaveClientRegisters
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_SaveClientRegisters (VOID(__stdcall*)(VOID))

#define     OFS_SaveClientRegisters  0

UCHAR PAT_SaveClientRegisters[] =                     
{
      0x50,                                           // push        eax
      0x55,                                           // push        ebp
      0x8B, 0xEC,                                     // mov         ebp, esp
      0x1E,                                           // push        ds
      0x66, 0x2E, 0x8E, 0x1D, _XX_, _XX_, _XX_, _XX_, // db 66h
                                                      // mov         ds, cs:wNTICE_SS
      0xA3                                            // mov         dClient_EAX, eax
};

//////////////////////////////////////////////////////////////////////////////
//                                pSayESI
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_SayESI (VOID(__stdcall*)(VOID))

#define     OFS_SayESI        0
#define     OFS_NormCharColor 3

UCHAR PAT_SayESI[] =                                  
{
      0x53,                                           // push        ebx
      0x8A, 0x3D, _XX_, _XX_, _XX_, _XX_,             // mov         bh, bNormCharColor
      0xE8, _XX_, _XX_, _XX_, _XX_,                   // call        pSayESIcolor
      0x5B,                                           // pop         ebx
      0xC3                                            // retn 
};

//////////////////////////////////////////////////////////////////////////////
//                              pSayESIpause
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_SayESIpause (VOID(__stdcall*)(VOID))

#define     OFS_SayESIpause 0

UCHAR PAT_SayESIpause[] =                             
{
      0x83, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x00,       // cmp         dword_125184, 0
      0x74, _XX_,                                     // jz          short loc_38085
      0x50,                                           // push        eax
      0x56,                                           // push        esi
      0x57,                                           // push        edi
      0xFC,                                           // cld
      0x8B, 0x3D, _XX_, _XX_, _XX_, _XX_,             // mov         edi, dword_125188
      0xB0, 0x20,                                     // mov         al, ' '
      0xAA,                                           // stosb 
      0xAA                                            // stosb
};

//////////////////////////////////////////////////////////////////////////////
//                          pGetCurrentIRQLLevel
//////////////////////////////////////////////////////////////////////////////
#define     TYPE_GetCurrentIRQLLevel (ULONG(__stdcall*)(VOID))

#define     OFS_GetCurrentIRQLLevel 0

UCHAR PAT_GetCurrentIRQLLevel[] =                     
{
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x00,       // cmp         byte_AE990, 0
      0x74, 0x10,                                     // jz          short loc1
      0xA1, _XX_, _XX_, _XX_, _XX_,                   // mov         eax, dword_AEB07
      0xC1, 0xE8, 0x04,                               // shr         eax, 4
      0x0F, 0xB6, 0x80, _XX_, _XX_, _XX_, _XX_,       // movzx       eax, byte ptr ds:unk_106FC[eax]
      0xC3,                                           // retn
// loc1:
      0x6A, 0xFF                                      // push        0FFFFFFFFh
};

//////////////////////////////////////////////////////////////////////////////
//                              dwTraceFlag
//////////////////////////////////////////////////////////////////////////////
#define       OFS_TraceFlag   2

UCHAR PAT_TraceFlag[] =                         
{
                                                // somewhere inside pINT_01:

      0xC6, 0x05, _XX_, _XX_, _XX_, _XX_, 0x00, // mov         dwTraceFlag, 0
      0x58,                                     // pop         eax
      0x1F,                                     // pop         ds
      0xE8, _XX_, _XX_, _XX_, _XX_,             // call        pNTIceMain
      0xCF                                      // iret
};

//////////////////////////////////////////////////////////////////////////////
//                               ClientRegs
//////////////////////////////////////////////////////////////////////////////
#define       OFS_ClientRegs   6

UCHAR PAT_ClientRegs[] =                        
{
      0x50,                                     // push        eax
      0x53,                                     // push        ebx
      0x51,                                     // push        ecx
      0x52,                                     // push        edx
      0x56,                                     // push        esi
      0xA1                                      // mov         eax, dClient_EAX
};

//////////////////////////////////////////////////////////////////////////////
//                                VmemPtr
//////////////////////////////////////////////////////////////////////////////
#define       OFS_VmemPtr   6

UCHAR PAT_VmemPtr[] =                           
{
      0xD1, 0xE3,                               // shl         ebx, 1
      0x03, 0xF3,                               // add         esi, ebx
      0x03, 0x35                                // add         esi, VmemPtr
};

//////////////////////////////////////////////////////////////////////////////
//                                 Width
//////////////////////////////////////////////////////////////////////////////
#define       OFS_Width     3

UCHAR PAT_Width[] =                             
{
      0x0F, 0xAF, 0x05, _XX_, _XX_, _XX_, _XX_, // imul        eax, [Width]
      0x03, 0xC0,                               // add         eax, eax
      0x03, 0xF8                                // add         edi, eax
};

//////////////////////////////////////////////////////////////////////////////
//                                 Height
//////////////////////////////////////////////////////////////////////////////
#define       OFS_Height    3

UCHAR PAT_Height[] =                            
{
      0x0F, 0xB6, 0x0D, _XX_, _XX_, _XX_, _XX_, // movzx       eax,b,[Height]
      0x0F, 0xB6, 0xC6,                         // movzx       eax,dh
      0x2B, 0xC8                                // sub         ecx,eax
};

//////////////////////////////////////////////////////////////////////////////
//                             dw_CodeFlags
//////////////////////////////////////////////////////////////////////////////
#define       OFS_CodeFlags   2

UCHAR PAT_CodeFlags[] =                         
{
      0x80, 0x3D, _XX_, _XX_, _XX_, _XX_, 0x03, // cmp         dw_CodeFlags, 3
      0x74, _XX_,                               // jz          short loc_8EB03
      0x68, _XX_, _XX_, _XX_, _XX_,             // push        offset aPagingIsOnlySu
      0xEB                                      // jmp         short  ...
};

//////////////////////////////////////////////////////////////////////////////
//                             dCurrentContext
//                              dPopupContext
//////////////////////////////////////////////////////////////////////////////
#define       OFS_CurrentContext   2
#define       OFS_PopupContext     8

UCHAR PAT_CurrentContext[] =                    
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -