call.asm
来自「masm32环境下」· 汇编 代码 · 共 72 行
ASM
72 行
; #########################################################################
.386
.model flat, stdcall
option casemap :none ; case sensitive
; #########################################################################
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib RWcmosDll.lib
; #########################################################################
MY_STRUCT STRUCT
Item1 dd ?
Item2 dd ?
Item3 db 16 dup(?)
MY_STRUCT ENDS
;OpenIO proto :WORD,:DWORD
Start proto :DWORD,:DWORD
.DATA
szStrFmt db "long is%d",0
szDllName db "ntoskrnl.exe",0
szIoSetFunc db "Ke386IoSetAccessProcess",0
szSetIoFunc db "Ke386SetIoAccessMap",0
Er_msg_loaddll db "load dll error",0
Er_msg_getfunc db "get function address ok!",0
Er_Msg_error db "error",0
Ok_Msg_ok db "ok!",0
Ok_msg_loaddll db "load dll ok",0
Ok_msg_getfunc db "get function address error !",0
.data?
szBuffer db 128 dup(?)
hDll dd ?
hFunc_IoSet dd ?
hFunc_SetIo dd ?
dwProcessId dd ?
.CODE
start:
invoke GetCurrentProcessId
mov dwProcessId, eax
INVOKE Start,dwProcessId,70h
out 70h,al
.IF eax == TRUE
invoke MessageBox,0,addr Ok_Msg_ok,0,0
.ELSE
invoke MessageBox,0,addr Er_Msg_error,0,0
.ENDIF
Exit_Program:
push 0
call ExitProcess
end start
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?