首页 > 其他分享 >基址简述

基址简述

时间:2023-05-13 12:02:54浏览次数:43  
标签:AE 基址 简述 源码 跳转 Pointer 指针

基址简述

注:原创文章,禁止转载
在游戏中,用指针加偏移的形式,形成多级指针,最终到达目标地址,且这个指针链在重启游戏后依然生效,那么这就是一条有效基址。

比如,一条3级基址如下:

libgame.so:bss[Cb]:+0x2B4C->0x10->0xC4->0x1C

我们先获取libgame.so:bss模块的起始地址:

local a=gg.getRangesList('libgame.so:bss')
local b=string.format('%X',a[1]['start'])
local c=tonumber(b,16)
print(b)--打印出libgame.so:bss模块的起始地址,该行可以注释
gg.addListItems({{address=c,flags=4}})--将模块起始地址保存到列表

以一个保卫萝卜32位修改版的游戏举例,我们想要修改游戏速度,我们利用工具找到其中其中一条基址为:

libgame.so:bss[Cb]:+0x2B4C->0x10->0xC4->0x1C

第一次模块初始地址加偏移:
假如我们获取到的libgame.so:bss起始地址为BD0B5000,加上偏移0x2B4C,到达BD0B7B4C
第一次指针跳转:
到达BD0B7B4C,我们发现存储了一个指针为CB9611C0,跳转到CB9611C0(在GG中久按可以选择跳入该指针),我们再进行偏移0x10,CB9611C0+0x10到达CB9611D0
第二次指针跳转:
到达CB9611D0,我们发现存储了一个指针为CB709800,跳转到CB709800,偏移0xC4,CB709800+0xC4到达CB7098C4
第三次指针跳转:
达到CB7098C4,这里也存储了一个指针CB962300,跳转到CB962300,偏移0x1C,CB962300+0x1C到达CB96231C,这里就是目标地址,存储着我们需要修改的目标值

虽然我们每次进游戏,libgame.so:bss模块获取的初始地址是不同的,但是我们可以通过这个指针链,通过偏移加指针跳转的方式达到目标地址,达到我们的修改目的,这就是游戏中的基址。


常规来说,基址的级数一般都在3~12级,超过12级的很少,非常少,比我的鼻屎还少
我们一般先抓取若干基址,保存在一个文件中,然后重新进游戏,再抓取一次基址,再次保存在另一个文件中,将两个基址文件进行对比,去除那些无效基址,一般来说对比之后里面的基址大部分都能用,如果想要更‘纯’一点的基址,我们可以再对对比之后的基址进行一次过滤,甚至是二次过滤。关于提到的这些你都可以用AE Pointer实现。


AE Pointer

这是当前安卓端最好用的基址抓取工具,纯C编写,快的一匹。笔者也是AE Pointer的忠实使用者一名,给出的评价也是相对客观的,当然这也算是变相打广告了,AE作者能给我打点钱更好了。作者是B站Up主小说里的人(主页: https://space.bilibili.com/320508998 )。
工具并不免费,有需要的读者可以自行购买。

关于骗子青衫白衣Enc

B站有一个骗子,青衫白衣Enc,主页:https://space.bilibili.com/514303203
骗子QQ交流群:113220632
骗子B站UID:514303203
笔者倒并没有被此人所骗,只是觉得此人过于无耻,所以在此特别挂出来


前因后果:

此人诱骗AE Pointer作者录制了AE Pointer的编译视频,你会发现AE源码编译视频与AE作者的AE使用教程配音风格都是一样的,盗取该视频私自发布在B站并号称已将AE Pointer全源了,直白来说就是他号称破解了AE Pointer(以下简称AE),出售AE源码。

现在该骗子的AE源码编译视频已经下架,找不到了,本来还想保存一份下来,让大伙来看看的。

如有不信的读者可以自行加入骗子群,联系青衫白衣Enc这个死骗子,你让他提供一个编译好AE后再签名运行演示的视频,他绝对提供不出来,只会以各种理由拒绝,逃避,因为他根本没有源码!因为CPP和C的全源从理论上来说本身就几乎是不可能的。

此人就是lua GG圈的败类一枚,为了骗那一两百块,笔者看着他小丑一样,大家都不是小学生了,小学生基本上用不上AE,到了用AE的地步,哪个会是傻子,你说你有源码,你录屏演示编译、签名并运行演示啊,你录不出来,那你肯定是有问题的。就骗了AE作者一个AE的编译视频,一张嘴在那说自己有AE源码,然后出售AE源码,真不知道你能骗到哪个。

标签:AE,基址,简述,源码,跳转,Pointer,指针
From: https://www.cnblogs.com/sillage/p/17396864.html

相关文章

  • 简述2012版SQL SERVER备份还原到2008R2版SQL SERVER的方法(转载)
    转载:http://wfsj.weifang.gov.cn/sy/sjjl/201905/t20190531_5370608.html 目前审计机关数据分析通用的数据库为SQLSERVER2008R2版本。被审计单位相关业务系统的后台数据库主要是ORACLE、SQLSERVER 。审计人员需要将不同类型或者不同SQLSERVER版本的数据库转化到SQLSERVER......
  • Java stream 简述
    Java  Stream是Java  8中的一个新特性,它是一个集合元素(数组、List、Set等)处理的高级抽象,它提供的操作可以让开发人员以声明式的方式轻松地处理集合元素。Stream有以下特点:1.  它不是集合(集合是一种静态的数据结构,而Stream是在集合上运行的计算)2.  它不支持修改数据源的数......
  • 简述服务量化分析体系
    量化分析体系是基于数据对系统进行量化、定位和分析,然后产生相应的治理措施,指导接下来的线上治理和线下治理,主要从度量、定位和风险分析这几个维度对量化分析体系进行展开讨论。1、稳定性风险度量一直以来服务当前的稳定性现状,不太好衡量和判断。为了掌握稳定性建设的真实情况,同时......
  • [绩效管理]可度量绩效管理模型第一阶段应用方法群简述
    可度量绩效管理模型在最开始的阶段需要构建基础数据,而基础数据必须来源于真实,也就是说,我们必须做到下面几条:1,通过一些方法把真实数据采集上来;2,这些方法的应用不能影响项目的正常进度;3,这些方法可以有效的采集数据,而不会成为虚假数据的来源。于是,在这些年的考虑中,形成了下面的一些具......
  • WAL模块主要方法简述
    Method---wal.goDescriptionfuncCreate(lg*zap.Logger,dirpathstring,metadata[]byte)(*WAL,error)初次启动raftNode时调用WAL.Create方法。创建WAL对象用于记录追加:判断是否存在dirpath路径,如果已存在则不是初次启动raftNode,返回os.ErrExist。创建临时目录和......
  • Web简述:HTTP
    HTTP1、Web概述1.1Web和JavaWeb的概念Web是全球广域网,也称为万维网(www),能够通过浏览器访问的网站。在我们日常的生活中,经常会使用浏览器去访问百度、京东等这些网站,这些网站统称为Web网站。我们知道了什么是Web,那么JavaWeb又是什么呢?顾名思义JavaWeb就是用Java技术来解决相......
  • 简述构建微服务架构的四大挑战
    微服务的开发模式和单体服务差异比较大,对设计、开发、测试、运维等研发流程的各个阶段都提出了新的挑战。1、拆分挑战服务拆分是微服务架构过程中最重要的一步,关系到微服务架构的成败,糟糕的服务拆分会影响后续的服务化过程,严重时可能会导致大量的返工,甚至是推倒重来;好的服务化拆分,......
  • SpringBoot的EnableCaching简述
    SpringBoot中的EnableCaching简述springboot中自带有数据缓存机制,主要通过其org.springframework.cache包下的各种类来实现。EnableCaching@EnableCaching是启用缓存......
  • 关于倾斜摄影的简述
    摘要:本文主要介绍倾斜摄影三维重建的相关技术,包括倾斜摄影概述、三维重建原理及流程、误差分析与精度控制,并对未来发展进行了探讨。该技术可应用于建筑物、地形、文物等方......
  • 简述几种常用的排序算法
    摘要:归并排序和快速排序是两种稍微复杂的排序算法,它们用的都是分治的思想,代码都通过递归来实现,过程非常相似。理解归并排序的重点是理解递推公式和merge()合并函数。本......