綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[修改] 捆绑编年史—GP302—你根本打不疼我

 關閉 [複製連結] 查看: 11507|回覆: 63|好評: 0
51
donkey7 | 收聽TA | 只看該作者
發表於 2016-12-27 12:14
由 手機網頁 發佈
加油~達人們~魔神快來了!我只求高攻版99999就行了~~~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

52
FIRST777 | 收聽TA | 只看該作者
發表於 2016-12-27 16:04
大神们加油,求atk版本
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

53
shuangyi | 收聽TA | 只看該作者
發表於 2016-12-27 19:57
期待能出高ATK版
不然上班族要打魔神
真的沒那麼多時間@@"
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

54
gdemon | 收聽TA | 只看該作者
發表於 2016-12-28 01:39
解決了一些問題,取之於apk,那就回饋於apk

1. symbol的address有可能不同
這點是我在公司開3.0.0的版本來試驗時發現的...
對照perfare的 超簡單的il2cpp遊戲修改教程,我發現我找到的symbol address跟截圖有差,目前不確定是不是因為用ida 32/64的差異

2. 用大神寫的unity_loader.py這個plugin可能會出問題
我自己是ida 6.8,load那個script會出問題,因為我的ida沒有ida_idp這個python module
從git hub的report issues發現,可以check回某一版
作者說他ida_idp只是用來check binary是否為x86,所以如果用舊版的話,不support x86,但用回舊版還有其他issues (詳見issues report)
所以我個人的解法是手動幹掉:
import ida_idp
if "PC" in ida_idp.ph_get_regnames() or "pc" in ida_idp.ph_get_regnames():
    ARCH = "arm"
else:
ARCH = "x86"
這樣load scriopt後就能跑了
按下ctrl alt a後,等他跑完,所有的symbol就都對得上了,然後就也不用用Il2CppDumper.exe dump cs出來找位置(我自己試過,Il2CppDumper.exe dump出來的dumped.cs跟他mapped的address是一致的)

3. 此時在ida的function table已經有所有的symbole,我直接搜尋get_atk
然後修改如下圖

                               
登錄/註冊後可看大圖



然後......load activity就crash了......Q Q
有人可以再給一下提示嗎?
dump如下
12-28 01:02:56.987 30388-30434/? D/dalvikvm: Trying to load lib /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so 0x41fdbd30
12-28 01:02:57.011 30388-30434/? D/dalvikvm: Added shared lib /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so 0x41fdbd30
12-28 01:02:57.011 30388-30434/? D/dalvikvm: No JNI_OnLoad found in /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so 0x41fdbd30, skipping init
12-28 01:02:57.637 30388-30434/? E/CRASH: pid: 30388, tid: 30434, name: UnityMain  >>> com.sega.chainchronicle <<<
12-28 01:02:57.714 30388-30434/? E/CRASH:         #00  pc 01429d7c  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:         #01  pc 01429d04  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:         #02  pc 0142a370  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:          6305315c  6613fc88  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:          63053160  66307b62  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:          630531a4  66140d08  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:          630531c0  6630db68  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:          630531c4  6630e1fc  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.714 30388-30434/? E/CRASH:          630531cc  66141374  /data/app-lib/com.sega.chainchronicle-1/libil2cpp.so
12-28 01:02:57.717 30388-30434/? W/System.err: pid: 30388, tid: 30434, name: UnityMain  >>> com.sega.chainchronicle <<<
12-28 01:02:57.718 30388-30434/? E/AndroidRuntime: FATAL EXCEPTION: UnityMain
                                                   java.lang.Error: FATAL EXCEPTION [UnityMain]
                                                   Unity version     : 5.4.3p2
                                                   Device model      : Foxconn International Holdings Limited InFocus M320
                                                   Device fingerprint: infocus/M320_15TW/M320:4.2.2/JDQ39/15TW_0_13T:user/release-keys
                                                   
                                                   Caused by: java.lang.Error: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 6b0531cc
                                                   Build fingerprint: "infocus/M320_15TW/M320:4.2.2/JDQ39/15TW_0_13T:user/release-keys"
                                                   Revision: "0"
                                                   pid: 30388, tid: 30434, name: UnityMain  >>> com.sega.chainchronicle <<<
                                                       r0 01ffffff  r1 00000012  r2 701c4000  r3 00000001
                                                       r4 665bbebc  r5 00000000  r6 00000008  r7 66d762c0
                                                       r8 fffffff7  r9 ffffffff  sl 630531d0  fp 6305320c
                                                       ip 6650efd4  sp 63053180  lr 66140d54  pc 66140d7c  cpsr 5f575435
                                                   
                                                       at libil2cpp.01429d7c(Native Method)
                                                       at libil2cpp.01429d04(Native Method)
                                                       at libil2cpp.0142a370(Native Method)
12-28 01:02:57.719 670-3095/? W/ActivityManager:   Force finishing activity com.sega.chainchronicle/.MainActivity


用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

55
星幻。 | 收聽TA | 只看該作者
發表於 2016-12-28 10:54
perfare 發表於 2016-12-27 03:27
那個不是我提供的addr呀,我dump出來的get_ATK()應該在2cdb98,get_HP()應該在2cdbc4
運行py腳本是從File ...

運行py 腳本時, 出現Function declaration is expected 不知道是什麼意思..
沒找到解決方法.. 求救一下~
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

56
gdemon | 收聽TA | 只看該作者
發表於 2016-12-29 00:16
回文被吃掉兩次....這次簡單回好了....

過程中會遇到一些問題,第一個問題是:
No module named ida_idp

原因是你的ida沒有idp這個plugin
但idp只是用來判斷是否binary為x86,所以可以手動決定
開啟unity_loader.py
將第二行的import ida_idp砍掉
將下面這個function block砍掉,因為cc是arm,而在上面已經assign arm
if "PC" in ida_idp.ph_get_regnames() or "pc" in ida_idp.ph_get_regnames():
    ARCH = "arm"
else:
    ARCH = "x86"

到這裡為止,plugin跑得起來了

然後,你可能仍然的dump不出來東西,這是因為unity_decoder.exe跑不起來
你可以double click unity_decoder.exe,看跑不跑得起來
在沒裝vc的電腦上,會少dll,所以unity_decoder.exe的debug build跑不起來
我的解法是,copy release build就好了

然後就會dump出東西了,並且將function name的symbol mapping回address

只是我目前遇到的問題是,unity_loader.py找出來的東西,沒有get_atk()這個function,也沒有il2cpp::vm::MetadataCache::Register
像這樣....

                               
登錄/註冊後可看大圖

                               
登錄/註冊後可看大圖
border=0 />

                               
登錄/註冊後可看大圖


這邊還要請教大家到底怎找到address的.....
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

57
gdemon | 收聽TA | 只看該作者
發表於 2016-12-29 00:22
本帖最後由 gdemon 於 2016-12-29 00:23 編輯
星幻。 發表於 2016-12-28 10:54
運行py 腳本時, 出現Function declaration is expected 不知道是什麼意思..
沒找到解決方法.. 求救一下~
...

Hi,

run script的方式是file -> script file(或alt + f7)
如下圖

                               
登錄/註冊後可看大圖


然後,你的問題,我沒遇到過
貼個git hub上的report issue link給你參考
Function declaration is expected #5
不過我看了一下,蠻無言的,其實沒有真的解,但原作者就把這個issue關掉了.......
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

58
gdemon | 收聽TA | 只看該作者
發表於 2016-12-29 00:32
perfare 發表於 2016-12-26 23:32
你都找到這篇文章了居然沒用裡面提供的腳本嗎。。。
https://github.com/nevermoe/unity_metadata_loader
...

大神,再請教一下
我script成功的跑起來了,script也把一些symbol mapping回去了,但maaping回去的symbol中,我找不到get_atk()這個function,也找不到il2cpp::vm::MetadataCache::Register
想請問大神是怎麼找到位址的?
我的執行結果像這樣

                               
登錄/註冊後可看大圖

                               
登錄/註冊後可看大圖
border=0 />

                               
登錄/註冊後可看大圖

然後unity_loader.py產生出來的file我上傳成附件

可否再給個提示嗎?
謝謝你


ida_cc_3.0.2_64_hack1.7z

251.52 KB, 下載次數: 4, 下載積分: 碎鑽 -1 個

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

59
gdemon | 收聽TA | 只看該作者
發表於 2016-12-29 01:11
gdemon 發表於 2016-12-29 00:16
回文被吃掉兩次....這次簡單回好了....

過程中會遇到一些問題,第一個問題是:

自問自答....其實get_atk()這個symbol是有mapping回去的
將其產生map file後,找到get_ATK
0002:0067A110       CardInfo$$get_ATK
0002:0067A240       CardInfo$$set_ATK
然後跳到 0002:0067A110,這個function也真的被rename成CardInfo$$get_ATK
只是不知道為什麼functionname裡找不到就是了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

60
星幻。 | 收聽TA | 只看該作者
發表於 2016-12-29 11:41
gdemon 發表於 2016-12-29 00:22
Hi,

run script的方式是file -> script file(或alt + f7)

感謝回覆..
我的解決方法:
安裝python 32bit (先前安裝64bit版)
要注意的地方是一定要把python設定到系統路徑上..
這樣就沒有出狀況了..
可是跟你一樣, mapping好像不對.. 找不到get_ATK
好希望有大神再解答一下, 怎樣找到正確的地址.. 謝謝
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則