TA的每日心情  | 奋斗 2024-5-22 16:18 | 
|---|
 
  签到天数: 1129 天 [LV.10]以坛为家III  
 | 
 
 
 楼主 |
发表于 2025-7-7 10:45:41
|
显示全部楼层
 
 
 
 本帖最后由 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'  |   
 
 
 
 |