易语言创建进程CreateProcessA暂停注入DLL到游戏进程

CreateProcessA暂停注入

.版本 2
.支持库 spec
 
.局部变量 文件路径, 文本型
.局部变量 运行目录, 文本型
.局部变量 si, STARTUPINFO
.局部变量 pi, 进程结构
.局部变量 sRet, 整数型
.局部变量 模块名称, 文本型
.局部变量 dll文件路径, 整数型
.局部变量 Param, 整数型
.局部变量 LoadLibraryA地址, 整数型
.局部变量 hThread, 整数型
.局部变量 bRet, 整数型
 
文件路径 = “D:\游戏\剑侠\剑侠情缘网络版\gamefree.exe”
运行目录 = 取文本左边 (文件路径, 倒找文本 (文件路径, “\”, ,))
模块名称 = 编辑框1.内容
 
' 1、创建进程
sRet = CreateProcessA (文件路径, “”, 0, 0, 假, 4, 0, 运行目录, si, pi)
调试输出 (sRet)
 
' 2、申请内存空间
dll文件路径 = 取文本长度 (模块名称)1
 
Param = VirtualAllocEx (pi.进程句柄, 0, dll文件路径, 4096, 4)
 
' 3、把DLL路径写入内存
 
WriteProcessMemory (pi.进程句柄, Param, 模块名称, 取字节集长度 (到字节集 (模块名称)), 0)
 
' 4、获取loadlibrary地址
 
LoadLibraryA地址 = GetProcAddress (GetModuleHandleA (“kernel32”), “LoadLibraryA”)
 
' 5、创建远程线程调用LoadLibraryA函数,获取远程句柄
 
hThread = CreateRemoteThread (pi.进程句柄, 0, 0, LoadLibraryA地址, Param, 0, 0)
.如果 (hThread = 0)
    信息框 (“创建线程注入失败”, 0, , )
    返回 ()
 
.否则
 
.如果结束
' 5、唤醒主线程
bRet = ResumeThread (pi.线程句柄)
.如果 (bRet = -1)
    信息框 (“ResumeThread线程唤醒失败”, 0, , )
    返回 ()
.否则
 
.如果结束
 
' 6、测试等待
WaitForSingleObject (hThread, -1)
 
' 7、关闭句柄
CloseHandle (hThread)

教程下载:

链接:https://pan.baidu.com/s/158ikKVjIwaoF4438MG4fhA

提取码:加QQ群:521068947 群文件下载


发布日期:

所属分类: 编程 标签:   


没有相关文章!