Android apk 逆向工程研究﹣破解 MyTV HD 機種限制手記

日前網上有 MyTV X HTC One HD 版 Android app 流出,但由於程式限制了只有 HTC One 手機才可以使用,大部份用家得物無所用。當然,道高一尺,魔高一丈,很快的就有人放出破解版,解除了這個限制,Android 全機種都可以用了。

他是如何做到破解的呢?這篇文章會拆解一下這個流出來的 apk 檔,並提供一些工具給大家分析代碼,西杰相信這個過程並不困難,大部份 programmer 學一會兒就應該看得懂!(當然並不是所有 apk 檔都可以用同一方法來破解,加了殼的 apk 就比較困難了)

利申:本文章僅供教學用,請勿嘗試公開發佈破解檔案

工欲善其事,必先利其器,這次我們會用到 dex2jar 這個工具,它的用途是幫我們把 apk 爆開成多個 bytecode 檔,我們就是透過修改這些 bytecode 檔來破解 Android app 的了。值得一提的是,dex2jar 的 wiki 已經清楚說明如何把 apk 檔反譯成 bytecode 檔和如何重新打包,讀完以下教學仍不清楚的話可以參考一下。

下載了 dex2jar 之後,我們就可以開始反譯 apk 檔了,dex2jar 提供的例子是這樣:

# convert classes.dex in test_apk-debug.apk to test_apk-debug_dex2jar.jar
d2j-dex2jar.sh -f -o test_apk-debug_dex2jar.jar test_apk-debug.apk
# verify jar
d2j-asm-verify.sh test_apk-debug_dex2jar.jar
# convert to jasmin format
d2j-jar2jasmin.sh -f -o test_apk_jasmin test_apk-debug_dex2jar.jar

三個步驟,第一步將 apk 檔內的 classes.dex 抽出來並反譯成 jar,classes.dex 就是主程式所在的地方。第二步是驗証 jar 檔(但我不清楚有什麼用,估計是驗証它是不是完整可執行的檔案吧)。第三步是把 jar 檔轉為 jasmin 格式(大概是 Java bytecode 的意思)。

應用在 mytv 上,上列三個 command 應為:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值