導航:首頁 > 操作系統 > android逆向分析工具

android逆向分析工具

發布時間:2023-02-19 22:51:05

android逆向之手機環境配置

該篇文章主要介紹在Android逆向開始之前的 手機環境配置 。其中包括對手機進行 刷機 (根據所需的Android手機型號、Android系統版本進行刷機。這里我以nexus 5 android 6.0.1為例,其他Google系手機型號及刷其他Android版本系統都是類似的);第二個則是安裝Android逆向分析 hook框架 (Xposed、frida)及一些常用的基礎插件等。

一、刷機前准備

二、開始對nexus 5刷機(Android 6.0.1)

需要使用低版本的platform-tools進行替代,具體的操作步驟,可以參考以下文章
https://www.jianshu.com/p/d40db7e08e3e

三、刷入第三方recovery(TWRP)到新系統中

四、對剛刷完的Android系統進行root

五、安裝Xposed框架、frida-server 及Android逆向分析中常見的插件

綜上所述,該篇文章主要是使用Android官方的系統鏡像進行刷機,然後安裝配置Android逆向所需的框架及插件。在刷機的時候,我們也可以選擇自己修改編譯Android系統源碼,再進行刷機,定製我們自己所需的分析環境。

更多精彩內容,請掃碼關注以下公眾號

❷ Android逆向工程相關工具集合

刷機包 sparse img -> ext4 img 線刷包裡面找到system.img/vendor.img

$ file system.imgsystem.img: Android sparse image, version: 1.0, Total of 849920 4096-byte output blocks in 2454 input chunks.

使用Android源碼編譯得到out/host/linux-x86/bin/simg2img即可將Android的sparse image轉為ext4的image

dat -> ext4 img system.new.dat.br轉system.new.dat

brotli –decompress system.new.dat.br –output=system.new.dat

system.new.dat system.patch.dat system.transfer.list轉ext4 img

https://github.com/xpirt/sdat2img

payload mp https://gist.github.com/ius/ odex/oat/vdex Android <=4.4 odex to dex

https://github.com/JesusFreke/smali/wiki/DeodexInstructions

https://bitbucket.org/JesusFreke/smali/downloads/

Android <=7 oat to dex

https://github.com/testwhat/SmaliEx/releases

https://github.com/testwhat/SmaliEx

https://github.com/JesusFreke/smali/wiki/DeodexInstructions

https://bitbucket.org/JesusFreke/smali/downloads/

Android 8 vdex to dex

https://github.com/anestisb/vdexExtractor

Android 9 vdex->cdex->dex

https://github.com/anestisb/vdexExtractor

https://github.com/anestisb/vdexExtractor/issues/23

tools/deodex/run.sh -h

dex dex轉smali apktool工具 針對 apk包括dex和資源

https://github.com/iBotPeaches/Apktool

https://ibotpeaches.github.io/Apktool/

baksmali、smali 針對dex

https://github.com/JesusFreke/smali

https://bitbucket.org/JesusFreke/smali/downloads/

dex轉jar/java

googe enjarify工具dex轉jar

https://github.com/google/enjarify

dex2jar

https://github.com/pxb1988/dex2jar

https://github.com/pxb1988/dex2jar/releases

結合jd-gui

https://github.com/java-decompiler/jd-gui

http://jd.benow.ca/

二合一工具

https://github.com/skylot/jadx

❸ 關於安卓逆向你需要知道的工具及網站

關於安卓逆向你需要知道的工具及網站

把最近接觸到的安卓逆向相關的工具和網站總結下,供需要者拿去使用,還有不全和遺漏後續會不斷完善。

工具篇章

模擬器(動態調試需要用真機)

安卓原生模擬器:Android Studio自帶的

夜神:今天開始嘗試這個模擬器,發現在ida掛載進程時出現了問題,掛不上,架構為x86,不能用ida調試。 地址https://www.yeshen.com/

逍遙:還未使用 地址http://www.xyaz.cn/

藍疊(bluestack): 地址http://www.bluestacks.cn

雷電模擬器

apk反編譯套件工具

jeb:今天開始嘗試這個工具 地址https://www.pnfsoftware.com/

YouGais:以前我一直使用這個,沒有官網地址,免費版功能受限

打包及簽名工具

apktool:apk拆包打包工具 地址https://ibotpeaches.github.io/Apktool/install/

jd-gui:java反編譯工具 地址http://jd.benow.ca/

aotusign:自動簽名工具,沒有官網網路即可

native文件反編譯工具

ida:靜態分析、動態分析,免費版功能受限 地址https://www.hex-rays.com/

gdb:http://ftp.gnu.org/gnu/gdb/

輔助調試工具

adb:通向手機或模擬器的橋梁,綠色小程序。最常用的就是查看logcat,進入手機shell等。 地址http://adbshell.com/downloads

ddms:android SDK中自帶工具。該工具可以查看手機模擬器的進程,選中需要監控的進程後,會出現綠色小蜘蛛圖標,同時後面會出現8700埠號。

jdb:jdk目錄下自帶的與安卓進程連接的程序,常與ddms配合用於動態調試

xposed:需要安裝框架+模塊,還有對應的xposed市場。可以在常用市場搜索安裝。bluestack中安裝後變磚了,夜神中安裝正常。

十六進制文件編輯工具

UltraEdit:十六進制文件編輯工具

010Edit:還沒有用過

winhex:印象中很久前用過

android開發工具

Android Studio

Eclipse

Aide(手機版開發工具)

其他

壓縮軟體:winrar、7zip等等都可以,將apk改名為zip就能直接打開

社區資料篇章

論壇及社區

看雪論壇:https://bbs.pediy.com/forum-161.htm

freebuff:http://www.freebuf.com/articles/terminal

還有吾愛破解、知乎、、CSDN等等都有相應版塊內容及文章可供學習。

arm指令

官方文檔pdf

https://silver.arm.com/download/ARM_and_AMBA_Architecture/AR570-DA-70000-r0p0-00rel2/DDI0406C_C_arm_architecture_reference_manual.pdf

在線編譯網站

c到匯編在線轉換

https://gcc.godbolt.org/

匯編到操作碼在線轉換

http://armconverter.com/

❹ 怎麼對android app實現逆向分析

首先,逆向分析是一門技術,也是一門藝術。
其次,安卓逆向同樣可細分為應用層APK逆向、安卓設備框架、內核驅動等逆向、基於安卓的硬體產品逆向等。此處假定樓主說的是第一種逆向。
應用層的逆向分析根據需求的不同,又可細分成APK流程逆向與功能逆向。
流程逆向通常是指簡單的對APK運行流程進行分析,此類分析通常可以使用將APK置於沙盒環境中運行捕捉並查看運行結果。這種逆向需求通常不是很多,典型的工種有殺軟廠商的病毒分析工程師。
功能逆向相比流程逆向則困難得多。但需求比較普遍。實際逆向分析過程中對功能實現的理解,在很大程度上取決於逆向人員相關的軟體開發知識。比如,分析Android程序的JAVA代碼就需要掌握基本的Android軟體開發的知識。分析so庫的代碼就需要了解C/C++相關的so庫開發的知識。除了基本開發相關的能力外,逆向分析人員還需要具備以下知識:
ARM/X86/MIPS匯編語言-分析so庫時可能需要閱讀大量的反匯編代碼。
常見逆向分析工具的使用-JDGUI/IDA PRO/APKTOOL/JEB/DEX2JAR
常用的安卓程序調試與反調試手段-調試器檢測與反檢測/脫殼/反混淆
常用的加密與解密演算法-好的逆向分析人員需要有快速識別常見加密解密演算法的能力

最後,就是多動手,多動手練習是掌握逆向分析技術最好的方法。

❺ Android軟體安全與逆向分析的Android術語

逆向分析是一種逆向工程技術,是一種產品設計技術再現過程,即對一項目標產品進行逆向分析及研究,從而演繹並得出該產品的處理流程、組織結構、功能特性及技術規格等設計要素,以製作出功能相近,但又不完全一樣的產品。逆向工程源於商業及軍事領域中的硬體分析。其主要目的是在不能輕易獲得必要的生產信息的情況下,直接從成品分析,推導出產品的設計原理 。Android 軟體安全與逆向分析是針對Android 軟體的逆向分析,對原有APK文件進行反向研究,包括對語法,代碼等進行分析,破解原有APK的源代碼,資源文件比如圖片,音頻等等行為。
1.APK一旦被破解,反編譯之後的源碼就被破解者獲取,開發者的勞動成果就被竊取,危害了開發者的利益。
2.反編譯的APK如果被進行二次打包,那麼APP就成為盜版產品,盜版產品侵害開發者的版權
3.反編譯的產品有可能被破解者進行二次打包,注入惡意代碼,竊取用戶隱私,惡意扣除用戶手機流量和資費,獲取用戶數據等等,這些行為嚴重傷害用戶的利益。
4.盜版產品不受保護,用戶得不到合理的售後支持和服務。
在這種情況下就需要加強對安卓APK DEX文件進行保護的技術,防止反編譯。dex文件其實就是Android系統中可以在Dalvik虛擬機上直接運行的文件格式。Java源碼通過ADT編譯成Smali語言這是一個優化的過程,相對於.class文件它體積小、運行效率高、被編譯後可讀性低;Smali再到class. DEX本身就是一個加殼保護的過程。 DEX文件如果未做好保護,黑客通過反編譯可讓源碼完全暴露,可利用閱讀源碼來找到App的設計流程,通過對程序流程的了解將很容易對程序進行盜版、惡意篡改、惡意代碼注入等危險行為 。
1.隔離Jave程序。這種是最根本的保護,將一些關鍵的Class文件進行加密,例如對注冊碼、序列號管理相關的類進行加密,開發人員可以將關鍵的JavaClass放在伺服器端,用戶通過伺服器介面獲取服務而不是直接通過java文件。破解者就無法獲取class文件了。目前有很多通過介面提供服務的標准和協議,比如HTTP,webservice,RPC等等。但是呢,這種方式並不是適合所有的APP,比如單機運行的程序的無法隔離Java程序。
2.對class文件進行加密保護。開發者可以將一些關鍵的class文件進行加密,比如對注冊碼,序列號管理相關的類進行加密來防止反編譯。在使用這些被加密的類之前,程序需要首先對這些類進行解密,然後才能將這些類載入在JVM中。要解密這些類,必須要通過一些硬體或是軟體才能完成。
3.轉換成本地代碼
這是一種防止反編譯的比較有效的方法。因為本地代碼往往難以被反編譯。開發人員可以選擇將整個應用程序轉換成本地代碼,或者可以選擇關鍵模塊轉換。如果僅僅轉換關鍵部分模塊,Java程序在使用這些模塊時,需要使用JNI技術進行調用。當然,在使用這種技術保護Java程序的同時,也犧牲了Java的跨平台特性。對於不同的平台,我們需要維護不同版本的本地代碼,這將加重軟體支持和維護的工作。不過對於一些關鍵的模塊,有時這種方案往往是必要的。為了保證這些本地代碼不被修改和替代,通常需要對這些代碼進行數字簽名。在使用這些本地代碼之前,往往需要對這些本地代碼進行認證,確保這些代碼沒有被黑客更改。如果簽名檢查通過,則調用相關JNI方法.
4.代碼混淆
代碼混淆是對Class文件進行重新組織和處理,使得處理後的代碼與處理前代碼完成相同的功能(語義)。但是混淆後的代碼很難被反編譯,即反編譯後得出的代碼是非常難懂、晦澀的,因此反編譯人員很難得出程序的真正語義。從理論上來說,黑客如果有足夠的時間,被混淆的代碼仍然可能被破解,甚至目前有些人正在研製反混淆的工具。但是從實際情況來看,由於混淆技術的多元化發展,混淆理論的成熟,經過混淆的Java代碼還是能夠很好地防止反編譯。下面我們會詳細介紹混淆技術,因為混淆是一種保護Java程序的重要技術 。
5.第三方工具加密
上面四種方式可能要耗費開發者很大一部分精力和時間,如果想要方便的話,可以尋求第三方的加密工具。目前市場上有一些工具是可以幫助APK加密的,比較知名的是愛加密的加密平台。相對於上面四種方式,這種第三方的加密工具要更全面和專業,可以有效的保護dex文件,so庫文件,xml主配文件以及其他資源文件不被反編譯和惡意篡改。
愛加密專家提醒,這些方式並不是獨立運用的,有時候可以混合使用,根據自己的情況來定,比如說高級混淆之後還是可以使用第三方的愛加密工具進行高級保護,多一重安全。

❻ 逆向需要的工具匯總(持續更新中)

一、砸殼工具

mpdecrypted: https://github.com/stefanesser/mpdecrypted

Clutch: https://github.com/KJCracks/Clutch

二、界面分析工具

Reveal: https://revealapp.com/

三、監控工具

snoop-it: https://code.google.com/archive/p/snoop-it/

introspy: https://github.com/iSECPartners/Introspy-iOS

四、靜態分析工具

IDA: https://www.hex-rays.com/procts/ida/support/download_demo.shtml

Hopper: https://www.hopperapp.com/

五、動態調試工具

lldb: http://lldb.llvm.org/

六、動態腳本工具

cycript: http://www.cycript.org/

frida: http://www.frida.re/

七、抓包工具

BurpSuite: https://portswigger.net/burp/download.html

Charles: https://www.charlesproxy.com/

Wireshark: https://www.wireshark.org/download.html

八、Mac工具

MachOView: https://github.com/gdbinit/MachOView

九、導出頭文件工具

class-mp: https://github.com/nygard/class-mp

十、THEOS越獄開發工具包

thoes: https://github.com/theos/theos/wiki/Installation

十一、文件管理工具

Filza ios設備查看文件系統

iFunBox/iExplorer mac設備查看ios設備的文件系統

十二、debugserver (動態調試,附加子進程)

https://www.jianshu.com/p/36dc01a37180

十三、常用Tweak.xm預處理指令

http://iphonedevwiki.net/index.php/Logos

十四、符號表恢復工具(restore-symbol)

https://github.com/tobefuturer/restore-symbol

其他工具:

iOSOpenDev: https://code.google.com/archive/p/iosopendev/downloads

insert_dylib: https://github.com/Tyilo/insert_dylib

iTerm: http://www.iterm2.com/

Alfred: https://www.alfredapp.com/

iTools: http://www.itools.cn/

更新:2018-8-16
phantomjs :提供一個瀏覽器環境的命令行介面,相當於"虛擬瀏覽器"。
PhantomJS官方地址: http://phantomjs.org/ 。
PhantomJS官方API: http://phantomjs.org/api/ 。
PhantomJS官方示例: http://phantomjs.org/examples/ 。
PhantomJS GitHub: https://github.com/ariya/phantomjs/ 。

參考文檔: http://javascript.ruanyifeng.com/tool/phantomjs.html#toc1

MonkeyDev : https://github.com/AloneMonkey/MonkeyDev
這里我就直接功能點了:
原有iOSOpenDev的升級,非越獄插件開發集成神器!

frida-ios-mp :一鍵砸殼工具,非常的好用。
https://github.com/AloneMonkey/frida-ios-mp

Hookzz :通過Hookzz可以快速找到調用的方法,理清程序調用邏輯。
源碼: https://github.com/jmpews/HookZz
文檔: https://jmpews.github.io/zzpp/getting-started/

❼ Android-trace分析工具

1.TraceView 官方說明文檔: https://developer.android.google.cn/studio/profile/cpu-profiler android CPU profiler CPU profiler可以實時檢查應用的CPU使用率和線程activity,並記錄函數跟蹤,以便於您可以優化和調試您的應用程序. Flame Chart如果出現問題 顏色也會加深 2.systrace 簡介: systrace是Android4.1版本之後推出的,對系統Performance分析的工具。systrace的功能包括跟蹤系統I/O操作,內核工作隊列,CPU負載以及Android各個子系統的運行狀況等。 主要由三部分構成: 1.內核部分 systrace採用了linux Kernel的ftrace功能,所以如果要使用systrace的話,必須開啟Kernel和ftrace相關的模塊. 2.數據採集部分 Android中定義了一個trace類,應用程序可以使用該類把統計信息輸出給trace,同時,android有一個atrace程序,它可以從ftrace中讀取統計信息然後交給數據分析工具來處理. 3.數據分析工具 Android提供一個systrace.py用來配置數據採集的方法(如採集數據的標簽,輸出文件名等)和收集ftrace統計數據並生成一個結果網頁文件供用戶查看。 簡單的說,當機器以60幀/秒顯示,用戶會感知機器流暢。如果出現顯示時丟幀的情況,就需要知道系統在做什麼?Systrace是用來收集系統和應用的數據信息和一些中間生成數據的細節,在Android4.1和4.2系統之後出現。Systrace在分析一些顯示問題上特別有用,如應用畫圖慢,顯示動作或者動畫時變形。 抓取systrace 進入本地Android/Sdk/platform-tools/systrace目錄下,執行python systrace.py view --time = 10 python腳本的option
閱讀全文

與android逆向分析工具相關的資料

熱點內容
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249
Android怎麼優化內存 瀏覽:106
linuxetcsysconfig 瀏覽:396