📄 call.asm
字号:
; #########################################################################
.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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -