krltest.asm
来自「获取内核内存地址的汇编代码。」· 汇编 代码 · 共 57 行
ASM
57 行
.386
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
.data
limit db 50h
Krl32Base dd 0
fmt db "Kernel32 Base Address = %X",0
buf db 256 dup (0)
szCap db "Get Krl Base",0
.code
start:
call vir_start
vir_start:
pop ebp
sub ebp,offset vir_start
mov esi,[esp]
and esi,0fffff000h
call GetKernel32Base
push eax
pop Krl32Base
invoke wsprintf,offset buf,offset fmt,Krl32Base
invoke MessageBox,NULL,offset buf,offset szCap,MB_OK or MB_ICONINFORMATION
invoke ExitProcess,0
GetKernel32Base:
xor eax,eax
search_loop1:
cmp byte ptr [ebp+limit],00h
jz search_exit
cmp word ptr[esi],5a4dh
jz check_pe
search_loop2:
sub esi,1000h
dec byte ptr [ebp+limit]
jmp search_loop1
check_pe:
mov edi,[esi+3ch]
add edi,esi
cmp word ptr [edi],4550h
jz get_base
jmp search_loop2
search_exit:
stc
get_base:
xchg eax,esi
ret
end start
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?