TA的每日心情 | 奋斗 2024-5-22 16:18 |
---|
签到天数: 1129 天 [LV.10]以坛为家III
|
本帖最后由 slzslz 于 2025-7-7 10:46 编辑
[AppleScript] 纯文本查看 复制代码 format PE GUI at 0x400000
include 'win32a.inc'
section '.data' data readable writeable
_id dd ?
_message db "222",0
_caption db "111",0
_lib db "user32.dll",0
_proc db "MessageBoxA",0
_text db "Error",0
_addr dd ?
_bytes rb 6
_patch: push .hooked
ret
section '.code' code readable executable
.hooked:
invoke Beep, 750, 300
invoke WriteProcessMemory, [_id], [_addr], _bytes, 6, 0 ;restore original bytes
invoke MessageBox, HWND_DESKTOP, _lib, _proc, MB_OK
push .ret_addr
ret
entry $
invoke LoadLibrary, _lib
or eax, eax
jz .error
invoke GetProcAddress, eax, _proc
or eax, eax
jz .error
mov [_addr], eax
invoke GetCurrentProcess
mov [_id], eax
invoke ReadProcessMemory, [_id], [_addr], _bytes, 6, 0
or eax, eax
jz .error
invoke WriteProcessMemory, [_id], [_addr], _patch, 6, 0
or eax, eax
jz .exit
invoke MessageBox, HWND_DESKTOP, _caption, _message, MB_OK ;after hooked
.ret_addr:
invoke MessageBox, HWND_DESKTOP, _caption, _message, MB_OK ;after unhooked
jmp .exit
.error:
invoke MessageBox, HWND_DESKTOP, _text, _text, MB_OK or MB_ICONERROR
.exit:
invoke ExitProcess,0
section '.idata' import readable writable
library kernel32, 'KERNEL32.DLL',\
user32,'USER32.DLL'
import kernel32,\
WriteProcessMemory, 'WriteProcessMemory', \
ExitProcess,'ExitProcess', \
LoadLibrary, 'LoadLibraryA', \
GetProcAddress, 'GetProcAddress', \
GetCurrentProcess, 'GetCurrentProcess', \
ReadProcessMemory, 'ReadProcessMemory', \
Beep, 'Beep'
import user32,\
MessageBox, 'MessageBoxA' 这个是 X86的代码
[Asm] 纯文本查看 复制代码 format PE GUI at 0x400000
include 'win32a.inc'
section '.data' data readable writeable
_id dd ?
_message db "222",0
_caption db "111",0
_lib db "user32.dll",0
_proc db "MessageBoxA",0
_text db "Error",0
_addr dd ?
_bytes rb 6
_patch: push .hooked
ret
section '.code' code readable executable
.hooked:
invoke Beep, 750, 300
invoke WriteProcessMemory, [_id], [_addr], _bytes, 6, 0 ;restore original bytes
invoke MessageBox, HWND_DESKTOP, _lib, _proc, MB_OK
push .ret_addr
ret
entry $
invoke LoadLibrary, _lib
or eax, eax
jz .error
invoke GetProcAddress, eax, _proc
or eax, eax
jz .error
mov [_addr], eax
invoke GetCurrentProcess
mov [_id], eax
invoke ReadProcessMemory, [_id], [_addr], _bytes, 6, 0
or eax, eax
jz .error
invoke WriteProcessMemory, [_id], [_addr], _patch, 6, 0
or eax, eax
jz .exit
invoke MessageBox, HWND_DESKTOP, _caption, _message, MB_OK ;after hooked
.ret_addr:
invoke MessageBox, HWND_DESKTOP, _caption, _message, MB_OK ;after unhooked
jmp .exit
.error:
invoke MessageBox, HWND_DESKTOP, _text, _text, MB_OK or MB_ICONERROR
.exit:
invoke ExitProcess,0
section '.idata' import readable writable
library kernel32, 'KERNEL32.DLL',\
user32,'USER32.DLL'
import kernel32,\
WriteProcessMemory, 'WriteProcessMemory', \
ExitProcess,'ExitProcess', \
LoadLibrary, 'LoadLibraryA', \
GetProcAddress, 'GetProcAddress', \
GetCurrentProcess, 'GetCurrentProcess', \
ReadProcessMemory, 'ReadProcessMemory', \
Beep, 'Beep'
import user32,\
MessageBox, 'MessageBoxA' |
|