視頻里的東西镇匀,整理成文章忿磅,
Unity3D逆向系列(基礎(chǔ))大綱
基礎(chǔ)介紹篇
1.unity逆向環(huán)境搭建
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環(huán)境)http://pan.baidu.com/s/1eQoZtmE
安裝破解需要斷網(wǎng)
2.unity文件介紹
1.所有文件都在/bin/data里面
2.settings.xml ? ? ? ? ? ? ? ? unity配置文件
3.splash.png ? ? ? ? ? ? ? ? ? apk默認(rèn)啟動(dòng)圖
4.sharedassets0.assets ? ? ? ? unity資源文件打包文件
5.sharedassets0.assets.split ? unity資源文件打包文件
6.managed文件夾 ? ? ? ? ? ? ? ?unity游戲源代碼
7.unity default resources ? ? ?unity語言包
3.reflector工具使用
1.Analyze關(guān)聯(lián)定位工具 ?ctrl+R
1.depends on 數(shù)據(jù)來源
2.used by ? ?數(shù)據(jù)應(yīng)用
2.Search查找工具 ? ? ? F3
1.Search Type ? ? ? ? ? ? ? ? 查找類名
2.Search Member ? ? ? ? ? ? ? 查找方法名
3.Search string or constant ? 查找字符串或者數(shù)值
4.exact match ? ? ? ? ? ? ? ? 精確匹配
3.Language反編譯代碼顯示方式
C#另患、vb等多種方式
4.refresh ? ? ? ? ? ? ?F5
修改小技巧
5.reflexil代碼修改工具
1.offset行數(shù)
2.opcode代碼類型、定義類型
3.operand代碼數(shù)值芳绩、調(diào)用類型
常用關(guān)鍵字篇
中文>>>>>>>>>>>>英文
金幣 ? ? ? ? ? ?gold掀亥、coin、cash妥色、money
鉆石搪花、寶石 ? ? ?Gem、diamond
生命 ? ? ? ? ? ?health嘹害、life撮竿、HP、Max hp
冷卻時(shí)間??? cooldown
藍(lán) ? ? ? ? ? ? ?mp笔呀、sp幢踏、Power
攻擊 ? ? ? ? ? ?attack(atk)、fight许师、hit房蝉、damage
防御 ? ? ? ? ? ?defence(def)
護(hù)甲 ? ? ? ? ? ?Armor
物理 ? ? ? ? ? ?physic(phy)
魔法 ? ? ? ? ? ?magic(mag)
暴擊 ? ? ? ? ? ?Crit(cri)(crt)
閃避 ? ? ? ? ? ?Dodge
范圍 ? ? ? ? ? ?range
速度僚匆、頻率 ? ? ?speed
改路 ? ? ? ? ? ?Rate
恢復(fù) ? ? ? ? ? ?Recover
取 ? ? ? ? ? ? ?get
置 ? ? ? ? ? ? ?set
支付 ? ? ? ? ? ?bill、billing搭幻、pay白热、purchase
成功 ? ? ? ? ? ?success
失敗 ? ? ? ? ? ?fail
取消 ? ? ? ? ? ?cancel
分?jǐn)?shù) ? ? ? ? ? ?Score
死亡 ? ? ? ? ? ?Dead
英雄曼氛、玩家 ? ? ?Hero镀梭、player
怪物旗芬、敵人 ? ? ?monster、Enemies(enemy)
初始化 ? ? ? ? ?init
力量 ? ? ? ? ? ?power续扔、str、strength
智力 ? ? ? ? ? ?int焕数、Intelligence
運(yùn)氣 ? ? ? ? ? ?luk纱昧、luck
敏捷 ? ? ? ? ? ?AGI、agile
體質(zhì) ? ? ? ? ? ?vital堡赔、vit识脆、stamina
常用IL指令篇
加減乘除
Add:將兩個(gè)值相加并將結(jié)果賦值到新的變量。
Add.Ovf:將兩個(gè)整數(shù)相加善已,執(zhí)行溢出檢查灼捂,并且將結(jié)果賦值到新的變量。
Add.Ovf.Un:將兩個(gè)無符號整數(shù)值相加换团,執(zhí)行溢出檢查悉稠,并且將結(jié)果賦值到新的變量。
Div:將兩個(gè)值相除并將結(jié)果作為float或者int32賦值到新的變量艘包。
Div.Un:兩個(gè)無符號整數(shù)值相除并將結(jié)果 ( int32 ) 賦值到新的變量的猛。
Mul:將兩個(gè)值相乘并賦值到新的變量。
Mul.Ovf:將兩個(gè)整數(shù)值相乘想虎,執(zhí)行溢出檢查卦尊,并賦值到新的變量。
Mul.Ovf.Un:將兩個(gè)無符號整數(shù)值相乘舌厨,執(zhí)行溢出檢查岂却,并賦值到新的變量。
Neg:對一個(gè)值取他的相反數(shù)邓线。
Add:將兩個(gè)值相加并將結(jié)果賦值到新的變量淌友。
Mul:將兩個(gè)值相乘并賦值到新的變量。
Sub:將兩個(gè)值相減并將結(jié)果賦值到新的變量骇陈。
Div:將兩個(gè)值相除并將結(jié)果作為float或者int32賦值到新的變量震庭。
并列
And:計(jì)算兩個(gè)值的按位“與”并將結(jié)果賦值到新的變量。值為1或者0.
判斷
Beq:如果兩個(gè)值相等你雌,則跳轉(zhuǎn)到指定行數(shù)器联。
Beq.S:如果兩個(gè)值相等二汛,則跳轉(zhuǎn)到指定行數(shù)(短格式)。
Bge:如果第一個(gè)值大于或等于第二個(gè)值拨拓,則跳轉(zhuǎn)到指定行數(shù)肴颊。
Bge.S:如果第一個(gè)值大于或等于第二個(gè)值,則跳轉(zhuǎn)到指定行數(shù)(短格式)渣磷。
Bge.Un:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí)婿着,如果第一個(gè)值大于第二個(gè)值,則跳轉(zhuǎn)到指定行數(shù)醋界。
Bge.Un.S:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí)竟宋,如果第一個(gè)值大于第二個(gè)值,則跳轉(zhuǎn)到指定行數(shù)(短格式)形纺。
Bgt:如果第一個(gè)值大于第二個(gè)值丘侠,則跳轉(zhuǎn)到指定行數(shù)。
Bgt.S:如果第一個(gè)值大于第二個(gè)值逐样,則跳轉(zhuǎn)到指定行數(shù)(短格式)蜗字。
Bgt.Un:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí),如果第一個(gè)值大于第二個(gè)值脂新,則跳轉(zhuǎn)到指定行數(shù)挪捕。
Bgt.Un.S:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí),如果第一個(gè)值大于第二個(gè)值戏羽,則跳轉(zhuǎn)到指定行數(shù)(短格式)担神。
Ble:如果第一個(gè)值小于或等于第二個(gè)值,則跳轉(zhuǎn)到指定行數(shù)始花。
Ble.S:如果第一個(gè)值小于或等于第二個(gè)值妄讯,則跳轉(zhuǎn)到指定行數(shù)(短格式)。
Ble.Un:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí)酷宵,如果第一個(gè)值小于或等于第二個(gè)值亥贸,則跳轉(zhuǎn)到指定行數(shù)。
Ble.Un.S:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)值時(shí)浇垦,如果第一個(gè)值小于或等于第二個(gè)值炕置,則跳轉(zhuǎn)到指定行數(shù)(短格式)。
Blt:如果第一個(gè)值小于第二個(gè)值男韧,則跳轉(zhuǎn)到指定行數(shù)朴摊。
Blt.S:如果第一個(gè)值小于第二個(gè)值,則跳轉(zhuǎn)到指定行數(shù)(短格式)此虑。
Blt.Un:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí)甚纲,如果第一個(gè)值小于第二個(gè)值,則跳轉(zhuǎn)到指定行數(shù)朦前。
Blt.Un.S:當(dāng)比較無符號整數(shù)值或不可排序的浮點(diǎn)型值時(shí)介杆,如果第一個(gè)值小于第二個(gè)值鹃操,則跳轉(zhuǎn)到指定行數(shù)(短格式)。
Bne.Un:當(dāng)兩個(gè)無符號整數(shù)值或不可排序的浮點(diǎn)型值不相等時(shí)春哨,將跳轉(zhuǎn)到指定行數(shù)荆隘。
Bne.Un.S:當(dāng)兩個(gè)無符號整數(shù)值或不可排序的浮點(diǎn)型值不相等時(shí),則跳轉(zhuǎn)到指定行數(shù)(短格式)赴背。
Br:無條件跳轉(zhuǎn)到指定行數(shù)椰拒。
Br.S:無條件跳轉(zhuǎn)到指定行數(shù)(短格式)。
數(shù)值轉(zhuǎn)換:
Conv.I:將指定變量的值轉(zhuǎn)換為 native int凰荚。
Conv.I1:將指定變量的值轉(zhuǎn)換為 int8耸三,然后將其擴(kuò)展(填充)為 int32。
Conv.I2:將指定變量的值轉(zhuǎn)換為 int16浇揩,然后將其擴(kuò)展(填充)為 int32。
Conv.I4:將指定變量的值轉(zhuǎn)換為 int32憨颠。
Conv.I8:將指定變量的值轉(zhuǎn)換為 int64胳徽。
Conv.Ovf.I:將指定變量的有符號值轉(zhuǎn)換為有符號 native int,并在溢出時(shí)引發(fā) OverflowException爽彤。
Conv.Ovf.I.Un:將指定變量的無符號值轉(zhuǎn)換為有符號 native int养盗,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.I1:將指定變量的有符號值轉(zhuǎn)換為有符號 int8 并將其擴(kuò)展為 int32适篙,并在溢出時(shí)引發(fā) OverflowException往核。
Conv.Ovf.I1.Un:將指定變量的無符號值轉(zhuǎn)換為有符號 int8 并將其擴(kuò)展為 int32,并在溢出時(shí)引發(fā) OverflowException嚷节。
Conv.Ovf.I2:將指定變量的有符號值轉(zhuǎn)換為有符號 int16 并將其擴(kuò)展為 int32聂儒,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.I2.Un:將指定變量的無符號值轉(zhuǎn)換為有符號 int16 并將其擴(kuò)展為 int32硫痰,并在溢出時(shí)引發(fā) OverflowException衩婚。
Conv.Ovf.I4:將指定變量的有符號值轉(zhuǎn)換為有符號 int32,并在溢出時(shí)引發(fā) OverflowException效斑。
Conv.Ovf.I4.Un:將指定變量的無符號值轉(zhuǎn)換為有符號 int32非春,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.I8:將指定變量的有符號值轉(zhuǎn)換為有符號 int64缓屠,并在溢出時(shí)引發(fā) OverflowException奇昙。
Conv.Ovf.I8.Un:將位指定變量的無符號值轉(zhuǎn)換為有符號 int64,并在溢出時(shí)引發(fā) OverflowException敌完。
Conv.Ovf.U:將指定變量的有符號值轉(zhuǎn)換為 unsigned native int储耐,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.U.Un:將指定變量的無符號值轉(zhuǎn)換為 unsigned native int蠢挡,并在溢出時(shí)引發(fā) OverflowException弧岳。
Conv.Ovf.U1:將指定變量的有符號值轉(zhuǎn)換為 unsigned int8 并將其擴(kuò)展為 int32凳忙,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.U1.Un:將指定變量的無符號值轉(zhuǎn)換為 unsigned int8 并將其擴(kuò)展為 int32禽炬,并在溢出時(shí)引發(fā) OverflowException涧卵。
Conv.Ovf.U2:將指定變量的有符號值轉(zhuǎn)換為 unsigned int16 并將其擴(kuò)展為 int32,并在溢出時(shí)引發(fā) OverflowException腹尖。
Conv.Ovf.U2.Un:將指定變量的無符號值轉(zhuǎn)換為 unsigned int16 并將其擴(kuò)展為 int32柳恐,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.U4:將指定變量的有符號值轉(zhuǎn)換為 unsigned int32热幔,并在溢出時(shí)引發(fā) OverflowException乐设。
Conv.Ovf.U4.Un:將指定變量的無符號值轉(zhuǎn)換為 unsigned int32,并在溢出時(shí)引發(fā) OverflowException绎巨。
Conv.Ovf.U8:將指定變量的有符號值轉(zhuǎn)換為 unsigned int64近尚,并在溢出時(shí)引發(fā) OverflowException。
Conv.Ovf.U8.Un:將指定變量的無符號值轉(zhuǎn)換為 unsigned int64场勤,并在溢出時(shí)引發(fā) OverflowException戈锻。
Conv.R.Un:將指定變量的無符號整數(shù)值轉(zhuǎn)換為 float32。
Conv.R4:將指定變量的值轉(zhuǎn)換為 float32和媳。
Conv.R8:將指定變量的值轉(zhuǎn)換為 float64格遭。
Conv.U:將指定變量的值轉(zhuǎn)換為 unsigned native int,然后將其擴(kuò)展為 native int留瞳。
Conv.U1:將指定變量的值轉(zhuǎn)換為 unsigned int8拒迅,然后將其擴(kuò)展為 int32。
Conv.U2:將指定變量的值轉(zhuǎn)換為 unsigned int16她倘,然后將其擴(kuò)展為 int32璧微。
Conv.U4:將指定變量的值轉(zhuǎn)換為 unsigned int32,然后將其擴(kuò)展為 int32硬梁。
參數(shù)調(diào)用:
Ldarg:將參數(shù)(由指定索引值引用)調(diào)用往毡。
Ldarg.0:將索引為 0 的參數(shù)調(diào)用。
Ldarg.1:將索引為 1 的參數(shù)調(diào)用靶溜。
Ldarg.2:將索引為 2 的參數(shù)調(diào)用开瞭。
Ldarg.3:將索引為 3 的參數(shù)調(diào)用。
Ldarg.S:將參數(shù)(由指定的短格式索引引用)調(diào)用罩息。
數(shù)值定義:
Ldc.I4:定義一個(gè)int32數(shù)值嗤详。
Ldc.I4.0:定義一個(gè)int32數(shù)值,值為0瓷炮。
Ldc.I4.1:定義一個(gè)int32數(shù)值葱色,值為1。
Ldc.I4.2:定義一個(gè)int32數(shù)值娘香,值為2苍狰。
Ldc.I4.3:定義一個(gè)int32數(shù)值办龄,值為3。
Ldc.I4.4:定義一個(gè)int32數(shù)值淋昭,值為4俐填。
Ldc.I4.5:定義一個(gè)int32數(shù)值,值為5翔忽。
Ldc.I4.6:定義一個(gè)int32數(shù)值英融,值為6。
Ldc.I4.7:定義一個(gè)int32數(shù)值歇式,值為7驶悟。
Ldc.I4.8:定義一個(gè)int32數(shù)值,值為8材失。
Ldc.I4.M1:定義一個(gè)int32數(shù)值痕鳍,值為-1。
Ldc.I4.S:把int8數(shù)值當(dāng)做int32類型(短格式)龙巨。
Ldc.I8:定義一個(gè)int64數(shù)值额获。
Ldc.R4:定義一個(gè)float32數(shù)值。
Ldc.R8:定義一個(gè)float64數(shù)值恭应。
修改操作篇
0 ? ldarg.0
1 ? 要加的數(shù)1
2 ? 要加的數(shù)2
3 ? 加減乘除 ?操作符
4 ? ret
修改數(shù),或者修改符號
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
關(guān)注微信公眾號了解更多il2cppdumper 的內(nèi)容