Android安全-逆向Android逆向与安全

android Unity3D 游戏修改基础篇

2019-01-08  本文已影响4人  LiuJP

视频里的东西,整理成文章,

Unity3D逆向系列(基础)大纲

基础介绍篇

1.unity逆向环境搭建

1..Net framework 4.0/3.5/3.0/2.5      360软件管家中下载

2.reflector v8.2.0.42【破解注册】    http://pan.baidu.com/s/1pJx9HSR

  3.apkdb1.9.0apk反编译工具(需要JAVA环境)http://pan.baidu.com/s/1eQoZtmE

安装破解需要断网

2.unity文件介绍

1.所有文件都在/bin/data里面

2.settings.xml                 unity配置文件

3.splash.png                   apk默认启动图

4.sharedassets0.assets         unity资源文件打包文件

5.sharedassets0.assets.split   unity资源文件打包文件

6.managed文件夹                unity游戏源代码

7.unity default resources      unity语言包

3.reflector工具使用

1.Analyze关联定位工具  ctrl+R

1.depends on 数据来源

2.used by    数据应用

2.Search查找工具       F3

1.Search Type                 查找类名

2.Search Member               查找方法名

3.Search string or constant   查找字符串或者数值

4.exact match                 精确匹配

3.Language反编译代码显示方式

C#、vb等多种方式

4.refresh              F5

修改小技巧

5.reflexil代码修改工具

1.offset行数

2.opcode代码类型、定义类型

3.operand代码数值、调用类型

常用关键字篇

中文>>>>>>>>>>>>英文

金币            gold、coin、cash、money

钻石、宝石      Gem、diamond

生命            health、life、HP、Max hp

冷却时间    cooldown

蓝              mp、sp、Power

攻击            attack(atk)、fight、hit、damage

防御            defence(def)

护甲            Armor

物理            physic(phy)

魔法            magic(mag)

暴击            Crit(cri)(crt)

闪避            Dodge

范围            range

速度、频率      speed

改路            Rate

恢复            Recover

取              get

置              set

支付            bill、billing、pay、purchase

成功            success

失败            fail

取消            cancel

分数            Score

死亡            Dead

英雄、玩家      Hero、player

怪物、敌人      monster、Enemies(enemy)

初始化          init

力量            power、str、strength

智力            int、Intelligence

运气            luk、luck

敏捷            AGI、agile

体质            vital、vit、stamina

常用IL指令篇

加减乘除

Add:将两个值相加并将结果赋值到新的变量。

Add.Ovf:将两个整数相加,执行溢出检查,并且将结果赋值到新的变量。

Add.Ovf.Un:将两个无符号整数值相加,执行溢出检查,并且将结果赋值到新的变量。

Div:将两个值相除并将结果作为float或者int32赋值到新的变量。

Div.Un:两个无符号整数值相除并将结果 ( int32 ) 赋值到新的变量。

Mul:将两个值相乘并赋值到新的变量。

Mul.Ovf:将两个整数值相乘,执行溢出检查,并赋值到新的变量。

Mul.Ovf.Un:将两个无符号整数值相乘,执行溢出检查,并赋值到新的变量。

Neg:对一个值取他的相反数。

Add:将两个值相加并将结果赋值到新的变量。

Mul:将两个值相乘并赋值到新的变量。

Sub:将两个值相减并将结果赋值到新的变量。

Div:将两个值相除并将结果作为float或者int32赋值到新的变量。

并列

And:计算两个值的按位“与”并将结果赋值到新的变量。值为1或者0.

判断

Beq:如果两个值相等,则跳转到指定行数。

Beq.S:如果两个值相等,则跳转到指定行数(短格式)。

Bge:如果第一个值大于或等于第二个值,则跳转到指定行数。

Bge.S:如果第一个值大于或等于第二个值,则跳转到指定行数(短格式)。

Bge.Un:当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则跳转到指定行数。

Bge.Un.S:当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则跳转到指定行数(短格式)。

Bgt:如果第一个值大于第二个值,则跳转到指定行数。

Bgt.S:如果第一个值大于第二个值,则跳转到指定行数(短格式)。

Bgt.Un:当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则跳转到指定行数。

Bgt.Un.S:当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则跳转到指定行数(短格式)。

Ble:如果第一个值小于或等于第二个值,则跳转到指定行数。

Ble.S:如果第一个值小于或等于第二个值,则跳转到指定行数(短格式)。

Ble.Un:当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于或等于第二个值,则跳转到指定行数。

Ble.Un.S:当比较无符号整数值或不可排序的浮点值时,如果第一个值小于或等于第二个值,则跳转到指定行数(短格式)。

Blt:如果第一个值小于第二个值,则跳转到指定行数。

Blt.S:如果第一个值小于第二个值,则跳转到指定行数(短格式)。

Blt.Un:当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则跳转到指定行数。

Blt.Un.S:当比较无符号整数值或不可排序的浮点型值时,如果第一个值小于第二个值,则跳转到指定行数(短格式)。

Bne.Un:当两个无符号整数值或不可排序的浮点型值不相等时,将跳转到指定行数。

Bne.Un.S:当两个无符号整数值或不可排序的浮点型值不相等时,则跳转到指定行数(短格式)。

Br:无条件跳转到指定行数。

Br.S:无条件跳转到指定行数(短格式)。

数值转换:

Conv.I:将指定变量的值转换为 native int。

Conv.I1:将指定变量的值转换为 int8,然后将其扩展(填充)为 int32。

Conv.I2:将指定变量的值转换为 int16,然后将其扩展(填充)为 int32。

Conv.I4:将指定变量的值转换为 int32。

Conv.I8:将指定变量的值转换为 int64。

Conv.Ovf.I:将指定变量的有符号值转换为有符号 native int,并在溢出时引发 OverflowException。

Conv.Ovf.I.Un:将指定变量的无符号值转换为有符号 native int,并在溢出时引发 OverflowException。

Conv.Ovf.I1:将指定变量的有符号值转换为有符号 int8 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.I1.Un:将指定变量的无符号值转换为有符号 int8 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.I2:将指定变量的有符号值转换为有符号 int16 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.I2.Un:将指定变量的无符号值转换为有符号 int16 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.I4:将指定变量的有符号值转换为有符号 int32,并在溢出时引发 OverflowException。

Conv.Ovf.I4.Un:将指定变量的无符号值转换为有符号 int32,并在溢出时引发 OverflowException。

Conv.Ovf.I8:将指定变量的有符号值转换为有符号 int64,并在溢出时引发 OverflowException。

Conv.Ovf.I8.Un:将位指定变量的无符号值转换为有符号 int64,并在溢出时引发 OverflowException。

Conv.Ovf.U:将指定变量的有符号值转换为 unsigned native int,并在溢出时引发 OverflowException。

Conv.Ovf.U.Un:将指定变量的无符号值转换为 unsigned native int,并在溢出时引发 OverflowException。

Conv.Ovf.U1:将指定变量的有符号值转换为 unsigned int8 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.U1.Un:将指定变量的无符号值转换为 unsigned int8 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.U2:将指定变量的有符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.U2.Un:将指定变量的无符号值转换为 unsigned int16 并将其扩展为 int32,并在溢出时引发 OverflowException。

Conv.Ovf.U4:将指定变量的有符号值转换为 unsigned int32,并在溢出时引发 OverflowException。

Conv.Ovf.U4.Un:将指定变量的无符号值转换为 unsigned int32,并在溢出时引发 OverflowException。

Conv.Ovf.U8:将指定变量的有符号值转换为 unsigned int64,并在溢出时引发 OverflowException。

Conv.Ovf.U8.Un:将指定变量的无符号值转换为 unsigned int64,并在溢出时引发 OverflowException。

Conv.R.Un:将指定变量的无符号整数值转换为 float32。

Conv.R4:将指定变量的值转换为 float32。

Conv.R8:将指定变量的值转换为 float64。

Conv.U:将指定变量的值转换为 unsigned native int,然后将其扩展为 native int。

Conv.U1:将指定变量的值转换为 unsigned int8,然后将其扩展为 int32。

Conv.U2:将指定变量的值转换为 unsigned int16,然后将其扩展为 int32。

Conv.U4:将指定变量的值转换为 unsigned int32,然后将其扩展为 int32。

参数调用:

Ldarg:将参数(由指定索引值引用)调用。

Ldarg.0:将索引为 0 的参数调用。

Ldarg.1:将索引为 1 的参数调用。

Ldarg.2:将索引为 2 的参数调用。

Ldarg.3:将索引为 3 的参数调用。

Ldarg.S:将参数(由指定的短格式索引引用)调用。

数值定义:

Ldc.I4:定义一个int32数值。

Ldc.I4.0:定义一个int32数值,值为0。

Ldc.I4.1:定义一个int32数值,值为1。

Ldc.I4.2:定义一个int32数值,值为2。

Ldc.I4.3:定义一个int32数值,值为3。

Ldc.I4.4:定义一个int32数值,值为4。

Ldc.I4.5:定义一个int32数值,值为5。

Ldc.I4.6:定义一个int32数值,值为6。

Ldc.I4.7:定义一个int32数值,值为7。

Ldc.I4.8:定义一个int32数值,值为8。

Ldc.I4.M1:定义一个int32数值,值为-1。

Ldc.I4.S:把int8数值当做int32类型(短格式)。

Ldc.I8:定义一个int64数值。

Ldc.R4:定义一个float32数值。

Ldc.R8:定义一个float64数值。

修改操作篇

0   ldarg.0

1   要加的数1

2   要加的数2

3   加减乘除  操作符

4   ret

修改数,或者修改符号

opcode 文档

opcode

工具:ilspy

提取Unity3D 的资源文件

http://www.kanxue.com/bbs/showthread.php?t=191380

Disunity

解压缩包的解压QuickBMS

http://aluigi.altervista.org/quickbms.htm

猛犸汉化QuickBMS中文

http://www.81256.com/game-24905-1-1.html

扑家汉化

http://www.pujia8.com/articles/11/

新加:il2cppdumper

关注微信公众号了解更多il2cppdumper 的内容

关注微信公众号
上一篇下一篇

猜你喜欢

热点阅读