Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android安卓破解之逆向分析SO常用的IDA分析技巧

Android安卓破解之逆向分析SO常用的IDA分析技巧

編輯:關於Android編程

1、結構體的創建及導入,結構體指針等。 以JniNativeInterface, DexHeader為例。 解析Dex的函數如下:   \   F5後如下:   \   File->load file->parser c header file,導入Dex.h 上圖中a1,右鍵轉成結構體,選擇dexheader,效果如下:   \   2、函數指針時的參數個數調整,不定參數等。 以__android_log_print為例,選中該函數。   \   Edit->operand type-> set operand type,修改參數如下: int (__cdecl *)(int, char *, char *, char *, int *, int *),F5刷新後,效果如下:   \     3、thumb/arm模式的轉換 快捷鍵ALT +G,其中0x01是THUMB,0x00是ARM模式。一般4個字節ARM模式,兩個字節為THUMB模式,如:   \   4、函數被誤認為chunk,導致調用者函數多個入口。 以Java_by_Ericky_crackme01_JNI_EatRice為例,可以看到有兩個入口。   \   \   來到第一個入口的結束位置為BX跳轉指令, 應該讓他跳轉到第二個入口出,才正確。   \   所有首先要remove function tail, 選中,結尾處,然後edit->functions->remove function tail,效果:   \ 然後再將跳轉指令BL,修改為Call,edit->others->force bl call,效果   \   \   5、C++RTTI,類名識別。 來的 JNI_OnLoad處   \ sub_A558為構造函數。   \   \   可以得在該函數名為9ArtLoader,   \     6、創建函數,設定函數結尾地址。 F5,效果如下:   \ 解決辦法,按P,再F5。如果P沒有效果,則可以選中後再按P。 7、Elf的修復,內存dump該so及其以來文件,然後修改dump出來的基址,File-->LoadFile-->binary file。 dump命令為: dd if=/proc/1935/mem of=/sdcard/alimsc4 skip=1578049536 ibs=1 count=3993600   8、數據復制、patch。 選中數據,然後edit->export data,即可   \ 9、腳本,idc,IDAPython http://magiclantern.wikia.com/wiki/IDAPython/intro http://drops.wooyun.org/tips/11849 http://drops.wooyun.org/tips/12060   10、lsof查看被刪除的文件,cat從內存中得到被刪除的文件 root@android:/ # lsof |busybox grep com.sxiaoao.car3d3 system_se 523 system 298 /data/app/com.sxiaoao.car3d3-2.apk com.sxiao 10370 u0_a65 44 /data/data/com.sxiaoao.car3d3/files/app_sdk103700_.jar (deleted) com.sxiao 10370 u0_a65 48 /data/app/com.sxiaoao.car3d3-2.apk com.sxiao 10370 u0_a65 49 /data/app/com.sxiaoao.car3d3-2.apk   10370是進程號 44是打開文件的fd 文件fd映射在/prop/pid/fd裡面 用cat命令把文件拷貝出來 1|root@android:/ # cat /proc/10370/fd/44 > /data/local/tmp/test.jar   11、arm指令模擬器   12、為什麼不能F5, 不能全信F5 手機軟件反分析-曾凡宇.pdf
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved