android Unity3D 游戏修改基础篇

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

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 的内容

关注微信公众号
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,306评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,657评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,928评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,688评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,105评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,024评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,159评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,937评论 0 212
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,689评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,851评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,325评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,651评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,364评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,192评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,985评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,154评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,955评论 2 279

推荐阅读更多精彩内容

  • Java byte code 的学习意义 为啥要学java bytecode,这就跟你问我已经会python了为...
    shanggl阅读 1,597评论 0 3
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,314评论 0 5
  • 太极拳是中华民族的一颗璀璨明珠,它松静自然,舒缓柔和,连绵不断,优美大方,身心双修。我自2008年...
    王进慧阅读 298评论 0 0
  • 提前到,不能拖拖拉拉 衣作得体 需要帮忙,就要帮忙 上课严肃,不懂说到懂,威严 说话有条理,备课认真 说一不二 嘴...
    杨婷lavender阅读 120评论 0 0
  • 第一次在课堂上听到老师说简书和热评的作业时,内心真的时非常拒绝的,一是觉得每周都会有固定的作业,毕竟大二的广...
    16喇晓英阅读 272评论 0 0