一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

APP逆向之SO必備分析手法

 cn1188181 2023-04-07 發(fā)布于北京

APP逆向過程中,需要對dex文件和elf文件進(jìn)行分析,又因現(xiàn)在各APP都有各種代碼保護(hù)手法,因此都需要進(jìn)行動態(tài)分析。

今天就分享下對elf文件也就是so文件中動態(tài)分析so文件中JNI函數(shù)的方案。


jnitrace它是基于frida基礎(chǔ)上的一個工具,它是一個動態(tài)分析追蹤SO文件中的JNI API調(diào)用的工具,它可以進(jìn)行指定SO文件進(jìn)行跟蹤JNI調(diào)用。

基礎(chǔ)知識


1、JavaVM 和 JNIEnv

JNI 它定義了兩個關(guān)鍵數(shù)據(jù)結(jié)構(gòu):JavaVM和JNIEnv。它們本質(zhì)上都是指向函數(shù)表的二級指針。(在 C++ 版本中,它們是一些類,這些類具有指向函數(shù)表的指針,并具有每個通過該函數(shù)表間接調(diào)用的 JNI 函數(shù)的成員函數(shù)。)JavaVM 提供“調(diào)用接口”函數(shù),可以利用此類來函數(shù)創(chuàng)建和銷毀 JavaVM。JNIEnv 提供了大部分 JNI 函數(shù), so中的原生函數(shù)都會收到 JNIEnv 作為第一個參數(shù)。該 JNIEnv 將用于線程本地存儲。因此無法在線程之間共享 JNIEnv。如果一段代碼無法通過其他方法獲取自己的 JNIEnv,應(yīng)該共享相應(yīng) JavaVM,然后使用 GetEnv 發(fā)現(xiàn)線程的 JNIEnv。

圖片

JNIEnv 和 JavaVM 的 C 聲明與 C++ 聲明不同。'jni.h' include 文件會提供不同的類型定義符,具體取決于該文件是包含在 C 還是 C++ 中。因此不建議在這兩種語言包含的頭文件中添加 NIEnv 參數(shù)。

2、spawn和attach注入?yún)^(qū)別

Frida支持spawn和attach兩種啟動方式。

attach模式下,F(xiàn)rida會附加到當(dāng)前的目標(biāo)進(jìn)程中,即需要App處于啟動狀態(tài),這也意味著它只能從當(dāng)前時機(jī)往后Hook;

spawn模式下,F(xiàn)rida會自行啟動并注入進(jìn)目標(biāo)App,Hook的時機(jī)非常早,好處在于不會錯過App中相對較早(比如App啟動時產(chǎn)生的參數(shù)),缺點是假如想要Hook的時機(jī)點偏后,則會帶來大量干擾信息,嚴(yán)重甚至?xí)?dǎo)致server崩潰。

attach注入:APP啟動后再 hook,不能 hook  APP的啟動階段。

spawn注入 :重啟 APP,適合 hook APP啟動階段。

基本操作


jnitrace使用需要配合python環(huán)境和frida工具(版本需要配套好)

圖片

這個jnitrace安裝后主要核心的實現(xiàn)功能都在jnitrace.py和jnitrace.js

圖片

圖片

下圖是jnitrace.py中主要功能:首先判斷連接設(shè)備的方式 是以remote_device還是usb_device,接著默認(rèn)采用spawn的注入方式,在去執(zhí)行jnitrace.js文件中的hook功能,最后在輸出執(zhí)行后的數(shù)據(jù)。

圖片

下圖是jnitrace.js的關(guān)鍵功能點,注入后實際功能還是調(diào)用到底層的dlopen。

圖片

實踐分析


Frida啟動后會往要hook的進(jìn)程中注入frida的so文件

圖片

下圖是所有功能組成的解析

圖片

通過jnitrace  -l libxxx.so  com.xxx.xxx 可以打印輸出so中的jni函數(shù),以及這些jni函數(shù)的調(diào)用獲取數(shù)據(jù)

圖片

圖片

圖片

通過 jnitrace -l libxxx.so com.xxx.xxx -i RegisterNatives 可以查看到so中的所有動態(tài)注冊的函數(shù)。

圖片

圖片

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    免费黄片视频美女一区| 国产二级一级内射视频播放| 日韩精品视频免费观看| 亚洲精品国产福利在线| 国产视频福利一区二区| 中文字幕精品少妇人妻| 初尝人妻少妇中文字幕在线| 91欧美日韩国产在线观看| 激情视频在线视频在线视频| 冬爱琴音一区二区中文字幕| 国产一级性生活录像片| 日本亚洲欧美男人的天堂| 亚洲国产四季欧美一区| 91亚洲国产成人久久精品麻豆| 精品香蕉国产一区二区三区| 九七人妻一区二区三区| 一区二区三区日韩中文| 麻豆tv传媒在线观看| 狠狠干狠狠操亚洲综合| 亚洲av秘片一区二区三区| 97人摸人人澡人人人超碰| 韩国激情野战视频在线播放| 国内胖女人做爰视频有没有| 亚洲国产色婷婷久久精品| 欧美极品欧美精品欧美| a久久天堂国产毛片精品| 亚洲视频一级二级三级| 欧美日韩久久精品一区二区| 国产麻豆成人精品区在线观看 | 国产精品欧美激情在线| 亚洲一区二区三区av高清| 久久91精品国产亚洲| 色婷婷国产精品视频一区二区保健 | 在线欧美精品二区三区| 午夜精品福利视频观看 | 久久精品久久久精品久久| 大香蕉再在线大香蕉再在线| 91欧美视频在线观看免费| 色综合伊人天天综合网中文| 国产老熟女超碰一区二区三区| 两性色午夜天堂免费视频|