逆向教程->U3D游戏逆向分析(伊甸逆向分析)

来源:互联网 发布:vsftpd 端口 编辑:程序博客网 时间:2024/05/05 18:36

原软件下载地址:http://ng.d.cn/yidian/

最近接触伊甸的时候发现挺好玩的,然后罪恶心就犯了。

游戏介绍:伊甸是一款U3D引擎开发的游戏。

工具:APKIDE、.Net Reflector

分析:

下载,用APKIDE反编译APK


进入路径打开文件:<APKIDE路径>\ApkIDE\Work\com.yidian.rekoo.dangle\assets\bin\Data\Managed\Assembly-CSharp.dll

选择用reflector打开。


打开以后如图所示:


一般情况下,人物的数据最基本的就是hp(血量),那我们按下F3进入搜索,并且输入"get hp",如图所示


发现是空值,因为我们没有选定相关的搜索方式


我们选择第二个,方法名搜索即可找到许多东西,那么,在这么多东西里面我们如果分析呢?首先我们要先看得懂什么意思。


根据图片我们可知,我们需要首先需要注意的是【文件+支持库】,定位到【assembly-csharp】。接着在类名和方法名里面查找所有有关的数据。


我们发现了一个取英雄最大血量的方法,我们点进去看一下。


这里我们可以看到,他就返回了一个数据。,要改英雄血量那么就点击上方的【tools】-【reflexilv1.6】(这个工具基本上都是随软件装的,不懂的可以评论。)


我们可以看到有几条命令:

ldarg.0  //调用函数起始

ldc.i4.s  15  //隐藏参数

ldc.i4.1  //0x1 true

call  system.int32 heroattrdata:getuiattr(attrforui,system.boolean)  //提交到该方法,调用结束。

ret  //返回return

那我们要锁定,那就修改成这样

ldc.i4  9999999  //999999血

ret  //返回return

就修改完成了无限血。看不懂的可以看图。



接下来保存,找到assembly-csharp点击右键reflexilv1.6-save as

然后覆盖源文件保存即可。

然后将apk重新打包就修改完成了。



接下来,我们查看GetHeroMaxHp() : Int32

发现他的类是heroattrdata也就是英雄角色数据

也发现了许多其他的方法。

GetHeroMaxHp() : Int32  '红上限
GetHeroMaxSp() : Int32  '副本蓝上限
GetEquipBaseAttr(ItemAddAttr) : Int32  ’锁定所有数据
GetEquipAddAttr(ItemAddAttr) : Int32  ’增加所有数据
GetHeroMaxGamePoint(Int32) : Int32  ’体力上限
get_m_AttackRange() : Single  '取怪物攻击范围
set_m_AttackRange(Single) : Void  ’置怪物攻击范围
set_m_AttackRandInterval(Single) : Void  ’置怪物攻速
get_m_AttackRandInterval() : Single ’取怪物攻速
get_HitRate() : Int32  ’取怪物命中率
set_HitRate(Int32) : Void  '置怪物命中率
get_MonsterLevel() : Int32  取怪物等级1,不影响血量
initmonster   初始化怪物(改血有效)
------------------------
STR    力量 = 物攻 + 护甲
INT    智力 = 抗性
LUK    运气 = 合成物品成功率
Dodge  暴击率
AGI    敏捷 = 闪避等级 +闪避率
VIT    体质 = 血+暴击
Hitrate命中

以上是我个人分析以后找到的各类数据。

修改方式与改血相同。不懂得的可以评论。

然后尽情的蹂躏伊甸吧。


                                                                 2014.09.09 Sarkozy


0 0
原创粉丝点击