2016年6月6日 星期一

時空之門修改分析與心得

離上次PO文事隔4個月了,接續上篇逆向工程文章,
以此當作範例,廢話不多說,進入正題。

一、首先介紹:

 《時空之門》是由開發「神魔之塔」的香港手機遊戲公司 Madhead 開發出的一款消珠遊戲。相信玩過神魔之塔的朋友也知道,遊戲起初會有不少所謂無敵秒怪的修改出現,經測試這款新出的遊戲,有類似的遊戲漏洞,或許尚未完整進行加密的動作吧。

二、修改思維

決定此款遊戲修改方向:
1.Unity遊戲(Assembly-DLL-靜態修改)
2.目前無加固(免去hook或是解so步驟)
3.目前無驗證(簽名部分輕鬆)
接下來就可進行思路的執行。

三、思路執行

1.首先遊戲是類似方塊的方式進行攻擊敵人
2.進入戰鬥時為單機狀態,戰鬥結束回傳結果
3.代表可藉由戰鬥時,修改內存或是改DLL達到效果
4.修改內存(用修改器搜數值變化,找值修改,缺點沒找到基址,則需每次搜尋)
5.改DLL就是這篇主要講的(靜態的修改,安裝好後,即可有效果)

這邊就針對DLL修改,給提示與方向,可以嘗試看看,
與神魔之塔類似,可藉由修改敵方或我方的攻擊、防禦、CD,
就可達到所謂無敵、秒怪的效果了,至於DLL裡如何找到
其關鍵函數、方法調用,可看上一篇介紹。

補充提示:
往基礎的數據著手,藉由修改回傳值,即可達到效果了。

四、分享與安裝方法

最後附上小成品:
1.僅供測試研究使用
2.修改有風險,請自重
3.大多遊戲思路很像(Ex:onbillfinish、paysuccess支付成功
      get_gold取金幣、cooltime冷卻時間、Max hp最大血量)等等
補丁在此    安裝檔在此
安裝方法:
1.原帳號需綁定FB後,並移除原時空之門安裝檔
2.安裝下載後的apk,第一次登入會出現API錯誤
3.解決方法:強制停止遊戲,把預先下載後的補丁
4.放到手機內存/Android/data/com.madhead.chronosgate/files內覆蓋即可
5.再次進入遊戲登入就可以暢遊了,且往後不須再移動補丁了。
如有問題可在此篇留言,或是line:linruiyuan
謝謝大家的觀看。

2016年1月21日 星期四

Android逆向工程之心得(附上小成品)

近期放寒假,總算有許多空閒時間了,咱們廢話不多說,進入正題吧!
以下用自己話來說,如有不正確見諒。

一、Android逆向工程是什麼?

有些人覺得是反編譯,但我覺得反Java更貼切些。
舉個例子:
假如有一樣商品經過以下程序
成分>配方>製作>包裝>實體商品販入市場
Android逆向工程就像是把整個程序倒過一樣
實體商品販入市場>包裝>製作>配方>成分
最終可以得到Java源程序

二、至於我們為何要逆向工程呢?
  
原因很簡單
1.apk美化、漢化(這部分反編譯大致上可完成)
2.apk去廣告、破內購、IP限制、Sim卡限制等等
3.修改apk內容(包括遊戲的數據、跨註冊免登入等等)
4.玩到後面,挑戰更複雜之殼層,有成就感(因人而異)

三、基本上會用到工具

1.解包、打包、反編譯、簽名
      有:apktool、apkdb、一鍵反編譯、adb反組建......

2.套裝軟件(包1.項目+Read、Write程式碼)
      有:akiller、apk改之理(apkIDE)......

3.脫殼、.dll、.so、smail 、xml
      有:.Net.reflectot、ildsm+ilsy、IDE、notepad+......
還有許多插件或是整合式工具,這邊就不多說。

四、Android逆向工程之大概思路

1.要逆向之Apk的編譯、反編譯、運行,檢查有無驗證等等
2.進行相對應修改的關鍵字或是英文查找
  例如:假設一款遊戲要修改金幣,則其中可能有  coin、gold,
    鑽石有 gem、diamond,支付有 pay、billing、purchasing等關鍵字存在。
3.如果順利找到關鍵字或是數值,則進行分析內容、方法、函數變化,
   然後判斷如何才能達到想要的結果,修改內容,保存文件。
4.編譯回去,在android模擬器上或是手機上運行,是否達到效果,
   如果沒有,就再回第3步分析(這邊會花的時間,與經驗有關囉)。

補充 :
(分析內容、方法、函數變化)這部分,
需大致看得懂smail文件中Davlik字節碼與java碼的對應關係,
然後可以轉換語言(C#、VB等等)方便分析,另外大概記一下語法,
以及opcode類中ldc系列(定義數值類)(Ex:i4=int32、i8=in64、r4=float32),
不懂的單字或是語法可以google或是百度一下,
最後附上小成品:
1.僅供測試研究使用
2.修改有風險,請自重
3.大多遊戲思路很像(Ex:onbillfinish、paysuccess支付成功
      get_gold取金幣、cooltime冷卻時間、Max hp最大血量)等等

雷電星海戰機-免費無限買鑽版

功夫少林-技能無CD版