防止进程被杀的动态库
系统结构:GetMsgProc,new_OpenProcess,取进程路径,HOOKAPI,ReadApi,api_CallNextHookEx,取程序或DLL句柄,取DLL函数地址,返回虚拟信息,修改虚拟保护,写内存字节,取当前进程伪句柄,OpenProcess,CreateToolhelp32Snapshot,Module32First,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ GetMsgProc
| |
| |------ new_OpenProcess
| |
| |------ 取进程路径
| |
| |------ HOOKAPI
| |
| |------ ReadApi
| |
| |
======调用的Dll
| |
| |---[dll]------ api_CallNextHookEx
| |
| |---[dll]------ 取程序或DLL句柄
| |
| |---[dll]------ 取DLL函数地址
| |
| |---[dll]------ 返回虚拟信息
| |
| |---[dll]------ 修改虚拟保护
| |
| |---[dll]------ 写内存字节
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ OpenProcess
| |
| |---[dll]------ CreateToolhelp32Snapshot
| |
| |---[dll]------ Module32First
调用的DLL命令:
.DLL命令 api_CallNextHookEx, 整数型, , "CallNextHookEx"
.参数 hhook, 整数型
.参数 nCode, 整数型
.参数 wParam, 整数型
.参数 lParam, 整数型
.DLL命令 取程序或DLL句柄, 整数型, "kernel32", "GetModuleHandleA", , 获取一个应用程序或动态链接库的模块句柄 如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
.参数 模块名, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 取DLL函数地址, 整数型, "kernel32", "GetProcAddress", , 返回函数地址 成功返回DLL库模块内函数地址
.参数 DLL句柄, 整数型, , DLL库模块的句柄,可以调用 LoadLibrary 函数返回。
.参数 DLL库模块内函数名, 文本型, , DLL库模块内函数名
.DLL命令 返回虚拟信息, 整数型, "kernel32", "VirtualQueryEx"
.参数 hProcess, 整数型, , 对象的进程句柄,可以使用函数 OpenProcess() 返回。
.参数 lpAddress, 整数型, , 对象指针地址
.参数 lpBuffer, 虚拟信息, , 返回的虚拟信息
.参数 dwLength, 整数型, , 信息长度,已知 28
.DLL命令 修改虚拟保护, 逻辑型, "kernel32", "VirtualProtectEx"
.参数 hProcess, 整数型, , 对象的进程句柄,可以使用函数 OpenProcess() 返回。
.参数 lpAddress, 整数型, , 虚拟信息.BaseAddress
.参数 dwSize, 整数型, , 虚拟信息.RegionSize
.参数 flNewProtect, 整数型, , 修改类型,#PAGE_EXECUTE_READWRITE 64为可读写模式
.参数 lpflOldProtect, 整数型, 传址, 虚拟信息.Protect
.DLL命令 写内存字节, 逻辑型, "kernel32", "WriteProcessMemory", , 在指定进程中写内存
.参数 hProcess, 整数型, , 对象的进程句柄,可以使用函数 OpenProcess() 返回。
.参数 起始写入地址, 整数型, , 起始写入地址
.参数 要写入的内容, 字节集, , 本参数的类型也能是“字节”型。
.参数 写入长度, 整数型, , 写入的数据长度。
.参数 实际写入长度, 整数型, , 实际写入的数据长度,为0则忽略。
.DLL命令 取当前进程伪句柄, 整数型, "kernel32", "GetCurrentProcess"
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess", , 取进程ID,将句柄返回给过程对象
.参数 dwDesiredAccess, 整数型, , 希望获得的访问权限
.参数 bInheritHandle, 整数型, , 指明是否希望所获得的句柄可以继承
.参数 dwProcessId, 整数型, , 要访问的进程ID
.DLL命令 CreateToolhelp32Snapshot, 整数型, , "CreateToolhelp32Snapshot"
.参数 falg, 整数型
.参数 id, 整数型
.DLL命令 Module32First, 整数型, , "Module32First"
.参数 hsnap, 整数型
.参数 mod, 模块信息
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。