//
//
//
//
//
//
//
//
//
//
软件Tags:
防止进程被杀的动态库系统结构: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_READWRITE64为可读写模式 .参数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,模块信息
