国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Unity單機(jī)手游逆向破解思路(僅供學(xué)習(xí)參考,禁止用于非法行為)

這篇具有很好參考價(jià)值的文章主要介紹了Unity單機(jī)手游逆向破解思路(僅供學(xué)習(xí)參考,禁止用于非法行為)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、安卓逆向常用工具

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

針對(duì)安卓單機(jī)游戲逆向,尤其是逆向使用Unity引擎開發(fā)的安卓游戲,只需了解下面的工具即可。

(1)Android Killer

?????? Android Killer是安卓通用逆向工具,其可以對(duì)apk進(jìn)行反向編譯,得到smail代碼,用戶可以更改smail代碼后,對(duì)apk重新打包,以實(shí)現(xiàn)破解的功能。其還可以將apk轉(zhuǎn)換成等價(jià)的java語言,以便分析程序邏輯,來更好的找到對(duì)應(yīng)的smail代碼。

(2)ILSpy (針對(duì)Unity開發(fā)的手游)

?????? ILSpy的作用主要是將Unity封裝在apk中的.dll庫文件反編譯成等價(jià)的CSharp代碼,以便于觀察游戲程序邏輯,從而決定修改位置。

(3)ILDasm (針對(duì)Unity開發(fā)的手游)

?????? ILDasm的作用主要是將Unity封裝在apk中的.dll庫文件反編譯成等價(jià)的可編輯的IL類匯編指令。

(4)ILasm (針對(duì)Unity開發(fā)的手游)

?????? ILasm的作用是將IL類匯編指令重新編譯成.dll文件。

二、逆向案例分析

1、Unity單機(jī)手游案例1

以Unity單機(jī)手游“模擬生活”為例,說明Unity類手游的破解思路。

(1)解壓apk文件

使用解壓軟件直接將apk解壓,解壓完成后,進(jìn)入到assets\bin\Data\Managed目錄中(僅限Unity手游),并找到其中的Assembly-CSharp.dll文件(存放了游戲主邏輯),如圖所示:

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?文章來源地址http://www.zghlxwxcb.cn/news/detail-805911.html

?????? 隨后以文本方式打開”Assembly-CSharp.dll”文件,查看是否被加密,如圖所示:

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?????? 一般情況下,能解析出如圖所示的文本,說明.dll文件未被加密,可以直接進(jìn)行逆向分析。

(2)使用ILSpy軟件查看C#語言等價(jià)源碼確定修改位置

?????? 打開ILSpy軟件,選擇打開”Assembly-CSharp.dll”文件后,軟件會(huì)自動(dòng)進(jìn)行反編譯處理,將.dll文件反編譯為C#語言,隨后我們可以搜索游戲關(guān)鍵字,比如金錢(money)、等級(jí)(level)、血量(HP)和經(jīng)驗(yàn)(Exp)等等,一般正規(guī)的游戲,變量命名都會(huì)很規(guī)范,如果實(shí)在找不到,只能硬啃代碼進(jìn)行分析了。

?????? 這里以查找“模擬生活”游戲中的金錢為例,搜索money后出現(xiàn)了很多結(jié)果,如圖所示

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

????????? 在搜索結(jié)果(圖中標(biāo)2所示)中,依次查看最可能有修改金錢操作的代碼,這里最后鎖定了”EarnMoneyBonus”類,字面意思就是“賺錢獎(jiǎng)勵(lì)”,隨后點(diǎn)進(jìn)去,發(fā)現(xiàn)其中有Update()和FixedUpdate()函數(shù),這兩個(gè)函數(shù),是Unity游戲中的重要函數(shù),其分別表示隨著游戲的進(jìn)行,每一幀都會(huì)調(diào)用的函數(shù)(Update)和每隔固定時(shí)間會(huì)調(diào)用的函數(shù)(FixedUpdate)。

?????? 先觀察Update中的函數(shù),從變量名分析,其中會(huì)對(duì)一個(gè)時(shí)間相關(guān)的變量進(jìn)行操作,和金錢關(guān)系不大,因此跳轉(zhuǎn)到觀察FixedUpdate函數(shù)。FixedUpdate函數(shù)中,沒有看到和money相關(guān)的字眼,但是有一個(gè)自定義的Finish函數(shù),于是繼續(xù)查看Finish函數(shù),如圖所示。

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?

?????? 在里面終于看到和money有關(guān)的變量m_moneySum(金錢總數(shù))了,繼續(xù)觀察,還有m_multiplier(倍率),這兩個(gè)量通過一定的計(jì)算關(guān)系賦值給num:

num=m_moneySum*(m_multiplier-1),而后的代碼(2中),以num作為參數(shù)進(jìn)行了某些操作,再往后看代碼3,其中調(diào)用了SetText(設(shè)置文本)函數(shù),通常此類函數(shù)是直接影響顯示界面的,也就是說,這個(gè)函數(shù)改變了某個(gè)地方顯示的文本,再看里面的參數(shù),還是和m_moneySum和m_multiplier有關(guān),因此可以斷定,改變這兩個(gè)值中的一個(gè),必定會(huì)使游戲某個(gè)地方的文本產(chǎn)生突變。為了使游戲保留可玩性,從字面意思理解改m_multiplier(倍率)可能會(huì)更好(也可以試著改其他變量)。

可以看到,之后m_multiplier被重新賦值為1,這里為了效果明顯,將其改為1000000試試(不是直接改C#代碼),這里相當(dāng)于確定了修改的位置為”EarnMoneyBonus”類中”Finsh”函數(shù)中的”m_multiplier”變量。

(3)通過ILDasm插件,確定IL匯編指令的修改位置

?????? 在Visual Studio 2019及以上版本中,內(nèi)置了ILDasm插件,先在之前解壓的apk的Managed上右鍵,選擇“使用Visual Studio打開(V)”,這個(gè)操作的目的是為了使工作目錄直接切換到”Assembly-CSharp.dll”文件所在目錄,省了很多操作,如圖所示。

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?之后,可以在Visual Studio的“工具”,“命令行(L)”中選擇“開發(fā)者命令提示(C)”,如圖所示:

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?隨后輸入如下命令將”Assembly-CSharp.dll”文件反匯編成IL指令文件:

ildasm Assembly-CSharp.dll

效果如圖所示:

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?此時(shí)自動(dòng)彈出了ILDASM插件的GUI界面,并把.dll反匯編成了.il,之后要做的就是定位IL指令文件中需要修改的位置。

根據(jù)前面確定的修改位置,先找到”EarnMoneyBonus”類,再找到其中的”Finsh”函數(shù),最后定位給”m_multiplier”變量賦值為1的地方。

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?

?????? 最后我們確定了需要修改的地方為IL_00ce: ldc.r4 1,如果改成IL_00ce: ldc.r4 1000000,則意味著每次運(yùn)行Finish函數(shù)后,m_multiplier都會(huì)被賦值為1000000,這里不能直接修改,需要等導(dǎo)出文本文件后再修改,因此先復(fù)制特征串”IL_00d3: stfld float32 EarnMoneyBonus::m_multiplier”以便于查找到需要修改的位置。

?????? 如圖,在“文件(F)”中,找到“轉(zhuǎn)儲(chǔ)(D)”,隨后保存,命名為“Assembly-CSharp.il”,如圖所示:

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?

(4)修改“Assembly-CSharp.il”文件

?????? 使用任意文本編輯器打開“Assembly-CSharp.il”文件后定位到(3)中確定的修改位置后(直接搜索前面復(fù)制的特征串),將其改為1000000,如圖所示。

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?(5)編譯“Assembly-CSharp.il”文件

?????? 使用ILasm插件將“Assembly-CSharp.il”文件編譯為“Assembly-CSharp.dll”文件。和前面步驟一樣,在Visual Studio中打開命令提示符后,使用如下命令編譯“Assembly-CSharp.il”文件:

ilasm Assembly-CSharp.il /output=Assembly-CSharp_crack.dll /dll

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?

這里為了不覆蓋原來的“Assembly-CSharp.dll”文件,將新編譯的文件命名為“Assembly-CSharp_crack.dll”文件,該文件就是破解后的Unity游戲主邏輯文件,替換掉原Apk中的“Assembly-CSharp.dll”文件后,重新打包編譯apk就能生成破解的游戲安裝包了。

(6)使用Android Killer重新編譯Apk

使用Android Killer打開“生活模擬器”apk,之后進(jìn)入到Android Killer該安裝包的工程目錄projects\安裝包名稱\Project\assets\bin\Data\Managed中,用Assembly-CSharp_crack.dll替換掉原Assembly-CSharp.dll文件(替換后,將_crack后綴刪除),如圖所示

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

?????? 隨后點(diǎn)擊Android Killer中的編譯功能,編譯生成破解的apk,如圖所示:

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

??????? 破解的apk輸出的位置為projects\安裝包名稱\Bin\xxx.apk。

效果如圖所示,每點(diǎn)擊一次掙錢,獲得的是999999金錢,和前面反編譯出的C#源碼中,num=m_moneySum*(m_multiplier-1)計(jì)算結(jié)果一致,其中m_multiplier為倍率,被我們修改為1000000了,而m_moneySum為1,因此每點(diǎn)擊一次得到999999

unity手游逆向,安卓逆向,unity,游戲,c#,android,安全

三、附錄

本文所用的Android Killer和ILSpy軟件鏈接如下:

鏈接:https://pan.baidu.com/s/1oiecCQkJVFoucLmwSZfJIA?
提取碼:long?

關(guān)于ILDasm和ILasm插件,可下載安裝Visual Studio 2019及以上版本,其內(nèi)置了這兩個(gè)插件,VS官網(wǎng)下載地址如下(其中Community為免費(fèi)版):

Visual Studio: 面向軟件開發(fā)人員和 Teams 的 IDE 和代碼編輯器 (microsoft.com)

?

到了這里,關(guān)于Unity單機(jī)手游逆向破解思路(僅供學(xué)習(xí)參考,禁止用于非法行為)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 逆向破解思路和獲取app的代碼,脫殼操作(四)

    逆向破解思路和獲取app的代碼,脫殼操作(四)

    加殼 什么是加殼? 我們的ipa文件上傳appstore,蘋果會(huì)給我們做一個(gè)加密,其實(shí)我們運(yùn)行在內(nèi)存中的過程是一個(gè)加密的殼程序,當(dāng)然在手機(jī)中我們會(huì)對(duì)他進(jìn)行解密殼程序,來直接運(yùn)行可執(zhí)行的文件,當(dāng)然蘋果這樣做的目的是為了保護(hù)我們的程序。 脫殼 脫殼的方式 1.硬脫殼:

    2024年02月15日
    瀏覽(21)
  • hive學(xué)習(xí)(僅供參考)

    hive學(xué)習(xí)(僅供參考)

    將結(jié)構(gòu)化的數(shù)據(jù)文件映射為數(shù)據(jù)庫表 提供類sql的查詢語言HQL(Hive Query Language) Hive讓更多的人使用Hadoop 提供了一個(gè)簡單的優(yōu)化模型 HQL類SQL語法,簡化MR開發(fā) 支持在不同的計(jì)算框架上運(yùn)行 支持在HDFS和HBase上臨時(shí)查詢數(shù)據(jù) 支持用戶自定義函數(shù)、格式 常用于ETL操作和BI 穩(wěn)定可靠(

    2023年04月08日
    瀏覽(36)
  • Unity游戲逆向及破解方法介紹

    Unity游戲逆向及破解方法介紹

    背景介紹 隨著手游的發(fā)展,Unity3D引擎逐漸成為主流的游戲開發(fā)解決方案,傳統(tǒng)cocos的2D游戲逐漸被取代,一些公司在Unity3D游戲方面的產(chǎn)出也越來越多,如天天飛車,天天來戰(zhàn),全民破壞神,全民偶像,全民突擊等游戲。Unity3D游戲的不斷產(chǎn)出,游戲的安全性要求也越來越高,

    2023年04月08日
    瀏覽(39)
  • Python爬取MidJourney歷史圖片【僅供參考學(xué)習(xí)使用】

    使用MidJourney時(shí), 在https://www.midjourney.com/app/這里有接口https://www.midjourney.com/api/app/recent-jobs/?amount=35dedupe=truejobStatus=completedjobType=upscaleorderBy=newpage=3prompt=undefinedrefreshApi=0searchType=advancedservice=nulltoDate=2023-06-16+09%3A50%3A17.379092type=alluserId=b12e169c-f609-4fd6-b917-11c2deaa8cffuser_id_ranked_score=n

    2024年02月13日
    瀏覽(34)
  • 深度學(xué)習(xí):從入門到精通課后習(xí)題解答本答案僅供參考

    第一章: 1、通過本章的學(xué)習(xí),你認(rèn)為深度學(xué)習(xí)崛起的原因有哪些? 答:(1) 計(jì)算能力的發(fā)展。深度學(xué)習(xí)的起源并不晚,但是在發(fā)展初期遭遇瓶頸的最主要原因是:當(dāng)時(shí)的計(jì)算資源無法支持我們實(shí)現(xiàn)深度學(xué)習(xí)如此龐大復(fù)雜的計(jì)算。直到我們開始使用GPU進(jìn)行計(jì)算后,深度學(xué)習(xí)才終

    2024年02月07日
    瀏覽(37)
  • OpenCV學(xué)習(xí)筆記之Overload報(bào)錯(cuò)的處理(僅供參考)

    今天在練習(xí)一個(gè)文檔識(shí)別的小項(xiàng)目時(shí),運(yùn)行后一直提示報(bào)錯(cuò),可是我還不知道問題出在哪里,源代碼如下: 報(bào)錯(cuò)內(nèi)容如下: 可是錯(cuò)誤并不在報(bào)錯(cuò)所提示的那一行,而是上面的findContours()函數(shù),新版本中這個(gè)函數(shù)要有兩個(gè)返回值(以前好像是有三個(gè)),猛然反應(yīng)過來以后,加上

    2024年02月12日
    瀏覽(16)
  • C/C++安卓手游內(nèi)存逆向、手游call教程(類人猿學(xué)院)

    主要內(nèi)容和方向: 從C語言基礎(chǔ)知識(shí)講起;x86/x64/arm匯編基礎(chǔ)、逆向手游內(nèi)部數(shù)據(jù)、內(nèi)存讀寫和call調(diào)用、內(nèi)部hook;注入call框架編寫;輔助控制界面和通訊;內(nèi)部封包逆向數(shù)據(jù)分析 。目前全網(wǎng)就我們能搞安卓手機(jī)、模擬器call分析和調(diào)用一套龍教程,學(xué)會(huì)基本是手游腳本輔助行

    2024年02月04日
    瀏覽(25)
  • 吾愛破解安卓逆向入門教程學(xué)習(xí)心得(1-4)

    吾愛破解安卓逆向入門教程學(xué)習(xí)心得(1-4)

    b站視頻鏈接:https://www.bilibili.com/video/BV1wT411N7sV/?vd_source=f767aeec67fd5d5cc2f6ff3e890917d0 源帖:https://www.52pojie.cn/thread-1695141-1-1.html 下載個(gè)雷電模擬器,MT管理器,NP管理器 將MT管理器,NP管理器拖到雷電 相關(guān)軟件地址https://www.aliyundrive.com/s/TJoKMK6du6x 接著在雷電開啟root然后重啟 具體配置

    2024年02月10日
    瀏覽(21)
  • FPS手游逆向分析--------矩陣的精確定位

    2.1精確定位矩陣 通過上述步驟 我們找到了矩陣,但矩陣確會(huì)在每次打開游戲后由于內(nèi)存的分配而重新加載,如何實(shí)現(xiàn)自動(dòng)尋找矩陣便是我們要考慮的問題 2.1.1通過特征碼定位矩陣 所謂特征碼就是總出現(xiàn)在變動(dòng)值附近的不變動(dòng)的值 與上文的通用特征碼不同 定位矩陣的特征碼

    2024年02月12日
    瀏覽(21)
  • LCD1602操作指令(僅供參考)

    1.清屏指令( 0000 0001 ) 1.清除液晶顯示器,即將DDRAM的內(nèi)容全部清除。 2.光標(biāo)回到液晶屏左上方。 3.地址計(jì)數(shù)器(AC)的值設(shè)置為0。 2.光標(biāo)歸位指令(0000 001x) 1.把光標(biāo)返回到液晶屏左上方。 2.把地址計(jì)數(shù)器(AC)的值設(shè)置為0。 3.保持DDRAM的內(nèi)容不變。 3.模式設(shè)置指令(0000

    2024年02月05日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包