开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 524|回复: 16
收起左侧

[已解决] 怎么把CE的AOB功能 用易语言写出来【2】

 关闭 [复制链接]
结帖率:80% (4/5)
发表于 2025-10-26 21:36:38 | 显示全部楼层 |阅读模式   上海市上海市
200精币
如题
怎么把CE的AOB功能用易语言写出来
之前发布了两个求助帖子
有两个大佬老师回复了,让我了解了原理
(ps:刚接触易语言小白)


主要分为两部分(目前的理解)
第一:通过特征码找到地址
第二:hook 修改(申请内存➡️修改申请的内存➡️跳转到申请内存地址➡️执行完后跳回源代码执行)

但是有些代码没有看太懂

因为是刚接触易语言,发现有很多模块,每个模块的写法都不一样
有一部分模块看不懂

我想解决的问题是CE找到 特征码  然后通过易语言写出来
(目前易语言水平:只会写一些简单的jz改数值的功能:还是在b站up主哪学的

(因为之前的帖子,大佬讲了好多,想把精币给大佬,就重新开了个求助帖子)

最佳答案

查看完整内容

搜索的话那不是一个一个字节的对比吗?模块里没有搜索的功能吗? 补充内容 (2025-10-26 22:57): http://esdn.125.la/title-45254.html 内存读写2.3版-易语言知识库

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值

签到天数: 2 天

发表于 2025-10-26 21:36:39 | 显示全部楼层   广西壮族自治区柳州市
搜索的话那不是一个一个字节的对比吗?模块里没有搜索的功能吗?

补充内容 (2025-10-26 22:57):
http://esdn.125.la/title-45254.html
内存读写2.3版-易语言知识库

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2025-10-26 22:08:43 | 显示全部楼层   江西省南昌市
哪个大神不是加了你私聊吗
回复

使用道具 举报

结帖率:80% (4/5)
 楼主| 发表于 2025-10-26 22:12:37 | 显示全部楼层   上海市上海市
RainCharm 发表于 2025-10-26 22:08
哪个大神不是加了你私聊吗

没有解决
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

发表于 2025-10-26 23:12:45 | 显示全部楼层   江西省南昌市
大概是这样子吧
QQ截图20251026231121.png
回复

使用道具 举报

结帖率:100% (8/8)

签到天数: 2 天

发表于 2025-10-27 00:22:21 | 显示全部楼层   广东省汕尾市
可以加我试试
回复

使用道具 举报

结帖率:96% (108/112)

签到天数: 2 天

发表于 2025-10-27 07:02:02 | 显示全部楼层   河北省廊坊市
.版本 2

.子程序 内存_特征码定位, 长整数型, , 返回十进制特征码定位地址
.参数 进程句柄, 整数型, , 进程ID
.参数 搜索内容, 文本型, , 特征码字符串,如:“5F ?? ?? 83 C4 ** C2 04 00 6A 3D”
.参数 起始地址, 文本型, , 开始的地址,默认为00000000
.参数 终止地址, 文本型, , 结束的地址,默认为07FFFFFF
.局部变量 局_起始地址, 整数型
.局部变量 局_终止地址, 整数型
.局部变量 局_内存属性, 类型_内存属性
.局部变量 局_字节集数组, 字节型, , "0"
.局部变量 局_a, 整数型
.局部变量 局_指针数据, 字节集
.局部变量 局_b, 整数型
.局部变量 局_计数, 整数型
.局部变量 局_搜索新地址, 整数型
.局部变量 局_中间文本, 文本型
.局部变量 局_实际长度, 整数型
.局部变量 局_搜索结果, 长整数型


重定义数组 (局_字节集数组, 假, 取文本长度 (搜索内容) ÷ 2)
.计次循环首 (取数组成员数 (局_字节集数组), 局_a)
    局_中间文本 = 取文本中间 (搜索内容, 局_a × 2 - 1, 2)
    局_字节集数组 [局_a] = 到字节 (十六到十 (局_中间文本))
.计次循环尾 ()

局_起始地址 = 进制_十六到十 (起始地址)
局_终止地址 = 进制_十六到十 (终止地址)
.判断循环首 (VirtualQueryEx (进程句柄, 局_起始地址, 局_内存属性, 28) ≠ 0)
    .如果真 (局_内存属性.保护 = 4 或 局_内存属性.保护 = 32 或 局_内存属性.保护 = 64)  ' 4=允许读写 ;32=允许读写和读取 ;64=允许读写和执行代码
        局_指针数据 = 取空白字节集 (局_内存属性.区域长度)
        ReadProcessMemory_字节集 (进程句柄, 局_起始地址, 局_指针数据, 局_内存属性.区域长度, 局_实际长度)
        .计次循环首 (取字节集长度 (局_指针数据), 局_a)
            .计次循环首 (取数组成员数 (局_字节集数组), 局_b)
                .如果真 (局_a + 局_b ≤ 取字节集长度 (局_指针数据))
                    .如果 (局_字节集数组 [局_b] = 222)
                        局_计数 = 局_计数 + 1
                        局_搜索新地址 = 局_起始地址 + 局_a
                    .否则
                        .如果 (局_字节集数组 [局_b] = 局_指针数据 [局_a + 局_b])
                            局_计数 = 局_计数 + 1
                            局_搜索新地址 = 局_起始地址 + 局_a
                            .如果真 (局_计数 = 取数组成员数 (局_字节集数组))
                                局_搜索结果 = 局_搜索新地址
                                返回 (局_搜索结果)
                            .如果真结束

                        .否则
                            局_计数 = 0
                            跳出循环 ()
                        .如果结束

                    .如果结束

                .如果真结束

            .计次循环尾 ()
        .计次循环尾 ()
    .如果真结束
    .如果真 (局_起始地址 > 局_终止地址)
        跳出循环 ()
    .如果真结束
    局_起始地址 = 局_起始地址 + 局_内存属性.区域长度
    处理事件 ()
.判断循环尾 ()

返回 (局_搜索结果)


.子程序 内存_特征码搜索, 类型_特征码搜索, 公开, 返回欲搜索的十六进制文本
.参数 进程ID, 整数型, , 进程ID
.参数 搜索类型, 文本型, , jz、CALL、地址、偏移4、偏移2
.参数 搜索内容, 文本型, , 特征码字符串,如:“5F ?? ?? 83 C4 ** C2 04 00 6A 3D”
.参数 差值, 文本型, , 偏移差值,向上为-,向下为+,十进制文本。如:50 ;-2
.参数 起始地址, 文本型, 可空, 开始的地址,默认为00001000
.参数 终止地址, 文本型, 可空, 结束的地址,默认为07FFFFFF
.局部变量 局_定位地址, 长整数型
.局部变量 局_结果, 整数型
.局部变量 局_地址, 整数型
.局部变量 局_Call地址, 整数型
.局部变量 局_Call偏移, 整数型
.局部变量 局_返回文本, 类型_特征码搜索
.局部变量 局_进程句柄, 整数型

搜索内容 = 删全部空 (搜索内容)
.如果真 (取文本长度 (搜索内容) < 4)
    信息框 (“特征码位数太少,至少4位”, 0, , )
    局_返回文本.数据地址 = “”
    局_返回文本.数据结果 = “”
    返回 (局_返回文本)
.如果真结束
.如果真 (取文本长度 (搜索内容) % 2 ≠ 0)
    信息框 (“特征码位数必须为偶数”, 0, , )
    局_返回文本.数据地址 = “”
    局_返回文本.数据结果 = “”
    返回 (局_返回文本)
.如果真结束


.判断开始 (是否为空 (起始地址) = 真)
    起始地址 = “0x00001000”
.默认

.判断结束

.判断开始 (是否为空 (终止地址) = 真)
    终止地址 = “0x07FFFFFF”
.默认

.判断结束


局_进程句柄 = OpenProcess_整数型 (2035711, 0, 进程ID)
局_定位地址 = 内存_特征码定位 (局_进程句柄, 搜索内容, 起始地址, 终止地址)
.如果真 (搜索类型 = “地址”)
    局_返回文本.数据地址 = 进制_十到十六 (局_定位地址 + 到整数 (差值), )
    局_返回文本.数据结果 = 进制_十到十六 (局_定位地址 + 到整数 (差值), )
.如果真结束

.如果真 (搜索类型 = “CALL”)
    局_Call偏移 = 内存_读整数型 (进程ID, 局_定位地址 + 到整数 (差值))
    局_Call地址 = 局_定位地址 + 到整数 (差值) - 1
    局_返回文本.数据地址 = 进制_十到十六 (局_定位地址 + 到整数 (差值) - 1, )
    局_返回文本.数据结果 = 进制_十到十六 (局_Call偏移 + 局_Call地址 + 5, )

.如果真结束
.如果真 (搜索类型 = “jz”)
    局_地址 = 局_定位地址 + 到整数 (差值)
    局_返回文本.数据地址 = 进制_十到十六 (局_地址, )
    局_返回文本.数据结果 = 进制_十到十六 (内存_读整数型 (进程ID, 局_地址), )

.如果真结束
.如果真 (搜索类型 = “偏移4”)
    局_地址 = 局_定位地址 + 到整数 (差值)
    局_返回文本.数据地址 = 进制_十到十六 (局_地址, )
    局_返回文本.数据结果 = 进制_十到十六 (内存_读整数型 (进程ID, 局_地址), )
    局_返回文本.数据结果 = 取文本右边 (局_返回文本.数据结果, 4)

.如果真结束
.如果真 (搜索类型 = “偏移2”)
    局_地址 = 局_定位地址 + 到整数 (差值)
    局_返回文本.数据地址 = 进制_十到十六 (局_地址, )
    局_返回文本.数据结果 = 进制_十到十六 (内存_读整数型 (进程ID, 局_地址), )
    局_返回文本.数据结果 = 取文本右边 (局_返回文本.数据结果, 2)

.如果真结束
CloseHandle (局_进程句柄)
返回 (局_返回文本)

试试这个,我以前也找了好多,但是好多都不能用,里面那些类型和子程序从精易模块里扒出来的
回复

使用道具 举报

结帖率:94% (17/18)
发表于 2025-10-27 08:50:37 | 显示全部楼层   江苏省苏州市
风灵月影直接调用ce脚本代码是如何实现的,一直很好奇!你看易语言还需要自己转换出来!

点评

听说风灵月影直接就是CE打包制作的exe,只不过看起来非常美观不像是罢了   河南省新乡市  发表于 2025-10-27 23:21
回复

使用道具 举报

结帖率:80% (4/5)
 楼主| 发表于 2025-10-27 12:30:17 | 显示全部楼层   上海市上海市

这个要模块吗,没有模块这样写没有用吧
回复

使用道具 举报

结帖率:80% (4/5)
 楼主| 发表于 2025-10-27 12:30:36 | 显示全部楼层   上海市上海市
萌新坏猫 发表于 2025-10-27 08:50
风灵月影直接调用ce脚本代码是如何实现的,一直很好奇!你看易语言还需要自己转换出来! ...

他不是易语言写的吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表