在端午節前面,有好幾我的都找我詢問最近好看的美劇,那我就作一個簡單的美劇排期表的小程序,接口能夠Hack一下,結果遇到了好多問題,好開心。算法
利用iOS抓包APP Stream 進行抓包,化簡獲得下面的curl 小程序
1curl 'https://api.rr.tv/schedule/listV2'
2-H 'p: iOS'
3--data 'simpleBody=9SiG/cduXC41k3COogMfZnU1bABhgz0rHVOx06MQYZywOkXTrfgdvjqdZv8W79nq%0D%0A5QhhVzvNAK3DTULfLP6t8g%3D%3D'複製代碼
能夠看到接口字段是加密的,利用了網上在線解密工具常見的幾種加密算法進行解密,發現毫無結果,只能反編譯Apk了。(發現 用戶信息接口裏等級描述 我是「美劇專家」,哈哈。api
反編譯三板斧:apktool,dex2jar,jd-gui。bash
關於這些工具的下載安裝,就不贅述了(上各自的官網下載就好了)。app
我發現事情並無那麼的簡單,它用360加固了(小聲比比:不是說360加固會塞廣告嘛?curl
那麼問題就又出現了,該怎麼360脫殼呢?工具
上面講到要脫殼,打開GitHub 搜一下,發現幾個脫殼Xposed插件,FDex2 ,dumpDex,DeveloperHelper。ui
手裏有魔趣9 的堅果Pro2,結果搞了很久才安裝上Xposed,DeveloperHelper dump出4個Jar ,以下圖:加密
利用JD-GUI 或者IDEA打開這4個Jar文件,從Android 的Activity到Fragment 到到HTTP,再到字段加密的請求相關代碼,以下圖,感受離勝利快不遠了誒。url
仍是我太天真了,發現他們用的的AES加密,祕鑰的獲取是使用過Java調用JNI來獲取的16位祕鑰...
雖然文章文字寫的很少,也大體講完了個人一次反編譯經歷,雖然沒能獲取到他們的加密,也沒能作成小程序,可是遇到問題,解決問題的過程實在是太快樂了。