本文做者:à ō é
html
摘要安全
最近在研究Android逆向,內購破解這一塊,發現挺有味道的,固然只限作技術研究。 下面經過對某單機遊戲的內購破解,詳細介紹一下內購的方法和原理以及防禦等。服務器
材料準備微信
1)APP下載,本次演示的軟件:爬山賽車至天朝歷險jsp
咱們去其官網下載便可,另外在其餘市場下載一個低版本的,ide
這裏我另外下載了一個 v1.3.1的,後面會有用。函數
http://www.mygamez.cn/col.jsp?id=105工具
2)至於工具,一個Android Killer加個 夜神模擬器 就能夠了測試
3)放Android Killer 一看,可正常回編,這樣也省了很多事google
內購破解
01. 內購流程
內購即應用中付費購買道具或其餘東西。其加入了第三方SDK(支付SDK)。
支付SDK提供商(如移動、聯通、支付寶等)先開發一個支付SDK,
並進行加固等保護,再爲開發者提供支付接口的使用指南,
開發者在APP中添加了支付SDK後,經過相關配置使用SDK便可完成收費功能。
而從國內安卓的單機應用來看,其內購流程可簡括爲:APP–支付SDK–支付SDK服務器–APP。
Google Play內購流程較國內安卓的會更復雜一點
在國內主流的內購SDK開發主要分爲兩類,
即短信運營商類(三大運營商)和第三方支付平臺類(微信、支付寶等)
02. 搜索關鍵字符
內購的關鍵函數
paysuccess onsuccess buysuccess threadSuccess orderBombsuccess payonbilling dobilling PayResult onBillingFinish BillingResult inresult paycallback resultStatus 9000 0×2328
從字面上就可知道,都是判斷支付結果用的(其中0×2328是9000的十六進制)
02×01
直接搜索購買失敗的Toast
1). 安裝遊戲後購買金幣,隨便填個,讓它彈出購買失敗的錯誤提示
2). 搜索關鍵字符 「短信驗證碼驗證失敗」 另,轉Unicode碼也沒搜到
3). 試着搜索它的變量名 「gc_security_sms_err」
4). 果真,版本更新了,但 名稱仍是沒變的,再試着搜索它的ID 「0x7f0700a1」
5). 但至此並沒搜索到其關鍵的判斷語句,So,另找它法
02×02 搜索支付的API關鍵接口
1> 看一下支付的方式,還有微信和支付寶,不過咱們這裏就看短信支付(好友代付)吧
2> 從輸入的手機號的錯誤提示可知是移動的接口,咱們將其拉入 Android Killer後
搜索移動支付 API 的關鍵字 「BillingResult」(前面已介紹第三方SDK的相關資料)
3> 另,看AndroidMainfest.xml文件發現應用原入口被改
4> 咱們來看原入口下的類(有須要能夠看反編譯後的JAVA代碼),這裏咱們直接看Smali語句
5> 跳到:pswitch_data_0處,顯然這是某API的返回代碼,先另外看看 :pswitch_1 分支
6> 由 :pswitch_1的分支可判定,:pswitch_1與購買失敗有關,相反 :pswitch_0 則與購買成功有關
7> 咱們可以讓其判斷總爲成功,即可達到內購破解的目的,改的方法有不少,
這裏咱們利用goto 指令就可簡單實現,目標就是讓其跳轉到成功購買
彙編中的跳轉指令
1, goto :goto_0 偏移量goto_0不能爲0,經過短偏移量無條件跳轉到目標;
2, If語句;
3, switch
packed-switch v0, :pswitch_data_0 v0是switch須要判斷的值;
:pswitch_data_0 偏移表,表中值是有規律遞增的;
sparse-switch v0, :pswitch_data_0 偏移表中值是無規律的。
8> 最後,來看看咱們修改的結果吧
02×03 修改遊戲內存
這個就很少說了,直接上工具
a. root手機,安裝目標APP和內存修改器(這裏使用了八門神器)
b. 先啓動八門神器(相似的像葫蘆俠,幸運破解器,燒餅修改器等)
c. 進入應用,開始飆車,後拿出八門神器,對金幣值進行搜索
d. 因數值較多,可繼續搜索,進一步肯定金幣的內存數據
e. 能夠看到,只有一條數據發生變化,直接修改,這裏改成 12345678
f. 修改爲功,同時也說明此遊戲沒有防禦
g. 至此,可退出八門神器,繼續飆車,秋名山等着你
02×04 其餘方法
其餘方法如,進程注入,Hook,修改初始數據(找到本地的相關文件直接修改)等,
反正就是改,,,爲了尊重開發者,仍是跟着遊戲規則慢慢玩就好,否則也會失去遊戲的一些樂趣。
擴展閱讀
Android逆向之旅—Android手機端破解神器MT的內購VIP功能破解教程 | 尼古拉斯.趙四
【七少月-Android安全之軟件逆向核心分析-幾種常見內購方法】_視頻教程_i春秋
爬山賽車之天朝歷險_內購破解版
連接: https://pan.baidu.com/s/1ggQeGoV 密碼: 38xv
總結
內購破解,對於遊戲是不公平的,做爲開發者,須要增長應用的防禦機制,
如防注入,防hook,防內存修改,防二次打包,簡而言之就是加固。
做爲玩家,無規不成方圓,遊戲是用來娛樂的,
這裏咱們只作技術研究,遊戲仍是支持官方原版的好。
>>>>>> 黑客入門必備技能 帶你入坑和逗比表哥們一塊兒聊聊黑客的事兒,他們說高精尖的技術比農藥都好玩~