我爱秘籍论坛

 找回密码
 加入论坛

QQ登录

只需一步,快速开始

扫一扫,访问微社区

CE:最优秀的游戏修改工具入门:修改器制作傻瓜教程说说:你最想要找的修改器以前游戏玩我们,现在我们玩游戏
进阶:游戏修改视频教程导航必备:超2400款游戏秘籍下载:超5000款游戏修改器必读:论坛金币获得方法
查看: 130128|回复: 12

[C/C++] AOBSCAN 支持未知??字节, Sunday算法改, 不可读内存区忽略, 指定第几命中 v1.4

[复制链接]
发表于 2012-3-31 08:25:39 | 显示全部楼层 |阅读模式
本帖最后由 axdx 于 2012-3-31 08:30 编辑

*   更新日志:
*
*      v1.0: Sunday 算法
*      v1.1: 修正 AOB 跨分页时, 找不到的问题
*      v1.2: 忽略不可读内存区 (效率大增)
*      v1.3: Sunday 算法改, 支持使用 ?? 或 * 表示未知字节
*      v1.4: 可指定第几个命中目标
*
*
*   使用环境: VC++ 2008, 其他环境请自行测试修改


Sunday算法改:
将一个字节扩充为两个字节, 低字节保留原数据, 高字节用以表示此为??字节
然后将位移表(步长表)以及主要比较函数, 改为可以支持??字节的方式
由于Sunday算法的特性, ?? 字节最好靠近AOB的头部, 靠尾部则效率较差
8b ?? 24 24 3b 8f 0c d8 07 00    ->    比较快
8b 4c 24 24 3b 8f 0c d8 ?? 00    ->    比较慢


忽略不可读内存区:
这方面我是参考了CE 5.61源码
只对可读内存区进行搜寻的结果是, 大幅度的缩短了搜寻时间


源码都在 aobscan.h 里面(此档为UNICODE格式)
使用方式简单
只要 include "aobscan.h"
然后使用 aobscan 函数即可
  1. //     AOBSCAN 主函数
  2. //
  3. //     使用方式:
  4. //
  5. //     aobscan(游戏句柄, 第几个命中目标, 起始地址, 结束地址, AOB, 返回地址)
  6. //
  7. //     1. 返回地址为一个DWORD *指针, 用来返回找到的地址
  8. //     2. 若找到目标, 返回true, 结果写在返回地址里
  9. //           3. 若没有找到目标, 则返回false
  10. //
  11. //     例:
  12. //
  13. //         DWORD address = 0;                                     // 存放目标地址用
  14. //         string aob = "e8 75 00 32 ac ?? 05 ?? ?? ff ff 3c 0a";     // 大小写不分, 未知字节以 ?? 或 * 表示皆可
  15. //
  16. //         bool OK  = aobscan(hProcess, 1, 0x0, 0x7fffffff, aob, &address);   // 此为CE使用的aobscan设定
  17. //         if(OK){
  18. //                  // 找到, 返回地址在address
  19. //         }else{
  20. //                  // 没找到
  21. //         }
  22. //
复制代码
源码在附件里, 我就不贴了~

另附一个使用此 aobscan.h 制作的特徵码搜寻工具, 方便测试其效率及正确性
如无法使用, 请先安装 VS2008SP1 运行库

aobscan.jpg



aobscan源码 与 特徵码搜寻工具 下载

aobscan v1.4.rar (105.62 KB, 下载次数: 142)

评分

参与人数 1金币 +30 鲜花 +1 收起 理由
我爱秘籍 + 30 + 1 原创作品,加分鼓励!

查看全部评分

发表于 2012-3-31 08:31:53 | 显示全部楼层
不解啊
回复 支持 反对

使用道具 举报

发表于 2012-3-31 09:43:57 | 显示全部楼层
其实脚本里
为了提高效率
其实可以玩指定搜索地址范围的参数
回复 支持 反对

使用道具 举报

发表于 2012-3-31 11:48:16 | 显示全部楼层
酱油党路过  顶一个
回复 支持 反对

使用道具 举报

发表于 2012-3-31 12:49:48 | 显示全部楼层
本人中科院高级潜水院院士,诺贝尔长期掉线奖,奥斯卡终身隐身奖……

无中生有,有中放大










signature..................................
仙府之缘
回复 支持 反对

使用道具 举报

发表于 2012-3-31 13:18:45 | 显示全部楼层
- = 不会用....
回复 支持 反对

使用道具 举报

发表于 2012-3-31 13:49:15 | 显示全部楼层
不懂啊
回复 支持 反对

使用道具 举报

发表于 2012-3-31 20:10:59 | 显示全部楼层
嗯,速度非常快.
回复 支持 反对

使用道具 举报

发表于 2012-11-20 12:52:28 | 显示全部楼层
高人啊,尤其是支持通配符
回复 支持 反对

使用道具 举报

发表于 2013-7-21 07:11:47 | 显示全部楼层
谢谢分享,拿来用用。
回复 支持 反对

使用道具 举报

发表于 2013-9-20 04:57:45 | 显示全部楼层
感谢楼主无私奉献
回复 支持 反对

使用道具 举报

发表于 2013-9-30 18:15:17 | 显示全部楼层
本帖最后由 whm630987633 于 2013-10-1 02:26 编辑

建议楼主加一个参数(十六进制偏移量),搜索出来地址+这个参数得到地址,还有3种读取方式
;读取方式:
;   1=直接取特征码头部所在地址
;   2=读取特征码头部所在地址的值
;   3=Call或JMP指令等后面的地址
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入论坛

本版积分规则

QQ|Archiver|手机版|小黑屋|我爱秘籍论坛  

GMT+8, 2019-1-20 16:16 , Processed in 0.123197 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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