交流打劫API钩子无敌带演示附完整源码
功能说明:该程序是一个使用易语言编写的系统级钩子程序,主要功能是拦截并控制Windows系统的退出操作。通过钩子技术,程序能够监控和修改`ExitWindowsEx`函数的行为,防止未经授权的系统关机、重启或注销操作。
程序的核心逻辑是通过`HOOKAPI`函数对`ExitWindowsEx`进行钩子替换,当检测到特定参数(如保留值为3389)时,允许正常执行;否则会弹出提示框,阻止操作并显示拦截信息。此外,程序还包含了一些基础的DLL调用功能,如获取模块句柄、函数地址、虚拟内存信息等,用于实现钩子注入和内存修改功能。
整个程序的功能集中在对系统关键API的拦截与控制上,主要用于安全防护或权限管理场景,确保系统操作符合预期。其标题可以总结为“钩子拦截ExitWindowsEx操作的程序”。
======程序集1
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ GetMsgProc
| |
| |------ new_ExitWindowsEx
| |
| |------ HOOKAPI
| |
| |------ ReadApi
| |
| |
======调用的Dll
| |
| |---[dll]------ api_CallNextHookEx
| |
| |---[dll]------ 取程序或DLL句柄
| |
| |---[dll]------ 取DLL函数地址
| |
| |---[dll]------ 返回虚拟信息
| |
| |---[dll]------ 修改虚拟保护
| |
| |---[dll]------ 写内存字节
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ api_ExitWindowsEx
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _选择框_全局挂勾_被单击
| |
| |------ 安装全局钩子
| |
| |------ _按钮测试_被单击
| |
| |------ __启动窗口_可否被关闭
| |
| |
======接口程序集
| |
| |------ 刷新进程信息
| |
| |------ 修改API首地址
| |
| |------ 还原API
| |
| |
======调用的Dll
| |
| |---[dll]------ 修改虚拟保护
| |
| |---[dll]------ 返回虚拟信息
| |
| |---[dll]------ 取程序或DLL句柄
| |
| |---[dll]------ 取DLL函数地址
| |
| |---[dll]------ 写内存字节
| |
| |---[dll]------ api_ExitWindowsEx
| |
| |---[dll]------ 创建进程快照
| |
| |---[dll]------ 开始进程快照
| |
| |---[dll]------ 继续进程快照
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ 释放内存空间
| |
| |---[dll]------ 申请内存空间
| |
| |---[dll]------ api_LoadLibraryA
| |
| |---[dll]------ api_GetProcAddress
| |
| |---[dll]------ api_SetWindowsHookExA
| |
| |---[dll]------ 关闭全局钩子
| |
| |---[dll]------ 释放动态链接库_
======窗口程序集1
| |
| |------ __启动窗口_创建完毕
| |
| |------ _高级选择夹1_子夹被改变
| |
| |------ _选择框_总在最前_被单击
| |
| |------ __启动窗口_被激活
| |
| |------ __启动窗口_可否被关闭
| |
| |------ _属性_被选择
| |
| |------ _刷新进程_被选择
| |
| |------ _结束线程_被选择
| |
| |------ _刷新线程_被选择
| |
| |------ _刷新模块_被选择
| |
| |------ _卸载模块_被选择
| |
| |------ _模块属性_被选择
| |
| |------ _结束进程_被选择
| |
| |------ _结束并删除程序_被选择
| |
| |------ _刷新进程按钮_被单击
| |
| |------ _按钮_新建任务_被单击
| |
| |------ _按钮_结束进程_被单击
| |
| |------ _拷贝路径到剪切板_被选择
| |
| |------ _超级列表框_进程信息_右键单击表项
| |
| |------ _超级列表框_进程信息_当前表项被改变
| |
| |------ _超级列表框_线程信息_右键单击表项
| |
| |------ _超级列表框_模块信息_右键单击表项
| |
| |------ _刷新窗口_被选择
| |
| |------ _隐藏_被选择
| |
| |------ _还原_被选择
| |
| |------ _最小化_被选择
| |
| |------ _最大化_被选择
| |
| |------ _转到进程_被选择
| |
| |------ _结束窗口_被选择
| |
| |------ _超级列表框_窗口_被双击
| |
| |------ _超级列表框_隐藏窗口_被双击
| |
| |------ _按钮_结束窗口_被单击
| |
| |------ _按钮_隐藏_被单击
| |
| |------ _时钟_窗口_周期事件
| |
| |------ _刷新窗口按钮_被单击
| |
| |------ _按钮_隐藏窗口_被单击
| |
| |------ _按钮_隐藏全部窗口_被单击
| |
| |------ _按钮_全部还原窗口_被单击
| |
| |------ _超级列表框_窗口_右键单击表项
| |
| |------ _超级列表框_窗口_当前表项被改变
| |
| |------ _按钮3_被单击
| |
| |------ _输出编辑框_按下某键
| |
| |------ _输入组合框_列表项被选择
| |
| |------ _复制_被选择
| |
| |------ _编辑框_激活_放开某键
| |
| |------ _标签_鼠标句柄_反馈事件
| |
| |------ _时钟_鼠标句柄_周期事件
| |
| |------ _标签_窗口句柄_鼠标右键被按下
| |
| |------ _标签_星号密码_鼠标右键被按下
| |
| |------ _标签_窗口类名_鼠标右键被按下
| |
| |------ _标签_窗口文本_鼠标右键被按下
| |
| |------ _按钮_应用计划_被单击
| |
| |------ _选择框_开始监视API_被单击
| |
| |------ _时钟_计划_周期事件
| |
| |------ _选择框_激活_被单击
| |
| |------ _时钟_激活_周期事件
| |
| |------ _编辑框1_失去焦点
| |
| |------ _超级列表框_托盘_被双击
| |
| |------ _按钮_添加托盘监视_被单击
| |
| |------ _按钮_删除托盘监视_被单击
| |
| |------ _超级列表框_监视列表_右键单击表项
| |
| |------ _按钮_应用托盘监视_被单击
| |
| |------ _时钟_托盘_周期事件
| |
| |------ 监视子程序
| |
| |------ _按钮_隐藏托盘_被单击
| |
| |------ _组合框1_列表被关闭
| |
| |------ _显示托盘_被选择
| |
| |------ _隐藏托盘_被选择
| |
| |------ _按钮_显示托盘_被单击
| |
| |------ _按钮_开机自启动_被单击
| |
| |------ _按钮_托盘全部显示_被单击
| |
| |------ _超级列表框_隐藏窗口_当前表项被改变
| |
| |------ _超级列表框_隐藏窗口_右键单击表项
| |
| |------ _超级列表框_隐藏窗口_左键单击表项
| |
| |------ _按钮1_被单击
| |
| |------ _超级列表框_进程信息_获得焦点
| |
| |------ __启动窗口_尺寸被改变
| |
| |------ _超级列表框_托盘_右键单击表项
| |
| |------ _刷新_被选择
| |
| |------ _添加到监视列表_托盘_被选择
| |
| |------ _添加到监视列表_窗口_被选择
| |
| |------ _添加到监视列表_被选择
| |
| |------ _按钮_隐藏托盘1_被单击
| |
| |------ _组合框2_列表项被选择
| |
| |------ _按钮2_被单击
| |
| |------ _超级按钮_退出_被单击
| |
| |------ _超级按钮_隐藏_被单击
| |
| |------ _透明标签_窗口标题_鼠标左键被按下
| |
| |------ _透明标签_窗口标题_鼠标左键被放开
| |
| |------ _时钟_移动_周期事件
| |
| |------ _透明标签_窗口标题_鼠标右键被放开
| |
| |------ _标签_右边_鼠标左键被按下
| |
| |------ _标签_右边_鼠标左键被放开
| |
| |------ _标签_左边_鼠标左键被按下
| |
| |------ _标签_左边_鼠标左键被放开
| |
| |------ _高级选择夹1_鼠标左键被按下
| |
| |------ _高级选择夹1_鼠标左键被放开
| |
| |------ _状态条1_鼠标左键被按下
| |
| |------ _状态条1_鼠标左键被放开
| |
| |------ _透明标签_窗口标题_被双击
| |
| |------ _标签_顶边_鼠标左键被按下
| |
| |------ _标签_顶边_鼠标左键被放开
| |
| |------ __启动窗口_鼠标左键被按下
| |
| |------ __启动窗口_鼠标左键被放开
| |
| |------ 鼠标左键被按下
| |
| |------ _高级选择夹1_将改变子夹
| |
| |------ _超级列表框_监视列表_开始编辑
| |
| |------ _超级列表框_监视列表_结束编辑
| |
| |------ _超级列表框_隐藏进程_右键单击表项
| |
| |------ _超级列表框_隐藏进程_当前表项被改变
| |
| |------ _超级列表框_隐藏进程_获得焦点
| |
| |
======窗口_新任务程序集
| |
| |------ _按钮_确定_被单击
| |
| |------ 运行文件
| |
| |------ 检查记录
| |
| |------ _按钮3_被单击
| |
| |------ _按钮2_被单击
| |
| |------ _组合框1_编辑内容被改变
| |
| |------ _组合框1_按下某键
| |
| |------ _组合框1_将弹出列表
| |
| |------ _组合框1_列表项被选择
| |
| |------ _窗口新任务_创建完毕
| |
| |
======接口程序集
| |
| |------ 取星号密码
| |
| |------ 添加到监视列表
| |
| |------ 到进程ID
| |
| |------ 到完整路径
| |
| |------ 取标准八位十六进制文本
| |
| |------ 安装全局钩子
| |
| |------ HOOK_API
| |
| |------ WriteApi
| |
| |------ 枚举父窗口过程
| |
| |------ 枚举子窗口过程
| |
| |------ xx
| |
| |------ API取窗口标题
| |
| |------ 取可见句柄列表
| |
| |------ 枚举窗口过程
| |
| |------ 寻找桌面窗口句柄
| |
| |------ 寻找任务栏句柄
| |
| |------ 寻找开始按钮句柄
| |
| |------ 寻找系统时钟句柄
| |
| |------ api取系统进程文件名
| |
| |------ api_取窗口类名
| |
| |------ 是否显示程序界面
| |
| |------ 是否能重复运行
| |
| |------ 取文件关联图标
| |
| |------ 分割指定文本
| |
| |------ 复制透明标签
| |
| |------ 枚举父窗口ID
| |
| |------ 查找关联文件名
| |
| |
======托盘管理程序集
| |
| |------ 取托盘
| |
| |------ 检查自启动
| |
| |------ 读托盘监视文件
| |
| |------ 保存文件
| |
| |------ 隐藏托盘图标
| |
| |
======隐藏窗口类
| |
| |------ _初始化
| |
| |------ _初始化类
| |
| |------ _销毁
| |
| |------ 隐藏窗口
| |
| |------ 还原窗口
| |
| |------ 全部还原
| |
| |------ 刷新活动窗口
| |
| |------ 刷新隐藏窗口
| |
| |------ 全部隐藏
| |
| |------ 结束指定进程
| |
| |------ 隐藏或结束窗口
| |
| |------ 通过句柄取图片索引
| |
| |------ 隐藏指定进程的窗口
| |
| |
======进程管理类
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ _初始化类
| |
| |------ 结束系统进程
| |
| |------ 显示文件版本信息
| |
| |------ api取文件版本信息
| |
| |------ 查看文件属性
| |
| |------ 刷新线程列表
| |
| |------ 刷新模块引用
| |
| |------ 刷新进程信息
| |
| |------ 加入隐藏进程
| |
| |------ 远程执行API
| |
| |------ api取系统进程信息
| |
| |------ 刷新进程信息2
| |
| |
======窗口程序集2
| |
| |------ _窗口_创建完毕
| |
| |------ 枚举父窗口过程_
| |
| |------ 枚举子窗口过程_
| |
| |------ _树型框1_项目被选择
| |
| |------ _选择框_隐藏_被单击
| |
| |------ _树型框1_右键单击项目
| |
| |------ _隐藏窗口_被选择
| |
| |------ _显示窗口_被选择
| |
| |------ _转到进程_被选择
| |
| |------ _添加到监视列表_被选择
| |
| |------ _结束窗口_被选择
| |
| |------ _按钮_刷新_被单击
| |
| |------ _按钮_关闭_被单击
| |
| |------ _树型框1_获得焦点
| |
| |------ _时钟1_周期事件
| |
| |------ _标签_左边_反馈事件
| |
| |------ _超级按钮_退出_被单击
| |
| |------ _透明标签_窗口标题_鼠标左键被按下
| |
| |------ _透明标签_窗口标题_鼠标左键被放开
| |
| |------ _时钟_移动_周期事件
| |
| |------ _窗口_鼠标左键被按下
| |
| |------ _窗口_鼠标左键被放开
| |
| |
======调用的Dll
| |
| |---[dll]------ 创建进程快照
| |
| |---[dll]------ 开始进程快照
| |
| |---[dll]------ 关闭句柄
| |
| |---[dll]------ 继续进程快照
| |
| |---[dll]------ 获取模块完整路径
| |
| |---[dll]------ 打开进程句柄
| |
| |---[dll]------ 继续模块快照
| |
| |---[dll]------ 开始模块快照
| |
| |---[dll]------ 内存复制
| |
| |---[dll]------ 判断取版本信息缓冲区大小
| |
| |---[dll]------ 取模块文件版本信息
| |
| |---[dll]------ 取版本信息
| |
| |---[dll]------ 结束进程
| |
| |---[dll]------ API_取得进程完整路径
| |
| |---[dll]------ 取得Win目录_
| |
| |---[dll]------ 判断窗口状态_
| |
| |---[dll]------ 判断窗口可见性_
| |
| |---[dll]------ ShowWindow
| |
| |---[dll]------ 判断窗口句柄_
| |
| |---[dll]------ WindowFromPoint
| |
| |---[dll]------ SendMessage
| |
| |---[dll]------ PostMessage
| |
| |---[dll]------ 取进程标识符
| |
| |---[dll]------ 修改虚拟保护
| |
| |---[dll]------ 返回虚拟信息
| |
| |---[dll]------ 取程序或DLL句柄
| |
| |---[dll]------ 取DLL函数地址
| |
| |---[dll]------ 写内存字节
| |
| |---[dll]------ api_GetProcAddress
| |
| |---[dll]------ api_SetWindowsHookEx
| |
| |---[dll]------ 释放动态链接库_
| |
| |---[dll]------ api_LoadLibraryA
| |
| |---[dll]------ api_ExitWindowsEx
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ 释放内存空间
| |
| |---[dll]------ 申请内存空间
| |
| |---[dll]------ 枚举窗口
| |
| |---[dll]------ EnumChildWindows
| |
| |---[dll]------ EnableWindow
| |
| |---[dll]------ 关闭全局钩子
| |
| |---[dll]------ 系统对话框
| |
| |---[dll]------ 退出线程_
| |
| |---[dll]------ 取进程内存信息_
| |
| |---[dll]------ 运行远程线程
| |
| |---[dll]------ 监测对象
| |
| |---[dll]------ api_PostThreadMessage
| |
| |---[dll]------ 取菜单_
| |
| |---[dll]------ 取窗口标题_
| |
| |---[dll]------ 寻找顶级窗口_
| |
| |---[dll]------ 寻找子窗口_
| |
| |---[dll]------ api_OpenProcess
| |
| |---[dll]------ 解除鼠标限制
&nbs
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。