馬上加入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+右鍵]
c. 輸入分別以下指令進行解壓及安裝框架
- apktool if jp.colopl.wcat1.0.22.apk
- apktool d jp.colopl.wcat1.0.22.apk
複製代碼
d. 完成後就會像這樣(抱歉圖中用台版,因為剛好修改着台版順便做教程)
e. 最後打開解壓好的文件我們要修改的就是這個Assembly-CSharp.dll
注:為了方便,我把文件拉到組譯工具同個文件夾內,如圖
2, 修改DLL/IL
一般修改的時候有兩個選擇,一個是用安裝了Reflexil插件的Net Reflector直接修改或者是把DLL反組譯成IL再用Notepad++修改。
方法一,直接用安裝了Reflexil插件的Net Reflector打開,如圖
a. 先把DLL直接拉進Net Reflector左邊空白處
b. 在從Tools中打開Reflexifil就可以開始修改了
a. 打開ildasm.exe, 點File>Open>選擇Assembly-CSharp.dll
b. 然後再次點File>Dump>把它儲存為IL文件
c. 最後用Notepad++ 打開就可以編輯了,編輯完成後直接保存
d. 把修改後的IL文件組譯成DLL,在文件夾中打開CMD [Shift+右鍵]
e. 在CMD中輸入以下指令
如果在反組譯時的IL同時有個.res文件請用以下指令
- ilasm /res:名字.res 名字.il /dll
複製代碼
3, 把修改後的DLL製作回APK
a. 把修改好的DLL拉回去之前解壓的APK文件位置
b. 在文件夾中再次打開CMD [Shift+右鍵] , 輸入以下指令合成APK
- apktool b -f -d 之前解壓檔 -p 輸出位置
- 例子:
- apktool b -f -d tw.sonet.wcp1.0.2 -p C:Androidapktool
複製代碼
完成後就會看到新的APK了!
4, APK簽名
a, 文件夾內打開CMD
運行以下指令
- java -jar SignApk.jar testkey.x509.pem testkey.pk8 [要簽名檔案名稱] [簽名後檔案名稱]
- 例子
- 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倍數的例子:
IL語言是一個疊成然後一行推送去下一行的這個概念,所以這裡的意思是把1000這個值推入HPRate中
繼續往下看會看到以下其他的這些:
get_TownAddSPRate() << 明顯是SP倍數
get_TownAddAtkRate() << 攻擊倍數
get_TownAddDefRate() << 防衛倍數
get_TownAddHitRate() << 忘了,應該是暴擊
get_TownAddAgiRate() <<忘了,應該也是暴擊
大家看的出來嗎,其實我們在改的是城中建築物的效果加成倍數。而我們這樣修改就是改變建築物的效果倍數。
當然如果你可以發現其他地方,如隊長技能等也可以找到相關的倍數修改處。
跑速,修改位置為Player > GetRunSpeed() : Single
其餘的各種修改請大家自己慢慢研究吧。
另外給大家一些基本的修改邏輯以及思維方向。
所謂修改客戶端,只能修改伺服器方不驗證/不同步的參數。說明了,寶石之類基本不可能通過修改APK達成。
目前不被驗證的就是戰鬥時候的參數,也就是你能往戰鬥方面/地圖方面去修改。
再給點提示,
InGameManager,StageManager等都是有關戰鬥參數的,請自己研究吧!
如果要修改好的台版請到這裡Link |
評分
-
查看全部評分
|