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

防截包/抓包模块源码附使用调用例程

:8.006KB :1 :2019-12-15 08:31:03

部分简介

.子程序 结束进程中DLL, 逻辑型, , 不是所有的DLL都能结束,本函数可能造成被结束DLL的进程异常退出,请小心使用
.参数 进程ID, 整数型, , 需要结束其中DLL的进程ID号
.参数 Dll名称, 文本型, , 需要结束的DLL的名称
.局部变量 线程ID, 整数型
.局部变量 返回地址, 整数型
.局部变量 退出代码, 整数型
.局部变量 线程地址, 整数型
.局部变量 线程句柄, 整数型
.局部变量 长度, 整数型

线程ID = 打开进程 (2035711, 真, 进程ID) ' 在进程中创建一个线程
.判断开始 (线程ID = 0) ' 为0表示创建失败,直接返回
返回 (假)
.默认
长度 = 取文本长度 (Dll名称) + 1 ' 取出dll的全路径长度
返回地址 = 分配内存用来保存GetModuleHandleA的参数 (线程ID, 0, 长度, 4096, 4) ' 分配内存用来保存GetModuleHandleA的参数
.如果 (将参数写到远程的进程内存中 (线程ID, 返回地址, 到字节集 (Dll名称), 长度, 0)) ' 将参数写到远程的进程内存中
线程地址 = 远程取得入口地址 (远程取得入口地址1 (“Kernel32”), “GetModuleHandleA”) ' 远程取得GetModuleHandleA入口地址
线程句柄 = 远程执行命令 (线程ID, 0, 0, 线程地址, 返回地址, 0, 0) ' 远程执行命令
等待执行退出 (线程句柄, -1) ' 等待执行退出
获得远程命令返回的结果 (线程句柄, 取变量地址 (退出代码)) ' 获得远程命令返回的结果
释放内存 (线程ID, 返回地址, 长度, 16384) ' 释放内存
关闭句柄 (线程句柄) ' 关闭线程
线程地址 = 远程取得入口地址 (远程取得入口地址1 (“Kernel32”), “FreeLibraryAndExitThread”) ' 远程取得FreeLibraryAndExitThread入口地址
线程句柄 = 远程执行命令 (线程ID, 0, 0, 线程地址, 退出代码, 0, 0) ' 远程执行命令
等待执行退出 (线程句柄, -1) ' 等待执行退出
释放内存 (线程ID, 返回地址, 长度, 16384) ' 释放内存
关闭句柄 (线程句柄) ' 关闭线程
关闭句柄 (线程ID)
.否则
释放内存 (线程ID, 返回地址, 长度, 16384)
返回 (假)
.如果结束

.判断结束
返回 (真)

防截包/抓包模块源码附使用调用例程

热门推荐

相关文章