当前位置: 首页 > news >正文

10.游戏逆向-pxxx-UObjectBase成员解密

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

上一个内容:9.游戏逆向-pxxx-InternalIndex解密

上一个内容中重新梳理了,UObject,然后找到了UObjectBase,然后通过内存分析UObjectBase里的成员全部都进行了加密,找解密的方式,可以从GetFullName函数中找,GetFullName函数中访问了Class、FName、UObject(OuterPrivate),想定位GetFullName就要找定位它的字符串,定位的字符串是CopyPropertiesForUnrelatedObjects,如下图在UE源码中搜索CopyPropertiesForUnrelatedObjects

下图红框的就是我们要找的,双击下图红框即可跳转到代码

如下图红框的代码,可以看到GetFullName函数

如下图红框GetFullName函数里面的内容

然后使用ida搜索字符串,下图红框的就是,双击下图红框可以跳转

如下图红框我们要找的字符串,Old和New都在这里

然后双击下图红框跳转代码

如下图双击之后

然后按F5,生成伪代码

接下来通过对比源码找GetFullName,如下图红框

UE源码中的代码是FString::Printf,它是一个打印传了两个参数第一个是

(TEXT("CopyPropertiesForUnrelatedObjects: Old (%s)")

第二个是

*OldObject->GetFullName(),所以就找CopyPropertiesForUnrelatedObjects: Old (%s)后面的也就是v121,这里的v121是GetFullName的返回值,所以通过找v121的值哪来的就能找到GetFullName函数

如下图红框v121的值来自于v119,然后v119的值来自于sub_7FF73139655C(v130, v164, 0);,所以sub_7FF73139655C是GetFullName

为了方便观察给sub_7FF73139655C改一个名,鼠标右击选择Rename global item

在下图红框写上函数名,写什么都行,只要自己记得住,这里我为了不用记就写GetFullName了

点击上图中的ok后

双击上图的GetFullName进入GetFullName函数,如下图进入后,就可以看到之前找InternalIndex的类似代码了,解密代码

下图红框的解密是Class的

下图红框的解密是FName中的Number

Number在下图红框AppendName函数中

然后AppendName函数中AppendString中

然后AppendString中有一个GetNumber

如下图GetNumber在FName里,它返回了FName的Number成员

也就是下图红框,要它的作用,就是我们得到的名字是aaa/vvv.cc这样的像是一个路径,但实际上我们需要的是vvv.cc这一个,想要截取vvv.cc就要用到Number,所以现在一共要找5个解密,现在class的解密得到了,Number的解密得到了

还剩下,下图红框的两个

俩都在下图红框的GetPathName函数中

接下来在ida中找GetPathName,如下图红框GetPathName( StopOuter, Result );两个参数,但是它是在UObjectBaseUtility类中调用的,所以它本质上是UObjectBaseUtility.GetPathName( StopOuter, Result );,也就是this.GetPathName( StopOuter, Result );编译完的代码GetPathName( this,StopOuter, Result )这样的,下图红框的sub_7FF730DF2288比较符合a1在if里,UE源码中使用if里是this,所以ai就是this

为了方便观察这里给它改个名字,然后双击下图红框进入GetPathName

通过对比UE源码,可以更进一步确定它是GetPathName函数,特征太明显了

然后通过下图蓝框的对比,可以得出下图红框就是OuterPrivate的解密(GetOuter函数返回的是OuterPrivate)

然后就还剩下Name了,也就是GName,也是FName,也是NamePrivate,它有很多名字,看起来就很乱,但它们都是一个东西,GName它在下图红框的AppendName函数中

然后AppendName里调用了一个GetFName函数

GetFName函数里就返回了UObjectBase中的NamePrivate

然后下图的v18就是我们要的GName

到这就把下图红框的4个加FName里的Number的解密全找到了,接下来就可以Dump游戏的sdk了


img

http://www.dtcms.com/a/597120.html

相关文章:

  • 触发器,存储过程
  • 计算点到三次 Bézier 曲线最短距离及对应参数 u 的方法(转化为五次多项式)
  • npm中-d -g 和默认安装的区别
  • 深圳商城网站建设报价单青岛网站建设的方案
  • AI 编程工具全景分析与 Claude Code 配置 MiniMax - m2 模型指南​
  • MES 生产调度模块:业务逻辑、功能细节与全场景落地
  • PG认证培训考试中心-CUUG【工信人才授权指定】
  • 研究院 网站建设云主机怎么装网站
  • 微网站模板代码电子商务实网站的建设课件
  • 55_AI智能体运维部署之实战经验:编写生产级Dockerfile的深度思考
  • 软件.PostgreSQL与StackBuilder及配置使用
  • web华为商城前端项目4页面
  • window命令行差外网ip
  • windows—wsl2—docker配置代理以push/pull
  • GSP药品温湿度监测要求详解:LoRaWAN技术在电池供电传感器中的应用优势
  • Docker学习笔记---day001
  • 教做面包的网站wordpress html 单页模板
  • 网站建设公司织梦模板下载黑龙江做网站的公司有哪些
  • 当电脑开机自动进入 BIOS 更新画面时,不必惊慌~
  • 高端紧固件制造重镇, 嘉兴迈向产业新高度
  • Q3中国笔记本电脑线上市场销量363万台 联想位居第一
  • 最新安卓和IOS手机安装油猴(Tampermokey)插件教程,手机安装篡改猴教程
  • 第25集科立分板机:从效率到精度科立分板机如何重塑电子制造分板流程?
  • 做的比较好的电商网站wordpress网盘外链插件
  • 做京挑客的网站怎么做网站关键词推广
  • 时间触发协议(Time-Triggered Protocol,TTP)
  • C++ 面试高频考点 链表 优先级队列 递归 力扣 23. 合并 K 个升序链表
  • jsp网站开发文献网站开发赚钱
  • 矩阵在图像处理中的应用
  • Nginx集群与SpringCloud Gateway集成Nacos的配置指南