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

📄 util.mac

📁 Cracker终结者——提供最优秀的软件保护技术
💻 MAC
字号:
%ifndef INCLUDED_UTIL_MAC
%define INCLUDED_UTIL_MAC

;--------------------------
;macro support for @F,@@,@B
;--------------------------

%assign UNNAMED_LOCAL_LABEL 0

%define @F ..@UNNAMED_LOCAL_LABEL0

%macro define@F 1
%define @F ..@UNNAMED_LOCAL_LABEL%{1}
%endmacro

%define @@ @@ UNNAMED_LOCAL_LABEL

%macro @@ 1
..@UNNAMED_LOCAL_LABEL%{1}:
%define @B ..@UNNAMED_LOCAL_LABEL%{1}
%assign UNNAMED_LOCAL_LABEL UNNAMED_LOCAL_LABEL+1
define@F UNNAMED_LOCAL_LABEL
%endmacro


;---------------------------------------------------------------
; macro support for NT kernel like debug flags, example:
;
;   segment .data
;   DebugFlags: times 2 dd 0	; room for 64 bit flags, [0..63]
;
;   segment .text
;   debug_start DebugFlags, 43	; test bit 43, DebugFlags[43]
;   <code to emit some debug message>
;   debug_end
;
; flags should be allocated in dword amounts
; because of the nature of the BT instruction
;
; !!! macros modify/corrupt EFLAGS !!!
;---------------------------------------------------------------

%macro debug_start 2
	%push debug
	bt	dword [%{1}+4*(%{2}/32)], %{2}%32
	jnc	%$skip_debug
%endmacro

%macro debug_end 0
%ifctx debug
	%$skip_debug:
	%pop
%else
	%error no matching debug_start for debug_end
%endif
%endmacro

%endif

⌨️ 快捷键说明

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