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

📄 vxdn.inc

📁 Cracker终结者——提供最优秀的软件保护技术
💻 INC
📖 第 1 页 / 共 2 页
字号:
;////////////////////////////////////////////////////////////
;// vxdn.inc
;//
;// VxD definitions for NASM
;//
;// Collective effort of fOSSiL and The Owl =)
;//
;// 06-Aug-1999	fOSSiL		Initial version
;// 16-Jan-2000 The Owl		bunch of structs and equates
;// 16-Jan-2000 fOSSiL		Separated Auto-generated stuff from hand-made, better MASM-compat
;// 18-Jan-2000 The Owl		modified DDB builder macro

%ifndef INCLUDED_VXDN_INC
%define INCLUDED_VXDN_INC

DDK_VERSION		EQU 0x0400
UNDEFINED_DEVICE_ID	EQU 0x0000
UNDEFINED_INIT_ORDER	EQU 0x80000000

SYS_CRITICAL_INIT	EQU 0000H
DEVICE_INIT		EQU 0001H
INIT_COMPLETE		EQU 0002H
SYS_VM_INIT		EQU 0003H
SYS_VM_TERMINATE	EQU 0004H
SYSTEM_EXIT		EQU 0005H
SYS_CRITICAL_EXIT	EQU 0006H
CREATE_VM		EQU 0007H
VM_CRITICAL_INIT	EQU 0008H
VM_INIT			EQU 0009H
VM_TERMINATE		EQU 000AH
VM_NOT_EXECUTEABLE	EQU 000BH
DESTROY_VM		EQU 000CH

VNE_CRASHED_BIT		EQU 00H
VNE_CRASHED		EQU (1 << VNE_CRASHED_BIT)
VNE_NUKED_BIT		EQU 01H
VNE_NUKED		EQU (1 << VNE_NUKED_BIT)
VNE_CREATEFAIL_BIT	EQU 02H
VNE_CREATEFAIL		EQU (1 << VNE_CREATEFAIL_BIT)
VNE_CRINITFAIL_BIT	EQU 03H
VNE_CRINITFAIL		EQU (1 << VNE_CRINITFAIL_BIT)
VNE_INITFAIL_BIT	EQU 04H
VNE_INITFAIL		EQU (1 << VNE_INITFAIL_BIT)
VNE_CLOSED_BIT		EQU 05H
VNE_CLOSED		EQU (1 << VNE_CLOSED_BIT)

VM_SUSPEND		EQU 000DH
VM_RESUME		EQU 000EH
SET_DEVICE_FOCUS	EQU 000FH
BEGIN_MESSAGE_MODE	EQU 0010H
END_MESSAGE_MODE	EQU 0011H
REBOOT_PROCESSOR	EQU 0012H
QUERY_DESTROY		EQU 0013H
DEBUG_QUERY		EQU 0014H
BEGIN_PM_APP		EQU 0015H

BPA_32_BIT		EQU 01H
BPA_32_BIT_FLAG		EQU 1

END_PM_APP		EQU 0016H
DEVICE_REBOOT_NOTIFY	EQU 0017H
CRIT_REBOOT_NOTIFY	EQU 0018H
CLOSE_VM_NOTIFY		EQU 0019H
POWER_EVENT		EQU 001AH
SYS_DYNAMIC_DEVICE_INIT	EQU 001BH
SYS_DYNAMIC_DEVICE_EXIT	EQU 001CH
CREATE_THREAD		EQU 001DH
THREAD_INIT		EQU 001EH
TERMINATE_THREAD	EQU 001FH
THREAD_NOT_EXECUTEABLE	EQU 0020H
DESTROY_THREAD		EQU 0021H
PNP_NEW_DEVNODE		EQU 0022H
W32_DEVICEIOCONTROL	EQU 0023H

DIOC_GETVERSION		EQU 0H
DIOC_OPEN		EQU DIOC_GETVERSION
DIOC_CLOSEHANDLE	EQU -1

SYS_VM_TERMINATE2	EQU 0024H
SYSTEM_EXIT2		EQU 0025H
SYS_CRITICAL_EXIT2	EQU 0026H
VM_TERMINATE2		EQU 0027H
VM_NOT_EXECUTEABLE2	EQU 0028H
DESTROY_VM2		EQU 0029H
VM_SUSPEND2		EQU 002AH
END_MESSAGE_MODE2	EQU 002BH
END_PM_APP2		EQU 002CH
DEVICE_REBOOT_NOTIFY2	EQU 002DH
CRIT_REBOOT_NOTIFY2	EQU 002EH
CLOSE_VM_NOTIFY2	EQU 002FH
GET_CONTENTION_HANDLER	EQU 0030H
KERNEL32_INITIALIZED	EQU 0031H
KERNEL32_SHUTDOWN	EQU 0032H
CREATE_PROCESS		EQU 0033H
DESTROY_PROCESS		EQU 0034H
SYS_DYNAMIC_DEVICE_REINIT	EQU 0035H
SYS_POWER_DOWN		EQU 0036H
MAX_SYSTEM_CONTROL	EQU 0036H

BEGIN_RESERVED_PRIVATE_SYSTEM_CONTROL	EQU 70000000H
END_RESERVED_PRIVATE_SYSTEM_CONTROL	EQU 7FFFFFFFH


%macro VxD_Service 2
  @@%2 EQU (%1_Device_ID << 16) | __Cur_Service_Num__
  %assign __Cur_Service_Num__ (__Cur_Service_Num__ + 1)
  %ifdef Create_Service_Table_%1
    dd %2
  %endif
%endmacro

%macro Begin_Service_Table 1
  %assign __Cur_Service_Num__ 0
  %define %1_Service VxD_Service %1,

  %ifdef Create_Service_Table_%1
[segment _LDATA]
    %1_Service_Table:
  %endif
%endmacro

%macro End_Service_Table 1
  Num_%1_Services equ __Cur_Service_Num__
  %undef __Cur_Service_Num__
  %undef %1_Service
  %ifdef Create_Service_Table_%1
__SECT__
  %endif
%endmacro


%include "winddk.inc"


; Client Register Structure as passed to V86/PM CallBacks
struc CRS
.EDI		resd 1		; 0
.ESI		resd 1		; 4
.EBP		resd 1		; 8
.res0		resd 1		; C
.EBX		resd 1		; 10
.EDX		resd 1		; 14
.ECX		resd 1		; 18
.EAX		resd 1		; 1C
.Error		resd 1		; 20
.EIP		resd 1		; 24
.CS		resw 1		; 28
.res1		resw 1		;
.EFlags		resd 1		; 2C
.ESP		resd 1		; 30
.SS		resw 1		; 34
.res2		resw 1
.ES		resw 1		; 38
.res3		resw 1
.DS		resw 1		; 3C		
.res4		resw 1
.FS		resw 1		; 40
.res5		resw 1
.GS		resw 1		; 44
.res6		resw 1
.Alt_EIP	resd 1		; 48
.Alt_CS		resw 1		; 4C
.res7		resw 1
.Alt_EFlags	resd 1
.Alt_ESP	resd 1
.Alt_SS		resw 1
.res8		resw 1
.Alt_ES		resw 1
.res9		resw 1
.Alt_DS		resw 1
.res10		resw 1
.Alt_FS		resw 1
.res11		resw 1
.Alt_GS		resw 1
.res12		resw 1
endstruc

struc cb_s
CB_VM_Status		resd 1
CB_High_Linear		resd 1
CB_Client_Pointer	resd 1
CB_VMID			resd 1
CB_Signature		resd 1
endstruc

VMCB_ID				EQU	62634D56H
VMSTAT_EXCLUSIVE_BIT		EQU	00H
VMSTAT_EXCLUSIVE		EQU	(1 << VMSTAT_EXCLUSIVE_BIT)
VMSTAT_BACKGROUND_BIT		EQU	01H
VMSTAT_BACKGROUND		EQU	(1 << VMSTAT_BACKGROUND_BIT)
VMSTAT_CREATING_BIT		EQU	02H
VMSTAT_CREATING			EQU	(1 << VMSTAT_CREATING_BIT)
VMSTAT_SUSPENDED_BIT		EQU	03H
VMSTAT_SUSPENDED		EQU	(1 << VMSTAT_SUSPENDED_BIT)
VMSTAT_NOT_EXECUTEABLE_BIT	EQU	04H
VMSTAT_NOT_EXECUTEABLE		EQU	(1 << VMSTAT_NOT_EXECUTEABLE_BIT)
VMSTAT_PM_EXEC_BIT		EQU	05H
VMSTAT_PM_EXEC			EQU	(1 << VMSTAT_PM_EXEC_BIT)
VMSTAT_PM_APP_BIT		EQU	06H
VMSTAT_PM_APP			EQU	(1 << VMSTAT_PM_APP_BIT)
VMSTAT_PM_USE32_BIT		EQU	07H
VMSTAT_PM_USE32			EQU	(1 << VMSTAT_PM_USE32_BIT)
VMSTAT_VXD_EXEC_BIT		EQU	08H
VMSTAT_VXD_EXEC			EQU	(1 << VMSTAT_VXD_EXEC_BIT)
VMSTAT_HIGH_PRI_BACK_BIT	EQU	09H
VMSTAT_HIGH_PRI_BACK		EQU	(1 << VMSTAT_HIGH_PRI_BACK_BIT)
VMSTAT_BLOCKED_BIT		EQU	0AH
VMSTAT_BLOCKED			EQU	(1 << VMSTAT_BLOCKED_BIT)
VMSTAT_AWAKENING_BIT		EQU	0BH
VMSTAT_AWAKENING		EQU	(1 << VMSTAT_AWAKENING_BIT)
VMSTAT_PAGEABLEV86BIT		EQU	0CH
VMSTAT_PAGEABLEV86_BIT		EQU	VMSTAT_PAGEABLEV86BIT
VMSTAT_PAGEABLEV86		EQU	(1 << VMSTAT_PAGEABLEV86BIT)
VMSTAT_V86INTSLOCKEDBIT		EQU	0DH
VMSTAT_V86INTSLOCKED_BIT	EQU	VMSTAT_V86INTSLOCKEDBIT
VMSTAT_V86INTSLOCKED		EQU	(1 << VMSTAT_V86INTSLOCKEDBIT)
VMSTAT_IDLE_TIMEOUT_BIT		EQU	0EH
VMSTAT_IDLE_TIMEOUT		EQU	(1 << VMSTAT_IDLE_TIMEOUT_BIT)
VMSTAT_IDLE_BIT			EQU	0FH
VMSTAT_IDLE			EQU	(1 << VMSTAT_IDLE_BIT)
VMSTAT_CLOSING_BIT		EQU	10H
VMSTAT_CLOSING			EQU	(1 << VMSTAT_CLOSING_BIT)
VMSTAT_TS_SUSPENDED_BIT		EQU	11H
VMSTAT_TS_SUSPENDED		EQU	(1 << VMSTAT_TS_SUSPENDED_BIT)
VMSTAT_TS_MAXPRI_BIT		EQU	12H
VMSTAT_TS_MAXPRI		EQU	(1 << VMSTAT_TS_MAXPRI_BIT)
VMSTAT_USE32_MASK		EQU	(VMSTAT_PM_USE32 | VMSTAT_VXD_EXEC)

struc tcb_s
TCB_Flags		resd 1 ; 00
TCB_Reserved1		resd 1 ; 04
TCB_Reserved2		resd 1 ; 08
TCB_Signature		resd 1 ; 0C
TCB_ClientPtr		resd 1 ; 10
TCB_VMHandle		resd 1 ; 14
TCB_ThreadId		resw 1 ; 18
TCB_PMLockOrigSS	resw 1 ; 1A
TCB_PMLockOrigESP	resd 1 ; 1C
TCB_PMLockOrigEIP	resd 1 ; 20
TCB_PMLockStackCount	resd 1 ; 24
TCB_PMLockOrigCS	resw 1 ; 28
TCB_PMPSPSelector	resw 1 ; 2A
TCB_ThreadType		resd 1 ; 2C
TCB_pad1		resw 1 ;
TCB_pad2		resb 1 ;
TCB_extErrLocus		resb 1 ;
TCB_extErr		resw 1 ;
TCB_extErrAction	resb 1 ;
TCB_extErrClass		resb 1 ;
TCB_extErrPtr		resd 1 ;
endstruc

SCHED_OBJ_ID_THREAD		EQU	42434854H
THFLAG_SUSPENDED_BIT		EQU	03H
THFLAG_SUSPENDED		EQU	(1 << THFLAG_SUSPENDED_BIT)
THFLAG_NOT_EXECUTEABLE_BIT	EQU	04H
THFLAG_NOT_EXECUTEABLE		EQU	(1 << THFLAG_NOT_EXECUTEABLE_BIT)
THFLAG_THREAD_CREATION_BIT	EQU	08H
THFLAG_THREAD_CREATION		EQU	(1 << THFLAG_THREAD_CREATION_BIT)
THFLAG_THREAD_BLOCKED_BIT	EQU	0AH
THFLAG_THREAD_BLOCKED		EQU	(1 << THFLAG_THREAD_BLOCKED_BIT)
THFLAG_RING0_THREAD_BIT		EQU	1CH
THFLAG_RING0_THREAD		EQU	(1 << THFLAG_RING0_THREAD_BIT)
THFLAG_ASYNC_THREAD_BIT		EQU	1FH
THFLAG_ASYNC_THREAD		EQU	(1 << THFLAG_ASYNC_THREAD_BIT)
THFLAG_CHARSET_BITS		EQU	10H
THFLAG_CHARSET_MASK		EQU	(3 << THFLAG_CHARSET_BITS)
THFLAG_ANSI			EQU	(0 << THFLAG_CHARSET_BITS)
THFLAG_OEM			EQU	(1 << THFLAG_CHARSET_BITS)
THFLAG_UNICODE			EQU	(2 << THFLAG_CHARSET_BITS)
THFLAG_RESERVED			EQU	(3 << THFLAG_CHARSET_BITS)
THFLAG_EXTENDED_HANDLES_BIT	EQU	12H
THFLAG_EXTENDED_HANDLES		EQU	(1 << THFLAG_EXTENDED_HANDLES_BIT)
THFLAG_OPEN_AS_IMMOVABLE_FILE_BIT	EQU	13H
THFLAG_OPEN_AS_IMMOVABLE_FILE	EQU	(1 << THFLAG_OPEN_AS_IMMOVABLE_FILE_BIT)

struc pmcb_s
PMCB_Flags	resd 1
PMCB_Parent	resd 1
endstruc

struc Exception_Handler_Struc
EHS_Reserved	resd 1
EHS_Start_EIP	resd 1
EHS_End_EIP	resd 1
EHS_Handler	resd 1
endstruc

struc VMFaultInfo
VMFI_EIP	resd 1
VMFI_CS		resw 1
VMFI_Ints	resw 1
endstruc
 
RESERVED_LOW_BOOST		EQU	00000001H
CUR_RUN_VM_BOOST		EQU	00000004H
LOW_PRI_DEVICE_BOOST		EQU	00000010H
HIGH_PRI_DEVICE_BOOST		EQU	00001000H
CRITICAL_SECTION_BOOST		EQU	00100000H
TIME_CRITICAL_BOOST		EQU	00400000H
RESERVED_HIGH_BOOST		EQU	40000000H
PEF_WAIT_FOR_STI_BIT		EQU	0
PEF_WAIT_FOR_STI		EQU	(1 << PEF_WAIT_FOR_STI_BIT)
PEF_WAIT_NOT_CRIT_BIT		EQU	1
PEF_WAIT_NOT_CRIT		EQU	(1 << PEF_WAIT_NOT_CRIT_BIT)
PEF_DONT_UNBOOST_BIT		EQU	2
PEF_DONT_UNBOOST		EQU	(1 << PEF_DONT_UNBOOST_BIT)
PEF_ALWAYS_SCHED_BIT		EQU	3
PEF_ALWAYS_SCHED		EQU	(1 << PEF_ALWAYS_SCHED_BIT)
PEF_TIME_OUT_BIT		EQU	4
PEF_TIME_OUT			EQU	(1 << PEF_TIME_OUT_BIT)
PEF_WAIT_NOT_HW_INT_BIT		EQU	5
PEF_WAIT_NOT_HW_INT		EQU	(1 << PEF_WAIT_NOT_HW_INT_BIT)
PEF_WAIT_NOT_NESTED_EXEC_BIT	EQU	6
PEF_WAIT_NOT_NESTED_EXEC	EQU	(1 << PEF_WAIT_NOT_NESTED_EXEC_BIT)
PEF_WAIT_IN_PM_BIT		EQU	7
PEF_WAIT_IN_PM			EQU	(1 << PEF_WAIT_IN_PM_BIT)
PEF_THREAD_EVENT_BIT		EQU	8
PEF_THREAD_EVENT		EQU	(1 << PEF_THREAD_EVENT_BIT)
PEF_WAIT_FOR_THREAD_STI_BIT	EQU	9
PEF_WAIT_FOR_THREAD_STI		EQU	(1 << PEF_WAIT_FOR_THREAD_STI_BIT)
PEF_RING0_EVENT_BIT		EQU	10
PEF_RING0_EVENT			EQU	(1 << PEF_RING0_EVENT_BIT)
PEF_WAIT_CRIT_BIT		EQU	11
PEF_WAIT_CRIT			EQU	(1 << PEF_WAIT_CRIT_BIT)
PEF_WAIT_CRIT_VM_BIT		EQU	12
PEF_WAIT_CRIT_VM		EQU	(1 << PEF_WAIT_CRIT_VM_BIT)
PEF_PROCESS_LAST_BIT		EQU	13
PEF_PROCESS_LAST		EQU	(1 << PEF_PROCESS_LAST_BIT)
PEF_WAIT_PREEMPTABLE_BIT	EQU	14
PEF_WAIT_PREEMPTABLE		EQU	(1 << PEF_WAIT_PREEMPTABLE_BIT)
PEF_WAIT_FOR_PASSIVE_BIT	EQU	15
PEF_WAIT_FOR_PASSIVE		EQU	(1 << PEF_WAIT_FOR_PASSIVE_BIT)
PEF_WAIT_FOR_APPY_BIT		EQU	16
PEF_WAIT_FOR_APPY		EQU	(1 << PEF_WAIT_FOR_APPY_BIT)
PEF_WAIT_FOR_WORKER_BIT		EQU	17
PEF_WAIT_FOR_WORKER		EQU	(1 << PEF_WAIT_FOR_WORKER_BIT)
PEF_WAIT_NOT_TIME_CRIT_BIT	EQU	PEF_WAIT_NOT_HW_INT_BIT
PEF_WAIT_NOT_TIME_CRIT		EQU	PEF_WAIT_NOT_HW_INT
PEF_WAIT_NOT_PM_LOCKED_STACK_BIT	EQU	PEF_WAIT_NOT_NESTED_EXEC_BIT
PEF_WAIT_NOT_PM_LOCKED_STACK	EQU	PEF_WAIT_NOT_NESTED_EXEC
PEF_WAIT_FOR_CONFIGMG_CALLABLE	EQU	PEF_WAIT_FOR_WORKER
PEF_WAIT_FOR_CONFIGMG_QUICK	EQU	PEF_WAIT_FOR_APPY
BLOCK_SVC_INTS_BIT		EQU	0
BLOCK_SVC_INTS			EQU	(1 << BLOCK_SVC_INTS_BIT)
BLOCK_SVC_IF_INTS_LOCKED_BIT	EQU	1
BLOCK_SVC_IF_INTS_LOCKED	EQU	(1 << BLOCK_SVC_IF_INTS_LOCKED_BIT)
BLOCK_ENABLE_INTS_BIT		EQU	2
BLOCK_ENABLE_INTS		EQU	(1 << BLOCK_ENABLE_INTS_BIT)
BLOCK_POLL_BIT			EQU	3
BLOCK_POLL			EQU	(1 << BLOCK_POLL_BIT)
BLOCK_THREAD_IDLE_BIT		EQU	4
BLOCK_THREAD_IDLE		EQU	(1 << BLOCK_THREAD_IDLE_BIT)
BLOCK_FORCE_SVC_INTS_BIT	EQU	5
BLOCK_FORCE_SVC_INTS		EQU	(1 << BLOCK_FORCE_SVC_INTS_BIT)

PAGEZEROINIT		EQU	00000001H
PAGEUSEALIGN		EQU	00000002H
PAGECONTIG		EQU	00000004H
PAGEFIXED		EQU	00000008H
PAGEDEBUGNULFAULT	EQU	00000010H
PAGEZEROREINIT		EQU	00000020H
PAGENOCOPY		EQU	00000040H
PAGELOCKED		EQU	00000080H
PAGELOCKEDIFDP		EQU	00000100H
PAGESETV86PAGEABLE	EQU	00000200H
PAGECLEARV86PAGEABLE	EQU	00000400H
PAGESETV86INTSLOCKED	EQU	00000800H
PAGECLEARV86INTSLOCKED	EQU	00001000H
PAGEMARKPAGEOUT		EQU	00002000H
PAGEPDPSETBASE		EQU	00004000H
PAGEPDPCLEARBASE	EQU	00008000H
PAGEDISCARD		EQU	00010000H
PAGEPDPQUERYDIRTY	EQU	00020000H
PAGEMAPFREEPHYSREG	EQU	00040000H
PAGEPHYSONLY		EQU	04000000H
PAGENOMOVE		EQU	10000000H
PAGEMAPGLOBAL		EQU	40000000H
PAGEMARKDIRTY		EQU	80000000H

P_SIZE		EQU	1000H
P_PRESBIT	EQU	0
P_PRES		EQU	(1 << P_PRESBIT)

⌨️ 快捷键说明

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