綁定帳號登入

Android 台灣中文網

[討論] 白貓DLL修改基礎教學,適合新手[更新中2/17]

   關閉 [複製連結] 查看: 164090|回覆: 391|好評: 17
cyyap95 | 收聽TA | 顯示全部樓層 |閱讀模式
發表於 2015-2-4 20:33

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
本帖最後由 cyyap95 於 2015-2-17 23:15 編輯
第一次寫教程,若寫的不好還請包含,請用回复及評分給予我一點動力吧 ^_^
注意,我並不完全了解IL語言,所以教程都是自己的理解,如果有錯那就抱歉了
要說我是從哪裡學的呢?其實是從各位大神發布的APK中再次反編譯然後慢慢找。

首先我們需要以下工具【點擊下載】:
解壓工具 - 7zip (從.apk中解壓出DLL)
組譯工具及反組譯工具 - ilasm + ildasm (用於反反組譯DLL,以及組譯IL)
DLL查看及修改工具 - Net Reflector + Reflexil 插件
APK解壓及簽名工具組合 - APKTool + jarsign
Java運行平台 - Java JRE載點
Net Reflector激活器下載
以上軟體安裝方面我就不解釋了,弄不到可以去Google找
有些人也許用ILspy來查看DLL,但是我使用Net Reflector因為用起來方便可以直接修改等還可以直接看到IL指令功能解釋。

1, 使用APKTool解壓白貓APK
a. 把apktool解壓在C:/盤內 , 把白貓Project APK拉倒裡面去吧
b. 在apktool文件內打開CMD [Shift+右鍵]
1.png
c. 輸入分別以下指令進行解壓及安裝框架
  1. apktool if jp.colopl.wcat1.0.22.apk
  2. apktool d jp.colopl.wcat1.0.22.apk
複製代碼

d. 完成後就會像這樣(抱歉圖中用台版,因為剛好修改着台版順便做教程
2.png
e. 最後打開解壓好的文件我們要修改的就是這個Assembly-CSharp.dll
注:為了方便,我把文件拉到組譯工具同個文件夾內,如圖
3.png

2, 修改DLL/IL
一般修改的時候有兩個選擇,一個是用安裝了Reflexil插件的Net Reflector直接修改或者是把DLL反組譯成IL再用Notepad++修改。
方法一,直接用安裝了Reflexil插件的Net Reflector打開,如圖
a. 先把DLL直接拉進Net Reflector左邊空白處
4.png
b. 在從Tools中打開Reflexifil就可以開始修改了
5.png
a. 打開ildasm.exe, 點File>Open>選擇Assembly-CSharp.dll
5.png
b. 然後再次點File>Dump>把它儲存為IL文件
4.png
c. 最後用Notepad++ 打開就可以編輯了,編輯完成後直接保存
7.png
d. 把修改後的IL文件組譯成DLL,在文件夾中打開CMD [Shift+右鍵]
6.png
e. 在CMD中輸入以下指令
  1. ilasm 名字.il /dll
複製代碼

如果在反組譯時的IL同時有個.res文件請用以下指令
  1. ilasm /res:名字.res 名字.il /dll
複製代碼


3, 把修改後的DLL製作回APK
a. 把修改好的DLL拉回去之前解壓的APK文件位置
8.png
b. 在文件夾中再次打開CMD [Shift+右鍵] , 輸入以下指令合成APK
9.png
  1. apktool b -f -d 之前解壓檔 -p 輸出位置
  2. 例子:
  3. apktool b -f -d tw.sonet.wcp1.0.2 -p C:Androidapktool
複製代碼

完成後就會看到新的APK了!

4, APK簽名
a, 文件夾內打開CMD
運行以下指令
  1. java -jar SignApk.jar testkey.x509.pem testkey.pk8 [要簽名檔案名稱] [簽名後檔案名稱]
  2. 例子
  3. java -jar SignApk.jar testkey.x509.pem testkey.pk8 jp.colopl.wcat1.0.22.apk WC_1.0.22Modified.apk
複製代碼


5,部分修改提示!!
新手建議先使用Net Reflector熟習整個DLL的構造
三圍的修改,修改位置為Player > SetupParameterFromUnitModel(Param) : Void
HP倍數的例子:
10.png
IL語言是一個疊成然後一行推送去下一行的這個概念,所以這裡的意思是把1000這個值推入HPRate中
繼續往下看會看到以下其他的這些:
get_TownAddSPRate()    << 明顯是SP倍數
get_TownAddAtkRate()   << 攻擊倍數
get_TownAddDefRate()   << 防衛倍數
get_TownAddHitRate()    << 忘了,應該是暴擊
get_TownAddAgiRate()   <<忘了,應該也是暴擊

大家看的出來嗎,其實我們在改的是城中建築物的效果加成倍數。而我們這樣修改就是改變建築物的效果倍數。
當然如果你可以發現其他地方,如隊長技能等也可以找到相關的倍數修改處。

跑速,修改位置為Player > GetRunSpeed() : Single
11.png


其餘的各種修改請大家自己慢慢研究吧。

另外給大家一些基本的修改邏輯以及思維方向。
所謂修改客戶端,只能修改伺服器方不驗證/不同步的參數。說明了,寶石之類基本不可能通過修改APK達成。
目前不被驗證的就是戰鬥時候的參數,也就是你能往戰鬥方面/地圖方面去修改。
再給點提示,
InGameManager,StageManager等都是有關戰鬥參數的,請自己研究吧!


如果要修改好的台版請到這裡Link
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)

評分

參與人數 108碎鑽 +98 幫助 +111 收起 理由
a47188512 + 1 + 1 非常讃
19830418 + 1 + 1 很給力!
kit0125 + 1 + 1 非常讃
wujinde + 1 + 1 非常讃
NorixAlex + 1 + 1 非常讃
aqeqqq + 1 + 1 非常讃
hanxiang900047 + 1 + 1 非常讃
仙魂 + 1 + 1 非常讃
71107zxc + 1 + 1 非常讃
g558588 + 1 非常讃

查看全部評分

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

使用道具 舉報

leelomay | 收聽TA | 顯示全部樓層
發表於 2015-2-5 02:45
求 限界突破 減少虹石需求量
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

mythbubai | 收聽TA | 顯示全部樓層
發表於 2015-2-5 11:13
提示一下吧,錢是goldup,魂魄是expup
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

apktwkc | 收聽TA | 顯示全部樓層
發表於 2015-2-5 23:14
由 手機網頁 發佈
初學修改, 求問要用甚麼工具?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

dave0130 | 收聽TA | 顯示全部樓層
發表於 2015-2-6 11:59
限界突破 怎樣改的?

點評

不知道誒  發表於 2015-2-17 04:47
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

zero198934 | 收聽TA | 顯示全部樓層
發表於 2015-2-13 10:43
mythbubai 發表於 2015-2-5 11:13
提示一下吧,錢是goldup,魂魄是expup

instance void LeaderSkill::set_GoldUpRate和instance void LeaderSkill::set_ExpUpRate
我将它调为0,为什么打4-9的彷徨 墓碑结算会报200000(之前不是有人说协力有问题是因为金魂么?).有没有方法可以改不报错呢?
我看见日服有人将上面的数调1是2倍。台服是15就15倍,我迷糊了。究竟哪个才对?
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

mythbubai | 收聽TA | 顯示全部樓層
發表於 2015-2-13 15:20
zero198934 發表於 2015-2-13 10:43
instance void LeaderSkill::set_GoldUpRate和instance void LeaderSkill::set_ExpUpRate
我将它调为0, ...

正常是1吧,你調成0,不知道會有什麼事情發生...

點評

正常是0啊  發表於 2015-2-17 04:46
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 1 反對 0

使用道具 舉報

zero198934 | 收聽TA | 顯示全部樓層
發表於 2015-2-13 17:33
mythbubai 發表於 2015-2-13 15:20
正常是1吧,你調成0,不知道會有什麼事情發生...

但上面那几个数值也是0喔??话说我想将打箱子时补血的那个数值调成正常而不是300.不知道是哪个。(因为太多300了,我自己修改的都是拿别人的客户端,然后自己再调节速度自己用)
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

柚沒有 | 收聽TA | 顯示全部樓層
發表於 2015-2-17 00:10
有沒有綜合載點包 然後這些感覺還沒完成
都改好怎麼反壓回去
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

 樓主| cyyap95 | 收聽TA | 顯示全部樓層
發表於 2015-2-17 04:45
柚沒有 發表於 2015-2-17 00:10
有沒有綜合載點包 然後這些感覺還沒完成
都改好怎麼反壓回去

抱歉還在製作中,因為第一次製作教程,所以比較慢

評分

參與人數 1碎鑽 +1 幫助 +1 收起 理由
peter781012 + 1 + 1 非常讚

查看全部評分

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

使用道具 舉報

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

本版積分規則