0x01 先說總結: 參照https://www.cnblogs.com/jiaoxiake/p/6818786.html 最後說的步驟, 參考:https://www.52pojie.cn/thread-586058-1-1.html 通過DexExtractor將加固後的apk還原odex,拖到 ...
0x01
先說總結:
參照https://www.cnblogs.com/jiaoxiake/p/6818786.html 最後說的步驟,
參考:https://www.52pojie.cn/thread-586058-1-1.html
通過DexExtractor將加固後的apk還原odex,拖到jeb裡面繼續分析,odex-dex步驟沒完成。
0x02:
同事小哥在找分析一個apk,找裡面一點邏輯,發現apk被梆梆加固了。
正常apktool反編譯無法找到清單文件裡面註冊的服務。
找了下lib文件里,2個so文件,搜索發現和BANGBANG相關,順帶搜到了TUOKE的文章
0x03:
參照教程,需要使用DexExtractor,有幾種方式
1.自己編譯源碼,修改dexFileParser函數,刷機
2.找個4.4機器,ROOT掉,替換libdvm.so,重啟
3.找個4.4機器,刷system.img,重啟
源碼在U裡面,回去編譯再刷,覺得有點麻煩,要是長期使用,可以考慮。
手裡有Nexus5,刷的lineageos,再折騰一邊刷機覺得沒必要,畢竟就一次~~
a.然後選擇,用模擬器,AVD裡面選擇SDK19 ARM CPU的模擬器,下載安裝
獲得模擬器如上
感謝前輩提供將已經編譯好的system.img
地址在百度雲:https://pan.baidu.com/s/1jG3WQMU
b.修改模擬器載入system.img地址,配置文件在 :hardware-qemu.ini
配置文件地址在: C:\Users\xxxooo\.android\avd\Nexus5XAPI19-4.4.avd
xxx為本機用戶名,Nexus5XAPI19-4.4為你創建的模擬器名字 ,
修改hardware-qemu.ini裡面 disk.systemPartition.initPath,或者直接將百度雲下載好的syste.img替換過去[提前備份]
c.重啟模擬器
將加固後的apk文件安裝到模擬器
打開logcat,
打開adb shell ,將sdcard 目錄mount一下
打開目標app,查看log日誌 過濾 目標包名
順利的話會看到:
看到已經生成n個dex文件,
至於為什麼是多個dex文件,這個沒搞明白,不知道會不會是因為因為加固故意分割dex
如果/sdcard/寫入失敗,會有log日誌,
我的操作是,重啟模擬器,開機就adb shell 進去 su 然後mount sdcard 給777許可權
e.將生成後的dex文件pull到電腦,
查看/sdcard/ 目錄,只要文件名字包含目標包名的就是,全都pull出來,了,例如都放到 hack 目錄
下載git中的DexExtractor項目,使用其中的 Decode.jar 還原dex
java -jar Decode.jar hack ,hack為從手機內pull出來的dex目錄
獲得解密後的xxxx.read.dex
這次獲得的為odex格式,拖到WinHex 看透文件為 dey 036
文件拖到jeb可以直接看,不過要點擊 inner_dex
如果想要直接看dex,還需要使用:baksmali ,這裡我就沒有操作,
有個技巧,pull出來的dex有4個,通過jeb將每個都反編譯,導出為java保存在不同文件夾。
然後,通過notpad++全局查找需要找的代碼,比如某個字元串(定義在string.xml的除外)或者代碼
定位到,再用jeb打開dex,可以查看調用關係,不然,導出為java後,導入studio或者eclipes調用關係很可能無法生成
基本操作就這些
同事小哥如願找到了想要的,晚上加雞腿
後來發現 趙四前輩的 文章更詳細,
地址: http://www.wjdiankong.cn/apk%E8%84%B1%E5%A3%B3%E5%9C%A3%E6%88%98%E4%B9%8B-%E5%A6%82%E4%BD%95%E8%84%B1%E6%8E%89%E6%A2%86%E6%A2%86%E5%8A%A0%E5%9B%BA%E7%9A%84%E4%BF%9D%E6%8A%A4%E5%A3%B3/
僅此記錄下