360防杀进程源码测试成功
功能说明:本程序是使用易语言编写的一个系统底层工具,主要功能涉及对 Windows 系统核心动态链接库(kernel32.dll)中的关键函数进行内存修改、全局钩子安装以及注册项管理。从代码逻辑来看,该程序旨在通过修改特定 API 函数的调用行为来实现某种“防杀”(对抗杀毒软件检测)的目的。
主要功能模块总结如下:
1. **进程信息管理**:
程序包含一个名为“刷新进程信息”的子程序,该函数利用 CreateToolhelp32Snapshot(创建进程快照)、Process32First(开始进程快照)和 Process32Next(继续进程快照)等系统 API,获取当前系统中所有运行的进程列表,并将这些信息存储到数组中。这是为了后续对多个目标进程进行内存操作做准备。
2. **API 内存修补与还原**:
这是程序的核心功能之一。
- “修改 API 首地址”子程序:允许指定目标进程句柄、API 函数地址及要写入的字节内容。它首先查询目标内存区域的属性(使用 VirtualQueryEx),然后修改内存页保护权限为“可读写”(PAGE_EXECUTE_READWRITE),接着向指定内存地址写入新的指令字节(写内存字节),最后将保护权限恢复为只读。这通常用于在进程中注入 Shellcode 或打补丁。
- “还原 API"子程序:遍历所有运行中的进程,针对之前备份过的 API 原始数据(API_BAK),逆向执行上述修改过程,将 API 函数的内存内容恢复到原始状态,从而解除修改。
- 在主程序启动时(__启动窗口_创建完毕),程序会自动获取 kernel32.dll 中 OpenProcess 函数的地址,并备份其前 8 个字节到变量 API_BAK 中。OpenProcess 是用于打开其他进程句柄的关键函数,常被安全软件用于扫描恶意进程。
3. **全局钩子机制**:
程序通过“安装全局钩子”子程序加载外部的 DLL 文件(代码中硬编码路径为 DEP_hook.dll)。它使用了 SetWindowsHookEx 接口(#WH_GETMESSAGE)来安装消息钩子。在安装成功后,程序会弹出信息框提示“恭喜,防杀成功!!”。这表明该程序依赖外部钩子 DLL 配合内核级别的 API 修改来拦截系统消息或进程操作。
4. **用户交互与持久化**:
- **按钮 1(激活)**:点击后会将当前程序路径写入注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\NND~1),这可能用于开机自启或身份标识。随后尝试安装全局钩子。如果成功,则标记还原标志位,提示用户防护已生效。
- **按钮 2(关闭/还原)**:点击后检查标志位,若为真则关闭全局钩子,释放 DLL 资源,调用还原 API 功能修复系统内存,并从注册表中删除刚才添加的键值。提示用户“还原成功”。
- **程序退出处理**:在窗口销毁(__启动窗口_将被销毁)时,同样会触发清理操作,确保挂钩被移除且内存被还原。
5. **技术实现细节**:
程序调用了多个 Win32 API 的导入命令,包括 VirtualProtectEx(修改内存保护)、VirtualQueryEx(查询内存信息)、GetModuleHandleA(获取模块句柄)、GetProcAddress(获取函数地址)以及相关的进程句柄操作。这些操作直接干预了操作系统内核对象和用户态内存,属于较高级别的技术手段。
综上所述,该程序是一个典型的系统底层的 Hook 及 API 修补工具。它通过备份并篡改系统关键函数 OpenProcess 的机器码,结合全局消息钩子和注册表持久化,试图达到规避安全软件监控的效果。此类代码常见于游戏外挂制作、系统调试工具或网络安全攻防演练中,但也可能被用于恶意软件的免杀处理。用户在使用或分析此类代码时应注意合法合规性及对系统稳定性的潜在风险。
======接口程序集
| |
| |------ 刷新进程信息
| |
| |------ 修改API首地址
| |
| |------ 还原API
| |
| |
======窗口程序集
| |
| |------ __启动窗口_创建完毕
| |
| |------ _按钮1_被单击
| |
| |------ 安装全局钩子
| |
| |------ _按钮2_被单击
| |
| |------ __启动窗口_将被销毁
| |
| |
======调用的Dll
| |
| |---[dll]------ 修改虚拟保护
| |
| |---[dll]------ 返回虚拟信息
| |
| |---[dll]------ 取程序或DLL句柄
| |
| |---[dll]------ 取DLL函数地址
| |
| |---[dll]------ 写内存字节
| |
| |---[dll]------ api_ExitWindowsEx
| |
| |---[dll]------ 创建进程快照
| |
| |---[dll]------ 开始进程快照
| |
| |---[dll]------ 继续进程快照
| |
| |---[dll]------ 取当前进程伪句柄
| |
| |---[dll]------ 释放内存空间
| |
| |---[dll]------ 申请内存空间
| |
| |---[dll]------ 载入动态链接库
| |
| |---[dll]------ 返回函数地址
| |
| |---[dll]------ 安装钩子过程
| |
| |---[dll]------ 关闭全局钩子
| |
| |---[dll]------ 释放动态链接库
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。