Android 内存修改与一键修改
来源:互联网 发布:淘宝卖家怎么回复追评 编辑:程序博客网 时间:2024/05/16 05:57
内存修改使用trace对进程和内存实施监控,并修改其中的数值。
{ //文本配置 "TextConfig":{ "GameName":"游戏名称",//显示之用 "GamePackname":"Android包名",//游戏包名,否则无法识别游戏 "GameVersion":"版本号",//游戏版本号,否则无法识别游戏 "CfgName":"配置名称",//给你的一键修改取一个霸气的名字吧 "CfgVersion": 1|2|3... //配置的版本编号,最开始为1版本,后续为2,3,4... "Author":"配置作者",//自己定义了配置,请留上你的大名 "Discription":"配置简述",//一键修改配置的使用攻略和注意事项 "ButtonNameModification":"一键修改名称",//默认一键修改 "ButtonNameRecovery":"一键还原名称"//默认一键还原 }, //搜索配置 "SearchConfig":{ "NeedToPause":true | false //布尔型,默认 true "SearchValueType":1|2|3|4 //整数型,默认4整数 "SearchValue":"V1,V2,V3...", //字符串型,搜索数值V1,V2,V3,最多10个,单数值为精确搜索,多数值为联合搜索 "SearchRange": "10d", //整数型,其中L为10进制数字,0则不进行联合搜索 "SearchOffset": "16h",//偏移距离,16进制,用于双精确等距/强联合搜索,0则不进行强联合搜索 }, //筛选-修改-还原配置 "FilterSettingConfig":[ //筛选过滤配置,可以设置多个 { "FilterType":"Values" |"Address" //筛选类型,按值筛选/按地址筛选 "Offset":"16h"//偏移:字符串类型。表示16进制整数。默认为空。 "LastDigits":"16h"//末位数:一般为2~4位。 "SourceMatch":"10d", //原始匹配值。 "SetValueType":1|2|3|4, //设置的值类型。默认4整数型 "SetValueMethod":"equal"|"add",//设置的方法,equal为等值设值,add为差值设值。 "SetValue":"10d", //字符串型,设置的数值大小 "SetValueLocked": false|true //布尔型,默认false。是否需要锁定数,默认不锁定。 },//配置1 /* { // // // }//配置2 */ ]}
现在手机端也出现了一些有名的修改器,如烧饼修改器,八门神器,泡椒修改器。这些修改器都是纯技术类型的修改器。其内核是建立Linux的搜索基础之上的,早
期的烧饼修改器,八门神器,借鉴了开源代码 scanmem 里结构,不过 scanmem 有一个缺陷,搜索速率非常低。比如 ptrace 来调试进程,单内存搜索。就好比我一次抓一把米,一把才1颗。这些修改器优化之后,改为1次抓1把米,1把2048颗米。平铺在手上,可以筛选出颜色不同的米来。
再后来的过程,崛起了一个叫葫芦侠的修改器,这个修改器有一个特点,搜索速度较快,可以理解的其使用了比 ptace 更为底层的接口 trace,甚至更底层。以至于搜索速度能够达到秒的数量级。烧饼2的系列都是要通过ptrace来调试进程,并对进程进行搜索和修改。近期的一些游戏所做的反作弊手段就是通过黑名单,反调试来进行的。anti-ptrace是其中的一种反作弊手段,可是一旦用了更底层的攻击技术,这项防御技术很单薄。
整个内存修改的过程可以分解为:
输入数值->搜索数值->筛选数值->修改数值->还原数值
1、数值输入:
输入的数值可以为小数,整数。类型可以分为Byte, Word, Dword和Float,当然还有更多,比如Array,Text和Double等。这个可以在Cheat Engine里看到起搜索的类型。
2、搜索数值:
搜索方法很多,一共5种。
a内存搜索:这个很直接,直接输入地址,搜索数值。
b精确搜索:间接,搜索具体的数值,然后找到目标内存地址。这个需要多次跟踪搜索过滤掉合适的数值。
c模糊搜索:间接,不特定搜索。根据变化率来进行搜索。根据ΔV 的情况来进行搜索。比如为正,为负,定值来进行搜索。
d联合搜索:介乎于精确。在一定的内存距离内进行数值搜索。linux里有页的概念,因此这段内存距离会控制在2048里。
e等距搜索:即搜索A,B。指定A和B 的距离都为L。返回两个A,B值。
几个搜索方式的优劣比较:
a内存搜索:快速直接,但很难搜。不同的操作系统,搜索的地址是不一致的,有些动态生成的值,此方法不适合。
b精确搜索:直观,搜索步骤较多,很难一步搜完。
c模糊搜索:复杂,搜索步骤较多,需要大量筛选数值。
d联合搜索:较快,搜索步骤最少。
e等距搜索:最快,搜索步骤最少,可以查询到搜索结果。
如果说要推荐意见修改,那么联合搜索和等距搜索是最佳搜索方法。
3、筛选数值
a内存搜索:过滤结果只有1个。Nan或者有效。
b精确搜索:搜索结果不定,需要人工筛选。
c模糊搜索:搜索结果复杂不定,需要结合整数,小数的规律来进行过滤。
d联合搜索:搜索结果很容易确定下来,不过如果距离过小,结果会过少。距离过大,搜索结果会变多。
e等距搜索:结果一般只有几个。很容易搜索到。
4、修改数值
手动改值:找到指定地址,修改为需要的数值。
自动改值:每一帧率都在进行修改。也就是所谓的锁定功能。
5、还原数值
手动改值:找到指定地址,改为需要的还原的数值。
一键修改的过程:
全自动
{"TextConfig":{"GameName":"天天飞车","GamePackname":"com.tencent.game.SSGame","GameVersion":"1.2.0.40317","CfgName":"一键吸金","Author":"bbe","Discription":"每次开局,一键吸金,卡车之后还原再改","ButtonNameModification":"吸金","ButtonNameRecovery":"不吸金"},"SearchConfig":{"SearchValueType":4,//搜索类型为整数"SearchValue":"1077936128;1112014848,1", //联合搜索3.0;50.0;1"SearchRange":"8"//设置距离为8},"FilterSettingConfig":[{"FilterType":"Values","SourceMatch":"1",//匹配原始值1"SetValueType":4,"SetValueMethod":"equal", //等值设置值"SetValue":"257",//改为257"SetValueLocked":false//不用锁定},]}
在上面的这个配置里已经很明显的设置了如何自动识别游戏包名,游戏版本名。如何搜索,如何自动筛选数值,如何自动修改和还原。
修改器自动运行一遍,就可以实现一键修改。
- Android 内存修改与一键修改
- Android 内存修改与一键修改
- 修改内存数据知识一
- tomcat内存修改与查看
- 关于内存访问与修改
- Android 平板模拟器内存修改
- 修改android最小堆内存
- 修改android文件修改 键
- weblogic中查看内存与修改内存
- Android内存数据读取与修改/内存代码注入/内存dump
- Android Rom定制与修改学习(一)
- 修改内存
- 内存修改
- Android源码常见问题修改 ------ (一)
- 一键修改IP
- LOL本地皮肤修改-一键修改
- Android Settings剖析与修改
- Android Settings剖析与修改
- 使用java自带的控制台监控JVM内存
- 0904-APP-Remote-Sevice
- 一句代码提升进程权限
- Ubuntu12.4.04下libxml2的安装和使用
- Android4.4获取多媒体(图片,声音,视频)路径
- Android 内存修改与一键修改
- [hdu4046]Panda
- Linux环境编程之进程(一):main函数调用、进程终止以及命令行参数和环境表
- 选择排序
- Linux系统下把一个目录下所有的文件合并到一个文件中
- surveys on big data science
- hashmap的内部实现机制,hash是怎样实现的,什么时候rehash
- 正确选择报表工具的十大标准
- 别做操之过急的”无效将军”,做实实在在的”日拱一卒”