1. 程式人生 > >初次簡單逆向破解安卓APP

初次簡單逆向破解安卓APP

最近下載了一個直播app,因為有會員時間限制,只能只用十分鐘,但最近接觸了一些逆向知識,抱著嘗試的態度嘗試首次成功,特發帖紀錄。
先準備好apk,放到桌面
 
看看app有沒有加固,如果加固了,逆向起來就有一定的難度,相反沒有加固的程式,如同裸體在大街之上。
所以首先用AndroidKiller解析apk,很明顯沒有加固
 
接著再用工具載入apk
 
突破點:我們要突破的就是這個彈窗,所以我們就開始分析apk中有沒有類似的字眼出現
 
很遺憾並沒有
 
這個時候就要換個思路,因為app一般都是走http協議進行請求的,所以經過檔案查 找到了一個HttpManage檔案,在這個類裡邊發現了所有的http請求都列印了日誌,(其實它打不列印都無所謂,沒有列印方法我們也可以自己加,只不過是省了自己的一些事情了)

 
接著用模擬器執行程式 然後再用logcat工具連線模擬器進行日誌檢視,發現每次點選主播圖片的時候都會列印一個數字503,接著用查詢工具去查詢503,於是就發現了
 
 
再通過logcat檢視日誌,發現當會員過期後這個請求就回返回如下資料
 
我們再註冊個新賬號發現返回的資料是這樣的
 
到此為止思路就有了:就是無論是否會員到期,把返回的資料替換成功的資料就行了,如下圖,發現503就把資料改成正常的資料
 
接下來就是比較麻煩的地方。上圖是java程式碼,其實我們要修改的是smali檔案如下圖,smali相對來說是比較難以理解,不符合人類易於理解的方式(對於經常改的大神就像小學作文了。。)
 
作為初次接觸smali的新手,我是先用java寫好類似的程式碼,然後編譯成smail程式碼,然後再黏貼到apk中的smail檔案中,因為這樣就只需要做到調正p1 p2這樣的變數心中有數就行了
到此編譯打包,一個新的apk誕生
 
測試圖片的這個主播好嚇人。。。
逆向之路到此就完成了,但是還有另外一些思路可以開發,可以看到上圖在點開app的時候彈出一些文字,其實這些是直播的實際播放流,我把直播流地址複製到系統的剪貼簿中,然後又開發了一個監測剪貼簿的程式,當監測剪貼簿中有直播流地址就提示是否下載。點選確定後再呼叫程式對直播流進行轉存,直接儲存到電腦中,於是乎