国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

android frida檢測繞過

這篇具有很好參考價(jià)值的文章主要介紹了android frida檢測繞過。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Frida檢測是一種常見的安卓逆向技術(shù),常用于防止應(yīng)用程序被反向工程。如果您遇到了Frida檢測,您可以嘗試以下方法來繞過它:

  1. 使用Magisk Hide模塊:Magisk是一個(gè)強(qiáng)大的安卓root工具,它附帶了一個(gè)Magisk Hide模塊,可以幫助您隱藏root權(quán)限。這可以幫助您繞過Frida檢測。

  2. 使用Xposed框架:Xposed框架可以幫助您實(shí)現(xiàn)一些高級的安卓逆向技術(shù),包括繞過Frida檢測。您可以使用Xposed模塊來隱藏您的應(yīng)用程序信息。

  3. 使用Frida Gadget:Frida Gadget是一個(gè)用于Frida檢測的小型應(yīng)用程序,可以幫助您繞過檢測。將其與Frida一起使用,可以幫助您實(shí)現(xiàn)高級的安卓逆向技術(shù)。

?apk案例分析

在使用frida 附加時(shí)候發(fā)現(xiàn)進(jìn)程退出,我們首先查看是在哪里結(jié)束進(jìn)程的

function hook_dlopen() {
    Interceptor.attach(Module.findExportByName(null, "android_dlopen_ext"),
        {
            onEnter: function (args) {
                var pathptr = args[0];
                if (pathptr !== undefined && pathptr != null) {
                    var path = ptr(pathptr).readCString();
                    console.log("load " + path);
                }
            }
        }
    );
}

?通過 dlopen可以發(fā)現(xiàn)在模塊libnative-lib.so 執(zhí)行處進(jìn)程結(jié)束

繞過frida檢測,Android逆向,android,frida hook

?分析模塊libnative-lib.so,找關(guān)鍵位置

繞過frida檢測,Android逆向,android,frida hook

?有兩處位退出進(jìn)程位置函數(shù) check_loop通過maps 內(nèi)存中的關(guān)鍵字符串查找檢測frida.

void __fastcall __noreturn check_loop(void *a1)
{
    for ( i = 0; ; ++i )
    {
        fd = open("/proc/self/maps", 0);
        if ( fd >= 1 )
        {
            while ( read(fd, buf, 0x200u) >= 1 )
            {
                v11 = buf;
                v10 = "frida";
                haystack = buf;
                needle = "frida";
                if ( strstr(buf, "frida") )
                {
                    v1 = getpid();
                    kill(v1, 9);
                }
                if ( sscanf(buf, "%x-%lx %4s %lx %*s %*s %s", &buf[516], &buf[512], &v5, &v4, s) == 5
            && v5 == 114
            && v6 == 112
            && !v4 )
                {
                    strlen(s);
                }
            }
        }
        close(fd);
        sleep(1u);
    }
}

?通過斷點(diǎn)標(biāo)記這兩處進(jìn)程退出位置方便后續(xù)返回查看

繞過frida檢測,Android逆向,android,frida hook

修改位置有兩處,直接IDA keypath nop掉重打包,或這利用frida hook.下面用frida hook方式nop掉結(jié)束進(jìn)程的兩處關(guān)鍵點(diǎn)??

1.nop 掉0x9498處exit調(diào)用

繞過frida檢測,Android逆向,android,frida hook

?2.nop 掉0x92C2處kill

繞過frida檢測,Android逆向,android,frida hook

?實(shí)現(xiàn)代碼如下

//指令輸出
function dis(address, number) {
    for (var i = 0; i < number; i++) {
        var ins = Instruction.parse(address);
        console.log("address:" + address + "--dis:" + ins.toString());
        address = ins.next;
    }
}
/*call_function
 static void call_function(const char* function_name __unused,
                           linker_ctor_function_t function,
                           const char* realpath __unused       //加載的當(dāng)前模塊路徑
) 
  }*/

function hook() {
    //call_function("DT_INIT", init_func_, get_realpath());
    var linkermodule = Process.getModuleByName("linker");
    var call_function_addr = null;
    var symbols = linkermodule.enumerateSymbols();
    for (var i = 0; i < symbols.length; i++) {
        var symbol = symbols[i];
        if (symbol.name.indexOf("__dl__ZL13call_functionPKcPFviPPcS2_ES0_") != -1) {
            call_function_addr = symbol.address;
        }
    }
    Interceptor.attach(call_function_addr, {
        onEnter: function (args) {
            var type = ptr(args[0]).readUtf8String();
            var address = args[1];
            var sopath = ptr(args[2]).readUtf8String();
            console.log("loadso:" + sopath + "--addr:" + address + "--type:" + type);
            if (sopath.indexOf("libnative-lib.so") != -1) {
                var libnativemodule = Process.getModuleByName("libnative-lib.so");
                var base = libnativemodule.base;

                //nop kill
                //    .text:000092BA                 B               loc_92BC
                //    .text:000092BC ; ---------------------------------------------------------------------------
                //    .text:000092BC
                //    .text:000092BC loc_92BC                                ; CODE XREF: check_loop(void *)+5E↑j
                //    .text:000092BC                 BLX             getpid
                //    .text:000092C0                 MOVS            R1, #9  ; sig
                //    .text:000092C2                 BLX             kill
                console.log("---------------- nop kill begin -------------")
                dis(base.add(0x92BA).add(1), 10);
               //方式一修改內(nèi)存
               // Memory.protect(base.add(0x92C2), 4, 'rwx');
               // base.add(0x92C2).writeByteArray([0x00, 0xbf, 0x00, 0xbf]);
                //方式二修改內(nèi)存
                var patchaddr=base.add(0x92C2);
                Memory.patchCode(patchaddr, 4, patchaddr => {
                    var cw = new ThumbWriter(patchaddr);
                    cw.putNop();
                    var cw = new ThumbWriter(patchaddr.add(0x2));
                    cw.putNop();
                    cw.flush();
                  });
                console.log("++++++++++++ nop kill end   +++++++++++++")
                dis(base.add(0x92BA).add(1), 10);
                // nop exit
                //   .text:0000948E                 CMP             R0, #0
                //   .text:00009490                 BEQ             loc_949C
                //   .text:00009492                 B               loc_9494
                //   .text:00009494 ; ---------------------------------------------------------------------------
                //   .text:00009494
                //   .text:00009494 loc_9494                          ; CODE XREF: anti_frida_loop(void)+26↑j
                //   .text:00009494                 MOV.W           R0, #0xFFFFFFFF ; status
                //   .text:00009498                 BLX             exit
                console.log("--------------- nop exit begin -------------")
                dis(base.add(0x948E).add(1), 10);  //keystone
                Memory.protect(base.add(0x9498), 4, 'rwx');
                base.add(0x9498).writeByteArray([0x00, 0xbf, 0x00, 0xbf]);
                console.log("+++++++++++++++ nop exit end   +++++++++++++")
                dis(base.add(0x948E).add(1), 10);
            }
        }
    })
}
function main(){
  hook();
}
setImmediate(main);

?總結(jié):

繞過Frida檢測的方法有很多種,以下是一些可能的方法:

1. 使用Frida Bypass插件:這是一款Frida插件,可以自動(dòng)繞過Frida檢測,并讓Frida無法對應(yīng)用程序進(jìn)行監(jiān)控。

2. 使用Frida Gadget庫:這是一個(gè)動(dòng)態(tài)Frida庫,可以在運(yùn)行時(shí)注入Frida,以避免被檢測到。

3. 修改應(yīng)用程序代碼:通過修改應(yīng)用程序代碼,可以讓Frida無法監(jiān)控應(yīng)用程序。

4. 使用防檢測框架:有些防檢測框架可以繞過Frida的檢測,例如Xposed框架、VirtualXposed、Magisk等。

5. 使用其他工具:除了Frida,還有其他工具可以用來監(jiān)控應(yīng)用程序,例如Xposed、Cydia Substrate等。如果使用這些工具,F(xiàn)rida將無法監(jiān)控應(yīng)用程序。文章來源地址http://www.zghlxwxcb.cn/news/detail-556626.html

到了這里,關(guān)于android frida檢測繞過的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android Spider App逆向 Frida - 夜神模擬器安裝配置 基本使用

    Android Spider App逆向 Frida - 夜神模擬器安裝配置 基本使用

    Frida 是一款基于 Python + JavaScript 的 Hook 與調(diào)試框架,實(shí)現(xiàn)app逆向的強(qiáng)大工具; 模擬器下載安裝教程:https://blog.csdn.net/EXIxiaozhou/article/details/127767808 提示:以下是本篇文章正文內(nèi)容,下面案例可供參考 Frida是一款易用的跨平 Hook 工具, Java 層到 Native 層的 Hook 無所不能,是一種

    2024年01月24日
    瀏覽(30)
  • so層檢測frida繞過

    如果是在so層里開一個(gè)線程檢測frida; 我們思路是可以frida加載那個(gè)so, 然后打印出檢測線程的偏移; 然后干掉這個(gè)線程,完成!

    2024年02月12日
    瀏覽(15)
  • Android hook、檢測及對抗相關(guān)

    Android hook、檢測及對抗相關(guān)

    Xposed hook多個(gè)dex firda hook libart.so文件導(dǎo)出函數(shù)(專治各種靜態(tài)找不到) hook liblinker.so hook init_array中的函數(shù), 需要指定so名稱,且會hook之后的所有so的init_array中的函數(shù),可以通過hook_init函數(shù)中for循環(huán),使用函數(shù)偏移過濾。 通過libc.so的底層dlopen函數(shù)實(shí)現(xiàn)dump so Xposed模塊 新建Android項(xiàng)

    2024年02月06日
    瀏覽(14)
  • [免費(fèi)專欄] Android安全之Root檢測與Root繞過(淺析)

    [免費(fèi)專欄] Android安全之Root檢測與Root繞過(淺析)

    也許每個(gè)人出生的時(shí)候都以為這世界都是為他一個(gè)人而存在的,當(dāng)他發(fā)現(xiàn)自己錯(cuò)的時(shí)候,他便開始長大 少走了彎路,也就錯(cuò)過了風(fēng)景,無論如何,感謝經(jīng)歷 轉(zhuǎn)移發(fā)布平臺通知:將不再在CSDN博客發(fā)布新文章,敬請移步知識星球 感謝大家一直以來對我CSDN博客的關(guān)注和支持,但

    2024年02月08日
    瀏覽(17)
  • Android13 安裝最新版 Frida

    Android13 安裝最新版 Frida

    本文所有教程及源碼、軟件僅為技術(shù)研究。不涉及計(jì)算機(jī)信息系統(tǒng)功能的刪除、修改、增加、干擾,更不會影響計(jì)算機(jī)信息系統(tǒng)的正常運(yùn)行。不得將代碼用于非法用途,如侵立刪! Android13 安裝最新版 Frida 環(huán)境 win10 Pixel4 Android13 Python3.9 Frida16.1.0 Frida-tools12.1.3 PC安裝frida和frid

    2024年02月11日
    瀏覽(47)
  • 【學(xué)習(xí)筆記】在Android使用Frida進(jìn)行https抓包

    【學(xué)習(xí)筆記】在Android使用Frida進(jìn)行https抓包

    最近需要在Android進(jìn)行https抓包,對數(shù)據(jù)解密,找了很多方法,終于成功了,不過原文一些步驟對于我這個(gè)小白還是有點(diǎn)不理解的地方,在此記錄一下。 一臺root手機(jī) frida環(huán)境 該步驟全程參考: [Frida入門教程] 一文搞定Frida環(huán)境搭建,基于逍遙模擬器(虛擬設(shè)備)和ADB(Android Debug

    2024年02月16日
    瀏覽(22)
  • 【粉絲福利社】Android應(yīng)用安全實(shí)戰(zhàn):Frida協(xié)議分析(文末送書-完結(jié))

    【粉絲福利社】Android應(yīng)用安全實(shí)戰(zhàn):Frida協(xié)議分析(文末送書-完結(jié))

    ?? 作者簡介,愚公搬代碼 ??《頭銜》:華為云特約編輯,華為云云享專家,華為開發(fā)者專家,華為產(chǎn)品云測專家,CSDN博客專家,CSDN商業(yè)化專家,阿里云專家博主,阿里云簽約作者,騰訊云優(yōu)秀博主,騰訊云內(nèi)容共創(chuàng)官,掘金優(yōu)秀博主,51CTO博客專家等。 ??《近期榮譽(yù)》:

    2024年04月09日
    瀏覽(34)
  • 手機(jī)frida繞過ssl pinning

    手機(jī)得是root過的,然后從這個(gè)網(wǎng)站https://github.com/frida/frida/releases下載對應(yīng)版本的frida-server,現(xiàn)在的手機(jī)大多數(shù)都是arm64的。 電腦上下載adb,手機(jī)用USB連到電腦上,打開開發(fā)者選項(xiàng)的USB調(diào)試。 adb devices 確認(rèn)已經(jīng)連接,用adb push把frida-server傳到手機(jī)上,chmod 777后切換到root用戶下

    2024年02月12日
    瀏覽(16)
  • Frida hook 雙向證書秘鑰

    spawn 模式啟動(dòng): frida -U -f 包名 -l keystore.js --no-pause 加 – no-pause與不加 --no-pause的區(qū)別主要是 hook時(shí)機(jī)的早晚。 --no-pause是即時(shí)hook, 而不加 --no-pause 這個(gè)參數(shù)的話。frida會拉起進(jìn)程,停在加載主界面之前,這時(shí)候 應(yīng)用會出現(xiàn)白屏狀態(tài),就像 恢復(fù)主線程運(yùn)行的話,這里要手動(dòng)用

    2024年02月11日
    瀏覽(26)
  • 安卓Frida hook脫殼環(huán)境配置過程

    安卓Frida hook脫殼環(huán)境配置過程

    本文記錄開始于22/7/22/16:50 目的是記錄安卓Android脫殼過程 使用Frida對360加固的apk進(jìn)行脫殼 操作環(huán)境:win10+Android雷神模擬器 (1)Java JDK (2) Android SDK 平臺工具軟件包 下載:https://developer.android.com/studio/releases/platform-tools 配置:參考教程: http://t.csdn.cn/qXGXi (3)安卓模擬器

    2024年02月06日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包