當前位置:
首頁 > 動漫 > 殺戮尖塔修改class文件圖文教程

殺戮尖塔修改class文件圖文教程

從網上看到有兩種修改方法。一種是用某些工具把整個jar包完全反編譯,然後就像製作遊戲一樣修改代碼後再重新打包。另一種是修改單獨的class文件。

理論上說第一種是最好的,因為可以想怎麼改就怎麼改,但仔細想想,那不等於自學java一樣么,我們只想簡單改改遊戲,並不想搞的那麼複雜不是。

所以我研究的是第二種,測試成功。現在說說具體步驟。

比如遊戲里會中一個confusion」混亂「負面狀態,卡牌消耗是0-3隨機的。要隨時有這個狀態,並總能隨到0多好,就要這個!(其實有時候切換為英文版更方便看到關鍵詞)

第一步

用 DJ java decomper 打開jar遊戲包,在彈出的窗口上選擇 search,文件類型*.class,搜索文本「confusion」。

等一會找到3個文件包含這個詞。

殺戮尖塔修改class文件圖文教程

第二步

用 java decompiler 打開jar包(名字有點像,但是另一個工具),分別定位到這3個文件,搜索confusion找到代碼,然後觀察代碼。

你只需要稍微有一點點英文基礎,就能看到關鍵代碼在 AbstractPlayer.class這裡,random(0,3)就是隨機返回0-3。這個代碼屬於 public void draw(int numCards)

殺戮尖塔修改class文件圖文教程

第三步

很遺憾,雖然已經看到了要改的代碼,但並不能在這裡把3改成0。因為class文件實際是難以理解的jvm代碼,剛才只是工具幫你轉換為容易理解的明文代碼而已。

用winrar打開jar包,把AbstractPlayer.class解壓出來。用jclasslib bytecode viewer打開。(安裝這個工具前還要先裝一個java runtime,java官網下載)

在Methods裡面可以看到有兩個draw,點擊Code就能看到jvm機器碼了。一對比很容易確定第一個是我們找的。

關鍵是把iconst_3改成iconst_0。接下來就是提取這段機器碼。

在最下面找到iconst_0,點那個showDescription,可以彈出一個網頁顯示出這個命令的機器碼是 3

iconst_3 是6

invokestatic 是b8 ,後面還有2bit的參數,#392轉換為16進位是0x188,那麼這裡的jvm代碼就是 b8 01 88

這兩個命令的jvm代碼連起來就是 03 06 b8 01 88 。

殺戮尖塔修改class文件圖文教程

最後一步

用十六進位編輯器打開AbstractPlayer.class。(這種軟體比較多,010editro,winhex等等隨便都可以),搜索 03 06 b8 01 88。然後改為 03 03 b8 01 88,保存。

把修改後的class文件覆蓋回去,完成。

殺戮尖塔修改class文件圖文教程

是不是炒雞簡單?

也許是,但又好像不是,你試試就知道了。

殺戮尖塔修改class文件圖文教程

  • 殺戮尖塔專題

  • Slay the Spire
  • 發行商:Mega Crit Games
  • 平台:PC
  • 類型:策略戰棋(SLG)
  • 發售日期:2017年11月15日
  • 進入專題>>

您的贊是小編持續努力的最大動力,動動手指贊一下吧!


本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 3DMGAME 的精彩文章:

《古墓麗影:起源之戰》柏林現場 眾多勞拉齊亮相
夢塔防3周年慶周四開始 雙形態武將等待加入!

TAG:3DMGAME |