开源删帖
功能说明:
本程序是一段基于易语言(EPL)开发的源代码,其主要功能和定位是一个用于系统底层开发的**工具类库与基础框架**。从代码结构来看,它并非一个面向最终用户的完整应用软件(如计算器或游戏),而是一个供开发者调用的“功能集合”或“辅助插件”。程序通过三个主要的程序集(调试类、函数类、内存类)对 Windows 底层的 API 进行了封装,实现了对动态链接库(DLL)、进程内存、以及汇编指令的直接操控能力。这类代码通常用于高级易语言开发、游戏辅助制作、软件逆向分析、安全工具开发或系统优化脚本中。
以下是对该程序各部分功能的详细总结:
### 1. 程序整体架构
程序由三个核心程序集组成,逻辑清晰,分工明确:
* **调试类**:负责程序的入口初始化及基础功能测试。
* **函数类**:专注于外部模块加载、API 地址获取及子程序直接调用机制。
* **内存类**:专注于进程内存的申请、读写、保护及操作。
这种模块化设计表明该程序旨在提供一个稳定的底层 API 调用环境,让上层应用无需关心具体的操作系统细节即可进行底层交互。
### 2. 各程序集功能详解
#### 2.1 调试类(调试与测试)
此部分定义了程序的启动入口 `_启动子程序`。
* **信息输出**:程序启动后会运行`临时子程序 `,输出一串特定的调试文本“爱易网络技术交流群 65288577”,这通常是开发者留下的联系方式或水印。
* **代理测试逻辑**:在`子程序 测试`中,包含了一段注释掉的代码,涉及 HTTP 请求(`http://best-proxies.ru/azenv.php`)和多组 IP 代理列表。这说明该程序原本可能具备网络代理检测或使用的功能,但在当前版本中被注释,仅作为演示或预留。
* **文件下载测试**:`测试下载文件`子程序调用了网络功能,尝试从指定网址下载一个 TXT 文件到桌面。这是一个典型的功能验证代码,用于测试网络组件是否正常工作。
#### 2.2 函数类(DLL 与 API 调用)
这是程序中最核心的逻辑部分之一,提供了强大的外部代码执行能力。
* **DLL 动态加载与管理**:
* `函数_载入DLL`:封装了 Windows API `_装载DLL`,允许程序在运行时动态加载外部的 DLL 文件,而不需要在编译期链接。
* `函数_卸载DLL`:封装了 `_释放DLL`,用于在不再需要时释放资源。
* `函数_取函数指针` & `函数_取函数指针_序号`:通过 DLL 模块句柄,根据函数名或函数序号获取对应函数的内存地址。这是实现插件化架构的关键步骤。
* `函数_取指针` & `函数_取指针_序号`:提供了更便捷的封装,一步完成加载、获取地址、卸载的过程,防止 DLL 句柄泄露。
* **底层子程序调用(Invoke)**:
* `调用子程序__` & `调用子程序_文本单参` & `调用子程序_`:这些子程序使用了易语言的`置入代码`(即嵌入汇编指令)。它们允许开发者传入一个函数指针地址,并传递多个参数(最多 10 个),直接在当前进程中执行远程代码。
* 特别是`调用子程序_`,其内部汇编代码极为复杂,支持返回值读取和复杂的参数栈平衡处理,标注了作者为"By:叮咚茶”。这使得易语言能够像 C++ 一样调用任意内存地址的函数,极大地扩展了易语言的能力边界。
* **钩子与窗口回调**:
* `钩子回调`与`窗口回调`:封装了 Windows 消息循环中的钩子链(NextHook)和窗口过程回调(CallWindowProcA)。这意味着该程序支持拦截系统消息、修改窗口行为,是开发按键精灵类游戏外挂或界面监控工具的常见组件。
#### 2.3 内存类(内存操作与管理)
这部分提供了一套完整的内存管理接口,完全绕过易语言自带的高级变量控制,直接操作物理内存地址。
* **内存分配与释放**:
* `内存_申请`:封装了 `LocalAlloc` API,支持申请固定内存、清空内存等多种模式。
* `内存_释放`:封装了 `LocalFree`,安全地释放已申请的内存。
* `内存_尺寸`:查询已分配内存的大小。
* **内存权限控制**:
* `内存_保护`:封装了 `VirtualProtect` API。可以修改指定内存区域的属性(如从只读改为可读写)。这是进行内存修改(如游戏改数值)、注入代码前的必要步骤,因为大多数代码段和数据段默认是不可写入的。
* **数据读写**:
* `内存_读整数 `、`内存_写整数`、`内存_读短整数`、` 内存_写短整数`:利用内嵌汇编指令,实现了在不同内存偏移量下的快速数据读写。相比使用标准易语言函数,这种汇编方式效率更高且可控性更强。
* `内存_复制`:封装了 `RtlMoveMemory`(类似于 C 的 memcpy),用于大块的内存数据搬运。
* **性能优化**:
* `内存_优化`:调用 `SetProcessWorkingSetSize`,强制将工作集最小化,常用于释放程序占用的物理内存,减少被杀毒软件或系统回收的概率。
### 3. 技术特点分析
* **混合编程模式**:代码大量使用了“置入代码”(嵌入式汇编),这意味着它在易语言的基础上引入了底层汇编的特性。这种方式牺牲了一定的跨平台性和可读性,但换取了对硬件和操作系统底层的精确控制。
* **API 抽象层**:它将大量的 Win32 原生 API(如 LoadLibrary, VirtualProtect, CallWindowProc)屏蔽在子程序之后,使得上层调用者只需关注业务逻辑,而无需记忆繁琐的 API 参数定义。
* **安全性风险**:此类代码具有双重用途。一方面它是开发系统的有力工具;另一方面,由于其具备挂钩窗口、读写任意内存、加载任意 DLL 的能力,常被恶意软件、游戏外挂或破解补丁采用。因此,在某些安全扫描环境中,包含此类特征码的程序可能会被标记为可疑。
### 4. 总结与应用场景
综上所述,这段易语言代码是一个**高度专业化的系统底层开发库**。它不是一个独立运行的终端产品,而是为特定目的服务的工具箱。
**可能的应用场景包括:**
1. **游戏辅助开发**:利用内存读写功能查找并修改游戏数据,利用窗口回调截获输入信号。
2. **软件加固与破解**:通过挂钩函数和保护内存区域来分析或绕过软件的验证逻辑。
3. **自动化测试工具**:模拟底层操作,实现比常规 UI 自动化更彻底的测试覆盖。
4. **系统优化工具**:清理内存碎片,优化进程优先级和内存分配策略。
5. **插件系统构建**:通过 DLL 加载和函数指针调用机制,实现宿主程序与第三方插件的动态连接。
该程序的核心价值在于打破了易语言解释型执行的限制,通过引入汇编和底层 API 调用,赋予了易语言开发者接近 C/C++ 级别的系统控制权。对于需要深入 Windows 内核交互的开发人员来说,这是一套非常实用的基础代码参考。但在使用时,也应注意遵守相关法律法规,不得用于非法篡改他人软件或侵犯知识产权的行为。
======调试类
| |
| |------ _启动子程序
| |
| |------ _临时子程序
| |
| |------ 备注
| |
| |------ 测试
| |
| |
======函数类
| |
| |------ 函数_载入DLL
| |
| |------ 函数_卸载DLL
| |
| |------ 函数_取函数指针
| |
| |------ 函数_取函数指针_序号
| |
| |------ 函数_取指针
| |
| |------ 函数_取指针_序号
| |
| |------ 钩子回调
| |
| |------ 窗口回调
| |
| |------ 调用子程序__
| |
| |------ 调用子程序_文本单参
| |
| |------ 调用子程序_
| |
| |
======内存类
| |
| |------ 内存_申请
| |
| |------ 内存_释放
| |
| |------ 内存_尺寸
| |
| |------ 内存_保护
| |
| |------ 内存_读整数
| |
| |------ 内存_写整数
| |
| |------ 内存_写短整数
| |
| |------ 内存_读短整数
| |
| |------ 内存_复制
| |
| |------ 内存_优化
| |
| |------ 内存_写字节集
| |
| |------ 内存_读字节集
| |
| |------ 内存_写文本
| |
| |------ 内存_读文本
| |
| |------ 原子_加1
| |
| |------ 原子_减1
| |
| |------ 取子程序地址
| |
| |------ 取子程序真实地址
| |
| |------ 取指针_字节集
| |
| |------ 取指针_文本型
| |
| |------ 取指针_整数型
| |
| |------ 取指针_逻辑型
| |
| |------ 取指针_整数数组
| |
| |------ 分割线
| |
| |------ _申请内存
| |
| |------ _释放内存
| |
| |------ _内存写字节集
| |
| |------ _内存读字节集
| |
| |
======窗口类
| |
| |------ 取窗口标题_
| |
| |------ 取窗口类名
| |
| |------ 置窗口标题
| |
| |------ 信息框_
| |
| |------ 信息框2_
| |
| |------ 窗口销毁
| |
| |------ 窗口销毁_
| |
| |------ 取窗口边框尺寸
| |
| |------ 置窗口边框尺寸
| |
| |------ 取窗口信息
| |
| |------ 窗口最大化
| |
| |------ 窗口最小化
| |
| |------ 总在最前
| |
| |------ 禁止
| |
| |------ 窗口置父
| |
| |------ 取父窗口句柄
| |
| |------ 窗口重画
| |
| |------ 接管窗口消息
| |
| |
======键鼠类
| |
| |------ 键鼠_取键状态
| |
| |------ 键鼠_取功能键状态
| |
| |------ 移动鼠标
| |
| |------ 按键_
| |
| |------ 监视热键
| |
| |------ 撤销监视
| |
| |------ 热键过程
| |
| |
======系统类
| |
| |------ 取CPU核心数
| |
| |------ 取目录_windows
| |
| |------ 取目录_System32
| |
| |------ 取目录_桌面
| |
| |------ 取特殊目录
| |
| |------ 取操作系统版本
| |
| |------ 打开指定网址_1
| |
| |------ 打开指定网址_2
| |
| |------ 系统_写启动项
| |
| |------ 目录是否存在
| |
| |------ 取屏幕宽度_
| |
| |------ 取屏幕高度_
| |
| |
======进程类
| |
| |------ 提升进程权限
| |
| |------ 提升进程权限D
| |
| |------ 创建进程
| |
| |------ 取自进程ID
| |
| |------ 取自进程伪ID
| |
| |------ 取进程路径
| |
| |------ 取进程模块
| |
| |------ 取进程ID
| |
| |------ 进程是否有效
| |
| |------ 进程枚举
| |
| |------ 进程结束
| |
| |------ 进程隐藏
| |
| |------ 取进程EProcess
| |
| |------ 十六文本至长整数
| |
| |------ 读物理内存
| |
| |------ 写物理内存
| |
| |------ 打开进程
| |
| |
======线程类
| |
| |------ 启动线程_
| |
| |------ 销毁线程_
| |
| |------ 关闭句柄
| |
| |------ 线程挂起
| |
| |------ 线程恢复
| |
| |------ 线程取状态
| |
| |------ 线程取返回值
| |
| |------ 线程等待
| |
| |------ 置优先级
| |
| |------ 取优先级
| |
| |------ 取自线程ID
| |
| |------ 取自线程伪ID
| |
| |------ 创建进入许可证_
| |
| |------ 进入许可区_
| |
| |------ 退出许可区_
| |
| |------ 删除进入许可证_
| |
| |------ 线程池_启动
| |
| |------ 线程池_工作线程
| |
| |------ 线程池_加入工作
| |
| |------ 线程池_销毁
| |
| |------ 线程池_取任务数
| |
| |------ 线程池_全部暂停
| |
| |------ 线程池_全部运行
| |
| |
======HTTP类
| |
| |------ GET读文件
| |
| |------ POST读文件
| |
| |------ 下载文件
| |
| |------ HTTP_内部使用
| |
| |------ HTTP_补充协议头
| |
| |------ HTTP_状态解析
| |
| |------ 取域名
| |
| |------ 取端口
| |
| |------ 取页面地址
| |
| |------ 取IP地址_
| |
| |------ 转换URL编码
| |
| |------ 转换URL解码
| |
| |------ 置cookies
| |
| |------ 清空cookies
| |
| |------ 取cookies
| |
| |------ 时间到GMT格式_
| |
| |------ GMT格式到时间_
| |
| |------ 取时间戳_Unix
| |
| |------ 时间到时间戳
| |
| |
======GDIS类
| |
| |------ 取窗口场景设备
| |
| |
======转换类
| |
| |------ 十六到十
| |
| |------ 十到十六
| |
| |------ 去除首部零
| |
| |------ 到十六进制文本
| |
| |------ 转换图像格式
| |
| |------ 到十进制数
| |
| |------ IP到整数
| |
| |------ IP到文本
| |
| |------ 坐标转范围
| |
| |------ 范围转坐标
| |
| |------ URL中文编码
| |
| |------ URL编码
| |
| |------ URL解码
| |
| |------ Base64编码
| |
| |------ Base64解码
| |
| |------ RC4_加密
| |
| |------ RC4_解密
| |
| |------ rc4自动识别
| |
| |------ Ansi转Unicode
| |
| |------ Unicode转Ansi
| |
| |------ Utf8转Unicode
| |
| |------ Unicode转Utf8
| |
| |------ Ansi转Utf8
| |
| |------ Utf8转Ansi
| |
| |
======爱易链
| |
| |------ 爱易链创建
| |
| |------ 爱易链压入
| |
| |------ 爱易链弹出
| |
| |------ 爱易链销毁
| |
| |
======堆栈类
| |
| |------ 栈_初始化
| |
| |------ 栈_压入
| |
| |------ 栈_弹出
| |
| |------ 栈_清空
| |
| |------ 栈_数量
| |
| |------ 堆_初始化
| |
| |------ 堆_取出
| |
| |------ 堆_释放
| |
| |------ 堆_销毁
| |
| |
======拖放类
| |
| |------ 注册文件拖放事件
| |
| |------ 文件拖放函数
| |
| |------ 撤消文件拖放事件
| |
| |
======类用类
| |
| |------ 子程序1
| |
| |
======数据类
| |
| |------ 字节到文本
| |
| |------ 取小数后两位
| |
| |------ 到16进制
| |
| |------ 取中间文本
| |
| |------ GET参数解析
| |
| |------ 填充字节集
| |
| |------ 还原字节集
| |
| |------ 单字节换行符替换
| |
| |------ 还原字节集2
| |
| |------ 查看字节集2
| |
| |------ 查看字节集
| |
| |------ 取中间文本_
| |
| |
======句柄类
| |
| |------ 枚举子窗口
| |
| |------ 取任务栏句柄
| |
| |------ 取窗口进程
| |
| |------ 发送消息_
| |
| |------ 投递消息_
| |
| |------ 取前台窗口句柄
| |
| |------ 取前台活动窗口
| |
| |------ 取焦点句柄
| |
| |------ 编辑框_发送文本
| |
| |------ 窗口闪动
| |
| |------ 取坐标句柄
| |
| |------ 取鼠标所在位置句柄
| |
| |------ 取进程窗口
| |
| |
======内核类
| |
| |------ 创建内核对象
| |
| |------ 等待对象信号
| |
| |------ 等待内核对象
| |
| |------ 发送完成端口数据
| |
| |------ 创建同步事件对象
| |
| |------ 打开同步事件对象
| |
| |
======加解密
| |
| |------ MD5
| |
| |------ GZIP压缩
| |
| |------ GZIP解压
| |
| |------ GZIP初始化
| |
| |------ QEHash
| |
| |
======其它类
| |
| |------ 调试输出字节集
| |
| |------ _模块_调用转向
| |
| |------ 设置定时器
| |
| |------ 销毁定时器
| |
| |------ 取随机颜色
| |
| |------ 生成汇编代码
| |
| |------ 取时间戳
| |
| |
======钩子类
| |
| |------ _销毁
| |
| |------ 取地址
| |
| |------ 卸载
| |
| |------ 安装
| |
| |------ 调用原函数
| |
| |
======sock类
| |
| |------ _初始化
| |
| |------ 预载入函数
| |
| |------ 安装socket
| |
| |------ 卸载socket
| |
| |------ 创建
| |
| |------ 连接
| |
| |------ 阻塞
| |
| |------ 销毁
| |
| |------ 取回错误
| |
| |------ IP到整数
| |
| |------ IP到文本
| |
| |------ 端口转换
| |
| |------ 可写检查
| |
| |------ 可读检查
| |
| |------ 错误检查
| |
| |
======映射表
| |
| |------ _初始化
| |
| |------ _销毁
| |
| |------ 添加
| |
| |------ 是否存在
| |
| |------ 删除
| |
| |------ 删除全部
| |
| |------ 取所有值
| |
| |------ 取所有键
| |
| |------ 取项目数
| |
| |------ 取值
| |
| |------ 置键
| |
| |------ 置值
| |
| |------ 置匹配模式
| |
| |------ 取匹配模式
| |
| |
======字节流
| |
| |------ 创建
| |
| |------ 销毁
| |
| |------ 取句柄
| |
| |------ 置句柄
| |
| |------ 扩容
| |
| |------ 加入指针
| |
| |------ 加入字节集
| |
| |------ 取数据
| |
| |------ 取数据_指定
| |
| |------ 取长度
注:本站源码主要来源于网络收集。如有侵犯您的利益,请联系我们,我们将及时删除!
部分源码可能含有危险代码,(如关机、格式化磁盘等),请看清代码在运行。
由此产生的一切后果本站均不负责。源码仅用于学习使用,如需运用到商业场景请咨询原作者。
使用本站源码开发的产品均与本站无任何关系,请大家遵守国家相关法律。