fasm 汇编编写的loader total command 11.5去除最上面标题栏未注册的源码
本帖最后由 slzslz 于 2025-7-25 10:00 编辑汇编写的LOADER源码,具体想破解啥自己发挥了,用total command 11.5演示一下
format PE GUI 4.0
entry start
include 'win32a.inc'
section '.data' data readable writeable
processInfo PROCESS_INFORMATION
startupInfo STARTUPINFO
cmdLine db 'TOTALCMD64.EXE',0
hProcess dd ?
baseAddress dd ?
bytesWritten dd ?
nops db 90h, 90h, 90h, 90h, 90h, 90h
section '.code' code readable executable
start:
; 初始化 STARTUPINFO 结构
invokeRtlZeroMemory, startupInfo, sizeof.STARTUPINFO
mov , sizeof.STARTUPINFO
; 创建进程 (挂起状态)
invokeCreateProcessA, 0, cmdLine, 0, 0, 0, CREATE_SUSPENDED, 0, 0, startupInfo, processInfo
test eax, eax
jz error_exit
; 保存进程句柄
mov eax,
mov , eax
; 获取进程基地址 (这里简化处理,实际应该通过PEB获取)
; 注意: 对于64位进程,32位程序需要特殊处理,这里知道基地址
; 实际应用中应该读取PEB的ImageBaseAddress
mov , 00400000h; 基地址是00400000h,需要根据实际情况修改
; 计算要修改的地址 (基地址 + RVA)
mov eax,
add eax, 2B2DD0h ; RVA 2B2DD0
; 修改内存 (6个NOP)
invokeWriteProcessMemory, , eax, nops, 6, bytesWritten
; 恢复线程执行
invokeResumeThread,
; 关闭句柄
invokeCloseHandle,
invokeCloseHandle,
; 退出程序
invokeExitProcess, 0
error_exit:
; 错误处理
invokeExitProcess, 1
section '.idata' import data readable writeable
library kernel32, 'kernel32.dll', \
user32, 'user32.dll'
import kernel32, \
CreateProcessA, 'CreateProcessA', \
ExitProcess, 'ExitProcess', \
CloseHandle, 'CloseHandle', \
WriteProcessMemory, 'WriteProcessMemory', \
ResumeThread, 'ResumeThread', \
RtlZeroMemory, 'RtlZeroMemory'
import user32, \
MessageBoxA, 'MessageBoxA' 谢谢,收藏源代码。 感谢楼主无私分享! PYG有你更精彩! 膜拜大神~!PYG有你更精彩! PYG有你更精彩! PYG有你更精彩! 汇编大神,小菜路过支持下 漂亮,这个是好软件哦 优雅~{:victory:}
页:
[1]