找回密码
 立即注册
整数型参数句柄进程 | 易语言编程 昨天 00:30 3 0star收藏 版权: . 保留作者信息 . 禁止商业使用 . 禁止修改作品

模块名称:NT内存操作模块
作者:hacker0058
版本:1.0
NT内存操作模块
1.模块_插远程进程
2.模块_提升进程权限
3.类_函数子类化(HOOK API),通过在内存中备份整个DLL解决同步问题!
不断添加中......


------------------------------
.版本 2
.子程序 模块_插远程进程, 整数型, 公开, 如果成功返回插入的远程线程句柄,失败返回 0
.参数 进程标识符, 整数型, , 需要插入进程的进程标识符
.参数 DLL文件名, 文本型, , 需要插入的DLL文件名
.参数 DLL命令名, 文本型, 可空, 插入的DLL文件中对应的命令名,对易DLL来说,这个参数必须填写.
.子程序 模块_取DLL中函数地址, 整数型, 公开
.参数 DLL名, 文本型, , 如"Kernel32.dll"
.参数 DLL中命令名, 文本型, , 区分大小写
.子程序 模块_提升进程权限, 逻辑型, 公开, 成功返回真,失败返回假
.参数 目标进程, 整数型, 可空, 要提升权限的进程句柄,一般由"API_打开进程()"返回,如果是在本进程,可以为空,程序将简单的由"API_取当前进程伪句柄()"返回值填充
.参数 权限类别, 文本型, 可空, 要提升到的权限类别,有以下几种常量:#SE_BACKUP_NAME,#SE_RESTORE_NAME,#SE_SHUTDOWN_NAME(关机),#SE_DEBUG_NAME(调试),默认为#SE_DEBUG_NAME
.程序集 函数子类化, , 公开, HOOK API
.子程序 动态备份DLL, 整数型, 公开, 在程序空间动态备份系统DLL,方便HOOK后的API调用,成功返回备份的DLL所在程序空间的内存地址,失败返回0
.参数 目标进程的句柄, 整数型, , 一般由OpenProcess函数(打开进程)返回,如果是在本进程,可以简单的由GetCurrentProcess函数(取当前进程伪句柄)返回
.参数 要备份的DLL名, 文本型, , 如 "Kernel32.dll"
.参数 原DLL的基地址, 整数型, 参考, 提供一个变量用来装载原DLL基地址
.子程序 读内存数据, 字节集, 公开, 返回指定内存指针所指向地址处的一段数据,理论上对所有Windows系统都有效
.参数 目标进程句柄, 整数型, , 一般由OpenProcess函数(打开进程)返回,如果是在本进程,可以简单的由GetCurrentProcess函数(取当前进程伪句柄)返回
.参数 内存区域指针, 整数型, , 要读的内存区域的开始地址
.参数 内存数据长度, 整数型, , 要读的内存区域的长度
.子程序 函数子类化, 逻辑型, 公开
.参数 进程句柄, 整数型, , 要子类化API的进程的句柄,一般由"API_打开进程()"返回,如果是在本进程,可以简单的由"API_取当前进程伪句柄()"返回
.参数 原函数地址, 整数型, , 要子类化的API在内存中的首地址
.参数 新函数地址, 整数型, , 要替代API在内存中的地址,可以由"到整数(&子程序名)"转换得到,注意:新函数的参数一定要和原函数一样,否则会造成堆栈错误!
.子程序 取备份DLL中函数地址, 整数型, 公开, 取出备份DLL中的API地址,可以使用"特殊功能支持库"里的"调用子程序()"命令调用这个API
.参数 备份空间地址, 整数型, , 由"备份系统DLL()"返回的值
.参数 原DLL基地址, 整数型, , 调用"备份系统DLL()"后最后一个参数的值
.参数 原函数地址, 整数型, , 由".取函数地址"返回的值
.子程序 取函数地址, 整数型, 公开, 返回指定模块中指定函数的地址
.参数 模块名, 文本型, , DLL名
.参数 函数名, 文本型, , API命令名
.子程序 释放备份DLL, 逻辑型, 公开, 释放由"模块_备份系统DLL()"备份的DLL空间
.参数 目标进程句柄, 整数型, , 一般由OpenProcess函数(打开进程)返回,如果是在本进程,可以简单的由GetCurrentProcess函数(取当前进程伪句柄)返回
.参数 空间地址, 整数型, , 由备份系统DLL()返回的值
.子程序 修改内存数据, 逻辑型, 公开, 修改指定内存指针所指向地址处的一段数据,成功返回真,失败返回假,注意:目前只对NT以上系统有效,没在98下测试
.参数 目标进程句柄, 整数型, , 一般由OpenProcess函数(打开进程)返回,如果是在本进程,可以简单的由GetCurrentProcess函数(取当前进程伪句柄)返回
.参数 内存区域指针, 整数型, , 要写到内存的区域地址
.参数 欲写到内存的数据, 字节集, , 欲写到内存的字节集数据
.DLL命令 API_打开进程, 整数型, , "OpenProcess", 公开, 打开进程
    .参数 访问方法, 整数型, , 指定这个句柄要求的访问方法,PROCESS_CREATE_THREAD(允许远程创建线程);PROCESS_VM_OPERATION (允许远程VM操作);PROCESS_VM_WRITE(允许远程VM写);2035711 完全访问
    .参数 子进程继承, 整数型, , 如句柄能够由子进程继承,则为TRUE,0
    .参数 进程标识符, 整数型, , 要打开那个进程的进程标识符,使用一个变量装载进程ID。
.DLL命令 API_读内存字节, 逻辑型, "kernel32", "ReadProcessMemory", 公开
    .参数 进程句柄, 整数型, , 使用函数 OpenProcess() 返回。
    .参数 起始读入地址, 整数型
    .参数 读出的内容, 字节集, , 本参数的类型也能是“字节”型。
    .参数 读出长度, 整数型, , 要读出的数据长度。
    .参数 实际读出长度, 整数型, , 实际读出的数据长度,为0则忽略。
.DLL命令 API_关闭内核对象, 整数型, "kernel32", "CloseHandle", 公开, 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的  非零表示成功,零表示失败。会设置GetLastError
    .参数 对象句柄, 整数型, , 欲关闭的一个对象的句柄;
.DLL命令 API_加载DLL, 整数型, , "LoadLibraryA", 公开
    .参数 DLL名, 文本型
.DLL命令 API_取DLL函数地址, 整数型, "kernel32", "GetProcAddress", 公开, 返回函数地址  成功返回DLL库模块内函数地址
    .参数 DLL句柄, 整数型, , DLL库模块的句柄,可以调用 LoadLibrary 函数返回。
    .参数 DLL库模块内函数名, 文本型, , DLL库模块内函数名
.DLL命令 API_取当前进程伪句柄, 整数型, "kernel32", "GetCurrentProcess", 公开
.DLL命令 API_取模块句柄, 整数型, "kernel32", "GetModuleHandleA", 公开, 获取一个应用程序或动态链接库的模块句柄  如执行成功成功,则返回模块句柄。零表示失败。会设置GetLastError
    .参数 模块名, 文本型, , 指定模块名,这通常是与模块的文件名相同的一个名字。例如,NOTEPAD.EXE程序的模块文件名就叫作NOTEPAD;
.DLL命令 API_取系统目录, 整数型, "kernel32", "GetSystemDirectoryA", 公开
    .参数 缓冲区, 文本型
    .参数 缓冲区长度, 整数型
.DLL命令 API_取线程和进程标识符, 整数型, "user32", "GetWindowThreadProcessId", 公开, 获取与指定窗口关联在一起的一个进程和线程标识符,成功返回拥有窗口的线程的标识符
    .参数 窗口句柄, 整数型, , 指定窗口句柄
    .参数 进程ID, 整数型, 传址
.DLL命令 API_申请内存空间, 整数型, "kernel32.dll", "VirtualAllocEx", 公开, 申请内存地址空间  成功返回申请的内存空间的起始地址。
    .参数 进程句柄, 整数型, , 可以使用函数 OpenProcess() 返回。
    .参数 lpAddress, 整数型, , 0
    .参数 空间大小, 整数型, 传址, 申请的内存空间大小
    .参数 flAllocationType, 整数型, , 4096
    .参数 共享方式, 整数型, , 申请的内存空间共享方式,PAGE_READWRITE(4,可读写方式);
.DLL命令 API_释放内存空间, 逻辑型, "kernel32.dll", "VirtualFreeEx", 公开, 释放申请的内存地址空间
    .参数 进程句柄, 整数型, , 可以使用函数 OpenProcess() 返回。
    .参数 内存空间地址, 整数型, , 用 VirtualAllocEx() 申请的内存空间地址。
    .参数 dwSize, 整数型, 传址, 0
    .参数 dwFreeType, 整数型, , 32768
.DLL命令 API_写内存字节, 逻辑型, "kernel32", "WriteProcessMemory", 公开, 在指定进程中写内存
    .参数 进程句柄, 整数型, , 使用函数 OpenProcess() 返回。
    .参数 起始写入地址, 整数型
    .参数 要写入的内容, 字节集, , 本参数的类型也能是“字节”型。
    .参数 写入长度, 整数型, , 写入的数据长度。
    .参数 实际写入长度, 整数型, , 实际写入的数据长度,为0则忽略。
.DLL命令 API_寻找顶级窗口, 整数型, "user32", "FindWindowA", 公开, 寻找窗口列表中第一个符合指定条件的顶级窗口(在vb里使用:FindWindow最常见的一个用途是获得ThunderRTMain类的隐藏窗口的句柄;该类是所有运行中vb执行程序的一部分。获得句柄后,可用api函数GetWindowText取得这个窗口的名称;该名也是应用程序的标题)  找到窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError
    .参数 窗口类名, 整数型, , 指向包含了窗口类名的空中止(C语言)字串的指针;或设为零,表示接收任何类
    .参数 窗口文本, 文本型, , 指向包含了窗口文本(或标签)的空中止(C语言)字串的指针;或设为零,表示接收任何窗口标题  示例Dim hw&
.DLL命令 API_运行远程线程, 整数型, "kernel32", "CreateRemoteThread", 公开, 在另一进程中建立并运行一个远程的线程  成功返回新线程句柄,失败返回NULL,并且可调用GetLastError获得错误值。
    .参数 进程句柄, 整数型, , 进程句柄
    .参数 线程安全描述字, 整数型, , 线程安全描述字,指向SECURITY_ATTRIBUTES结构的指针
    .参数 线程栈大小, 整数型, , 线程栈大小,以字节表示
    .参数 远程进程指针, 整数型, , 一个LPTHREAD_START_ROUTINE类型的指针,指向在远程进程中执行的函数地址
    .参数 传入参数, 整数型, , 传入参数
    .参数 其它标志, 整数型, , 创建线程的其它标志
    .参数 线程身份标志, 整数型, , 线程身份标志,如果为NULL
.常量 SE_BACKUP_NAME, "“SeBackupPrivilege”", 公开
.常量 SE_DEBUG_NAME, "“SeDebugPrivilege”", 公开, 调试
.常量 SE_RESTORE_NAME, "“SeRestorePrivilege”", 公开
.常量 SE_SHUTDOWN_NAME, "“SeShutdownPrivilege”", 公开, 关机

18511624954[下载].rar



上一篇:易语言模块 Mysql记录集查看工具1.0.ec
下一篇:易语言模块 ODBC数据库.ec