首页 > 编程语言 >【游戏分析】RPG类型游戏数据关联名称库加密算法

【游戏分析】RPG类型游戏数据关联名称库加密算法

时间:2024-04-09 10:01:44浏览次数:35  
标签:发现 游戏 对象 NPC 链表 名称 RPG 字符串 加密算法

我们找到的无论是周围数组还是数组套链表结构里

都没有发现NPC名称

那么我们在不能直接观察得到的时候

只有单独去找名称属性了

 

找一个NPC搜索其名称

得到10几个

那么我们尝试修改看看是哪一个

 

 

发现是14这个地址

到DO中去看一下

 

 

 

发现周围全是其他的各种字符串

那这里应该是一个名称库了(由于OD的小BUG 有些字符显示会出现错误,可以拿CE等其他工具辅助查看字符串具体内容)

 

 

字符串的处理

我们直接到堆栈中其最先出现的位置

 

发现是这个call的第一个参数

 

那么我们跳过去继续分析即可

 

继续追EAX

 

发现eax是变化的

属于正常情况,因为该处是遍历,周围数组的所有名称应该都会访问这里

 

 

 

其中NPC头上2个字符串 都在这个结构里

另外一个是我们自己的名称字符串

 

 

继续往上追

 

应该是  这个位置可以返回到很多不同的库中

名称在一个库

新手指引那种字符串应该又再另外一个库里

当然以后还可能发现其他的库

怎么发现的?因为返回以后  看遍历的时候发现只有2个字符串了,才回来发现的

 

这里面先只追名称库

 

 

 

 

进入来源函数

分析函数内代码得到公式

要获得一个对象的名称字符串

取他252*4+550的属性值

等于0情况1    不等于0情况2

情况1 猜测人物玩家字符串

[[0FBE0FC]+n*4] 对象 n通过汇编算法计算获得

对象+30链表

名称 [对象+4+4]

情况2 猜测NPC字符串

[[0FBE0eC]+n*4] 对象 n通过汇编算法计算获得

对象+30链表

名称 [对象+4+4]

算法内联汇编抄写即可

或则也可以直接调用函数获得名称字符串

 

由于函数内部没有复杂的调用

所以我们可以放心的直接调用取名称字符串也是不错的。

标签:发现,游戏,对象,NPC,链表,名称,RPG,字符串,加密算法
From: https://blog.csdn.net/douluo998/article/details/137536227

相关文章

  • 我要点名一款十字线上 PVP 游戏 - 1951
    \(1900-12=1888\)。怎么rating还是这么好笑。感觉每回打cf都要破防是怎么回事?被诈骗不还是因为菜?交\(12\)发不知道自己是怎么想的。然后E也不难,但是太晚了打不动了。下次交代码之前能不能拜托先把hack测一下?占了将近一半的RE哪个不是因为没开longlong?A01字符串......
  • 小游戏——俄罗斯方块(附带超详细源码,复制就可实现效果)
    用web前端基础的知识做个俄罗斯方块玩玩。先来看看实现的效果:俄罗斯方块 复制就可以实现所有效果哦!!!详细代码源码:<!DOCTYPEHTML><html><head><metacharset="utf-8"><title>俄罗斯方块小游戏JS版-孙也</title><script>window.onload=functi......
  • 【C语言】扫雷游戏
    目录1 扫雷游戏功能说明1.1扫雷游戏介绍1.2游戏界面2 游戏分析与设计2.1 读入用户指令2.2 地雷数据生成,处理与储存2.3地雷标记及展开2.4用户界面2.5游戏循环主体3代码实现game.hgame.ctest.c1 扫雷游戏功能说明1.1扫雷游戏介绍    使用......
  • Java 方法真人游戏网站app
    在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢?println()是一个方法。System是系统类。out是标准输出对象。这句话的用法是调用系统类System中的标准输出对象out中的方法println()。那么什么是方法呢?Java方法是语句的集合,它们在......
  • 游戏开发:设计软件的充值流程
    渠道后台(ChannelServer)渠道SDK(SoftwareDevelopmentKit)软件中央数据后台(CenterServer)软件服务端(Server)软件客户端(Client)创单流程(CreateOrder)Client向Server发起创单请求,Server转发请求到CenterServer,CenterServer生成本次充值订单号(研发订单号:developorder)并返回;Cli......
  • 力扣经典150题第九题:跳跃游戏
    目录1.简介2.问题描述3.解题思路方法一:贪心算法4.算法实现方法一:贪心算法5.示例与测试6.总结与展望7.结语1.简介本篇博客将讨论力扣经典150题中的跳跃游戏问题。给定一个非负整数数组nums,数组中的每个元素代表在该位置可以跳跃的最大长度,判断是否能够从......
  • 蓝桥杯练习系统(算法训练)ALGO-963 转圈游戏
    资源限制内存限制:128.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s问题描述n个小伙伴(编号从0到n-1)围坐一圈玩游戏。按照顺时针方向给n个位置编号,从0到n-1。最初,第0号小伙伴在第0号位置,第1号小伙伴在第1号位置,……,依此类推。游戏规......
  • 【UnityRPG游戏制作】Unity_RPG项目之界面面板分离和搭建
    ......
  • C语言游戏实战(11):贪吃蛇大作战(多人对战)
         成果展示:贪吃蛇(多人对战) 前言:这款贪吃蛇大作战是一款多人游戏,玩家需要控制一条蛇在地图上移动,吞噬其他蛇或者食物来增大自己的蛇身长度和宽度。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。在开始编写代码之前,我们需要先......
  • 【游戏设计随笔07】游戏设计师怎样防止玩家破坏自己该有的游戏体验?
    一、玩家会重复选择成功率高的策略风险能带来损失,也能带来收益。但是在失败成本过高的情况下(比如在某些一被发现则判定为失败的潜行游戏),大部分玩家并不会选择冒险而是选择成功率更高的方式去游玩,他们会重复选择更加谨慎的选择,导致游戏体验并没有按照收益更高同时风险更大的方式......