下你所需,载你所想!
汇集开发技术源码资料

易语言远程注入DLL设置呼入呼出界面

:6.036KB :1 :2020-12-17 10:46:11

部分简介

WriteProcessMemory (Rpid, Addr, 取指针地址 (AddStr), 取字节集长度 (AddStr), lpret) ' 把模块名和函数名都写入
.如果真 (lpret ≤ 0) ' lpret 为写入字节数量
CloseHandle (Rpid)
返回 (3) ' //写入失败,返回自定义错误代码3
.如果真结束
temp = 取变量数据地址 (Addr)
CopyMemory (PL + 8, temp, 4) ' //将dll名字的首地址指针(4字节)写入 替换注入代码
temp = Addr + 取文本长度 (ModuleName) + 1
CopyMemory (PL + 16, 取变量数据地址 (temp), 4) ' //将函数名字的首地址指针(4字节)写入 替换注入代码 地址在DLL名后面,所以是取文本长度 (ModuleName) + 1(结束符)
ApiAddr = GetProcAddress (GetModuleHandleA (“Kernel32.dll”), “GetProcAddress”)
.如果真 (ApiAddr = 0)
CloseHandle (Rpid)
返回 (4) ' //获取失败,返回自定义错误代码4
.如果真结束
temp = 取变量数据地址 (ApiAddr)
CopyMemory (PL + 22, temp, 4) ' //将GetProcAddress的地址指针(4字节) 替换注入代码
temp = 取变量数据地址 (Parameters)
CopyMemory (PL + 29, temp, 4) ' //将参数(4字节) 替换注入代码
' OK 到这里 注入代码已经完成 把这代码在写入目标进程 执行远程CALL就行了
WriteProcessMemory (Rpid, Addr + 取字节集长度 (AddStr) + 1, 取指针地址 (注入代码), 取字节集长度 (注入代码), lpret) ' 把注入代码写入
.如果真 (lpret ≤ 0) ' lpret 为写入字节数量
CloseHandle (Rpid)
返回 (5) ' //写入失败,返回自定义错误代码5
.如果真结束
调试输出 (取十六进制文本 (Addr + 取字节集长度 (AddStr) + 1), 注入代码)

易语言远程注入DLL设置呼入呼出界面

热门推荐

相关文章