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

📄 icedump.inc

📁 Cracker终结者——提供最优秀的软件保护技术
💻 INC
字号:
; for v3.22, v3.23, v3.24, v3.25, v4.00, v4.01, v4.05
; some symbols to make the code more readable

%ifndef INCLUDED_ICEDUMP_INC
%define INCLUDED_ICEDUMP_INC

%define ICEDUMP_VERSION_MAJOR 6
%define ICEDUMP_VERSION_MINOR1 0
%define ICEDUMP_VERSION_MINOR2 1
%define ICEDUMP_VERSION_MINOR3 8
%assign ICEDUMP_VERSION (ICEDUMP_VERSION_MAJOR << 12) + (ICEDUMP_VERSION_MINOR1 << 8) + (ICEDUMP_VERSION_MINOR2 << 4) + ICEDUMP_VERSION_MINOR3
%define ICEDUMP_VERSION_ASCII '0'+ICEDUMP_VERSION_MAJOR,'.','0'+ICEDUMP_VERSION_MINOR1,'.','0'+ICEDUMP_VERSION_MINOR2,'.','0'+ICEDUMP_VERSION_MINOR3

%define WINICE_VERSION_MAJOR (WINICE_VERSION >> 8)
%define WINICE_VERSION_MINOR1 ((WINICE_VERSION & 0xF0) >> 4)
%define WINICE_VERSION_MINOR2 (WINICE_VERSION & 0x0F)
%define WINICE_VERSION_ASCII '0'+WINICE_VERSION_MAJOR,'.','0'+WINICE_VERSION_MINOR1,'0'+WINICE_VERSION_MINOR2

%define ICEDUMP_DDB_NAME     ICEDUMP
%define ICEDUMP_DEVICE_NAME 'ICEDUMP'

; common stuff

%define CMD_INVALID 0
%define CMD_PAGEIN 0x9E

%define KBD_TAB		0x09
%define KBD_ENTER	0x0D
%define KBD_ESC		0x1B
%define KBD_LEFT	0x81
%define KBD_RIGHT	0x82
%define KBD_UP		0x83
%define KBD_DOWN	0x84

; Bhrama related stuff

struc BhramaComStruc
.version	resd 1	; Internal Check (03h)
.PID		resd 1	; Target PID
.EIP		resd 1	; EntryPoint to Set after DUMP
.OptL1		resd 1	; Internal ProcDump Options Dword1
.OptL2		resd 1	; Internal ProcDump Options Dword2
.OptL3		resd 1	; Internal ProcDump Options Dword3
.OptL4		resd 1	; Internal ProcDump Options Dword4
.OptL5		resd 1	; Internal ProcDump Options Dword5
endstruc

;SERVICE_VERSION	EQU 0x0000
SERVICE_DUMP		EQU 0x0001
SERVICE_LOAD		EQU 0x0002
SERVICE_SUSPEND		EQU 0x0003
SERVICE_SUSPENDX	EQU 0x0004
SERVICE_RESUME		EQU 0x0005
SERVICE_KILL		EQU 0x0006
SERVICE_CDPLAYER	EQU 0x0007
SERVICE_MP3PLAYER	EQU 0x0008
SERVICE_PEDUMP		EQU 0x0009
SERVICE_TRACE		EQU 0x000A
SERVICE_TRACEX		EQU 0x000B
SERVICE_BREAKR3		EQU 0x000C
SERVICE_IMPORTS		EQU 0x000D
SERVICE_MAX		EQU 0x000E

%define	CRLF0	13,10,0

;48 bytes max filename length
OPT_EMODE_FILENAMELEN	EQU 48
OPT_EMODE_NUMLEN	EQU 3

TempBuffer_size equ 65536

; macros for stack allocation with proper alignment
%macro salloc 1
	sub	esp,((%1) + 3) & 0xFFFFFFFC
	mov	edi,esp
%endmacro

%macro sfree 1
	lea	esp,[esp + (((%1) + 3) & 0xFFFFFFFC)]
%endmacro

; size optimization macros
%macro movb 2
	%if (%2 > 127 || %2 < -128)
		%error immediate argument to MOVB does not fit in 1 byte
	%endif
	push	byte %2
	pop	%1
%endmacro

; MSCDEX structures
struc CdReq
.Len		resb 1	; length of hdr
.SubUnit	resb 1	; subunit code
.Cmd		resb 1	; command code
.Status		resw 1	; status
.Reserved	resb 8
endstruc

struc CdIoctlReq
.Len		resb 1	; length of hdr
.SubUnit	resb 1	; subunit code
.Cmd		resb 1	; command code
.Status		resw 1	; status
.Reserved	resb 8
.MediaDesc	resb 1	; media descriptor byte
.XferOfs	resw 1	; transfer addr offset part
.XferSeg	resw 1	; transfer addr segment part
.XferSize	resw 1	; transfer block size
.Sector		resw 1	; starting sector #
.VolumeId	resd 1	; DWORD ptr to requested vol ID if error 0FH
.CtrlCode:
endstruc

struc CdPlayReq
.AddrMode	resb 1	; addressing mode
.Sector		resd 1	; starting sector number
.Count		resd 1	; number of sectors to play
endstruc

struc CdDiskInfo
.Code		resb 1	; control block code
.TrackLo	resb 1	; lowest track #
.TrackHi	resb 1	; highest track #
.LeadOut	resd 1	; starting point of the lead-out track
endstruc

struc CdTrackInfo
.Code		resb 1	; control block code
.Track		resb 1	; track #
.Start		resd 1	; starting point of the track
.Ctrl		resb 1	; track control info
endstruc

struc WiniceDeviceParams
.LogicalSeg:	resw 1
.ActualSeg:	resw 1
.Base:		resd 1
.Length:	resd 1
.Type:		resw 1	; 0/1: code/data
.SymName:	resb 8
endstruc

struc CallBack
.offset		resw 1
.segment	resw 1
endstruc

struc HookedInts
.VMCB:	resd	1
.cAPP:	resd	1

	resd	1
Handler_Int00:
	resb	3	; 36/ff/25: jmp dword [ss:x]
	resd	1

	resb	5

	resd	1
Handler_Int01:
	resb	3
	resd	1

	resb	5

	resd	1
Handler_Int03:
	resb	3
	resd	1

	resb	5

	resd	1
Handler_Int04:
	resb	3
	resd	1

	resb	5

	resd	1
Handler_Int05:
	resb	3
	resd	1

	resb	5

	resd	1
Handler_Int06:
	resb	3
	resd	1

	resb	5

	resd	1
Handler_Int0D:
	resb	3
	resd	1

	resb	5

	resd	1
Handler_Int41:
	resb	3
	resd	1

	resb	5
endstruc

ICEDUMP_DEBUG_SYSCTRL		equ 0
ICEDUMP_DEBUG_HOOKS		equ 1
ICEDUMP_DEBUG_FILEIO		equ 2
ICEDUMP_DEBUG_MP3		equ 3
ICEDUMP_DEBUG_PEDUMP		equ 4
ICEDUMP_DEBUG_TASKMOD		equ 5
ICEDUMP_DEBUG_COMMON		equ 6
ICEDUMP_DEBUG_TRACE		equ 7

ICEDUMP_DEBUG_FLAG_COUNT	equ 8

struc StaticData
loadcount:		resd 1
oWinice:		resd 1
oOld_CMD_INVALID:	resd 1
s_fWiniceIsActive:	resd 1
s_pSendSpecificEOI:	resd 1
PMCB:			resb CallBack_size
V86CB:			resb CallBack_size
V86IDT:			resb HookedInts_size
MP3:
.PlayerPresent:		resb 1
.nIRQ:			resb 1
OldSoundCardIntProc:
.off:			resd 1
.sel:			resd 1
DebugFlags		resd (ICEDUMP_DEBUG_FLAG_COUNT+31)/32
endstruc

%endif

⌨️ 快捷键说明

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