来!学逆向都想的手游防护(下篇更新破解)

随着手游的发展,随之而来的手游逆向越狱技术也越来越成熟,尤其是Andorid方面,各种冲破文章比比皆是,相对而言,iOS方面关于手游的逆向分析文章比较少,网易易盾移动安全专家吕鑫垚将通过分析一款unity游戏和一款cocos-lua游戏来剖析一般向的游戏及保护思路。

识别Unity游戏

iOS平台的ipa包可以通过压缩软件解压,一般来说Unity的游戏有如下文件目录特征:

越狱思路

Unity游戏会在 \Data\Managed\Metadata下生产资源文件global-metadata.dat。游戏中使用的字符串都被保存在了一个global-metadata.dat的资源文件里,只有在动态运行时才会将这些字符串读入内存。这使得用IDA对游戏进行静态分析变得更加困难。那么为了解决这个困难,有人造了轮子,即Il2CppDumper。此可读取global-metadata.dat文件中的信息,并与可执行文件结合起来。

github:
https://github.com/Perfare/Il2CppDumper 打开Il2CppDumper,会弹出一个窗口,第一个选择macho执行程序,第二个选择global-metadata.dat,然后选择对应的模式一般选auto,然后会生成如下的dump.cs 里面就是这个游戏用到的c#的接口。

有了接口以后,我们就可以搜索一般游戏修改的关键字battle,player,maxhp,fight等,然后我们定位到如果所示的类FightRoleData是我们战斗的时候角色数据来源,还有一个叫battlemanager的类,这个类是一个战斗管理者,包括开始战斗,暂停战斗,结束战斗。

public class FightRoleData : ICloneable // TypeDefIndex: 2414
{
 // Fields
 public long Sid; // 0x10
 public long OwnerId; // 0x18
 public long Uid; // 0x20
 public int Power; // 0x28
 public int Level; // 0x2C
 public int Sex; // 0x30
 public int FlagType; // 0x34
 public int RoleUnit; // 0x38
 public int Sit; // 0x3C
 public int AttackType; // 0x40
 public int Race; // 0x44
 public int Professional; // 0x48
 public int Star; // 0x4C
 public int Quality; // 0x50
 public int Impression; // 0x54
 public int Awaken; // 0x58
 public int IsNpc; // 0x5C
 public int Soul; // 0x60
 public int Formation; // 0x64
 public int SkinID; // 0x68
 public int AwakenLv; // 0x6C
 public int[][] Skills; // 0x70
 public int[] Runes; // 0x78
 public double Hp; // 0x80
 public double MaxHp; // 0x88
 public double Rage; // 0x90
 public double MaxRage; // 0x98
 public double Aggro; // 0xA0
 public double MoveSpeed; // 0xA8
 public double Attack; // 0xB0
 public double PhysisDefense; // 0xB8
 public double MagicDef
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值