點擊上方 Android掃地僧 ,選擇 星標 公衆號html
重磅資源、乾貨,快上車!
java
LivedForward 算法
來源:https://www.52pojie.cn/thread-1022003-1-1.html服務器
寫在前面:發完這篇文章,我就去撿廢品了,記得點在看
微信
軟件名稱:音樂剪輯
app
這款軟件UI作的特別漂亮,功能也很強大,能夠做爲一個音樂編輯的工具.
練手分析該軟件內購受權思路,並解鎖VIP所有功能.
軟件受權機制作的很簡單,但願大佬哥哥們批評指正.
軟件沒有訂閱VIP以前底部有廣告,啓動界面也會有廣告,並且天天功能使用會有次數限制直接入正題:軟件沒有加殼,只是對Java層的方法名和變量名進行了混淆,,能夠說是很是簡單了.
先將dex轉化爲jar,而後拖入jd-jui查看源碼輔助分析.
這款軟件直接修改支付結果是不行的,由於軟件會後臺異步獲取訂閱結果和訂閱日期,這裏就選擇對用戶管理類做爲入口點.由於通常訂閱軟件都有一個專門管理用戶信息的類,裏面就包含VIP訂等相關信息.
以微信支付爲例:
在支付回調時會有Toast結果信息,咱們根據這個信息定位到com.lixiangdong.songcutter.pro.activity.DingyueActivity
異步
再日後面看:
進一步查找.編輯器
在以前的一個類DingyueActivity 裏看到這個函數:函數
在用戶下訂單以前會先對用戶信息進行一系列判斷,其中就有一個過時時間是否爲2099-01-01
工具
看到這裏,個人思路就是將timeExpire和isVIP等字段進行修改,而後將用戶初始化信息的代碼放到程序入口的位置,這樣程序啓動
就已是VIP用戶了.
如今咱們來修改程序對應的smali代碼
這裏是對應的初始化用戶信息的smali代碼,能夠看到const/4 v3,0x0
這條指令意思是把0x0賦值給佔4個字節的v3寄存器,猜測確定是int型,0x0就是0.
在以前咱們就已經知道程序初始化用戶信息是將用戶isVIP等boolean字段賦值爲false
因此在這裏咱們確定0x0就是false,因此咱們將0x0改成0x1即true,而後將timeExpire賦值
爲2099-01-01,將此段smali代碼複製到程序入口便可啦!
效果圖:登錄就是VIP,沒有廣告和功能次數限制了,即便不登錄也無廣告和功能次數限制.
總的來講分析這個軟件的訂閱受權仍是挺簡單的.
完
關於【逆向】,字面意思,就是反着來,正常開發是寫java代碼打包成apk,那麼逆向就是由apk到java / c。在逆向這個小衆的行業內,其實出路不只僅只有一條破解別人的代碼,實質上它還能夠作到保護。正所謂一攻一防。存在即合理,如今去各大招聘網站搜索【Android逆向工程師】,也仍是有一大堆的招聘需求。
關於逆向開發,若是有更多的興趣,能夠回覆關鍵字【逆向】,獲取如下資料包
推薦閱讀
1. Android彈窗騷操做——無需權限顯示懸浮窗,兼談逆向分析app
點「在看」的都漲工資了
本文分享自微信公衆號 - Android掃地僧(Android-Mas)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。