0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

編譯官方fridaserver或者strongFrida并替換系統(tǒng)內(nèi)置版本

哆啦安全 ? 來源: 卓碼星球 ? 2023-10-24 16:51 ? 次閱讀

主要內(nèi)容:

下載官方frida源碼并編譯安卓版本的fridaserver,然后替換內(nèi)置版本

編譯反檢測版本fridaserver工程strongFrida并替換系統(tǒng)內(nèi)置版本

1.編譯環(huán)境前期準備

1.1 操作系統(tǒng)準備

ubuntu系統(tǒng):
ubuntu-20.04
java環(huán)境:
JDK1.8
Python環(huán)境:
>=3.7

git工具:
安裝任一版本就行。

1.2 ndk下載準備

當前最新frida源碼編譯安卓版本需要ndk-r22版本,不然會提示錯誤。

ndk下載地址:

https://dl.google.com/android/repository/android-ndk-r22-linux-x86_64.zip

下載以后解壓到一個目錄后續(xù)使用。比如我個人的存放目錄:

/home/qiang/androidndk/android-ndk-r22

1.3 安裝依賴

分別執(zhí)行如下命令:

qiang@ubuntu:~/myproject/frida/frida$sudoapt-getupdate

qiang@ubuntu:~/myproject/frida/frida$sudoapt-getinstallbuild-essentialtreeninja-buildgcc-multilibg++-multiliblib32stdc++-9-devflexbisonxz-utilsrubyruby-devpython3-requestspython3-setuptoolspython3-devpython3-piplibc6-devlibc6-dev-i386-y

qiang@ubuntu:~/myproject/frida/frida$sudopython-mpipinstallcoloramaprompt-toolkitpygments

qiang@ubuntu:~/myproject/frida/frida$python-mpipinstalllief

1.4 frida源碼下載

執(zhí)行如下命令下載:

gitclone--recurse-submoduleshttps://github.com/frida/frida

比如我下載存儲目錄:

/home/qiang/myproject/frida/frida

2.編譯操作

2.1 官方版本編譯

(1).設(shè)置ANDROID_NDK_ROOT變量

qiang@ubuntu:~/myproject/frida/frida$exportANDROID_NDK_ROOT=/home/qiang/androidndk/android-ndk-r22

(2).進入frida源碼根目錄分別執(zhí)行如下命令編譯android版本的frida

qiang@ubuntu:~/myproject/frida/frida/frida$pwd
/home/qiang/myproject/frida/frida/frida
qiang@ubuntu:~/myproject/frida/frida/frida$ls
buildCOPYINGfrida-gumfrida-qmlfrida-toolsMakefile.macos.mkREADME.md
config.mkfrida-clrfrida-nodefrida.slnMakefileMakefile.sdk.mkreleng
CONTRIBUTING.mdfrida-corefrida-pythonfrida-swiftMakefile.linux.mkMakefile.toolchain.mk
qiang@ubuntu:~/myproject/frida/frida/frida$
qiang@ubuntu:~/myproject/frida/frida/frida$makecore-android-arm64
qiang@ubuntu:~/myproject/frida/frida/frida$
qiang@ubuntu:~/myproject/frida/frida/frida$makecore-android-arm
qiang@ubuntu:~/myproject/frida/frida/frida$

(3).編譯完成之后的目標存儲目錄

frida-android-arm存放目錄:

qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm/bin$
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm/bin$pwd
/home/qiang/myproject/frida/frida/frida/build/frida-android-arm/bin
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm/bin$ls-la
total36316
drwxr-xr-x2qiangqiang40963月3122:25.
drwxrwxr-x6qiangqiang40963月3122:25..
-rwxr-xr-x1qiangqiang178460123月3122:25frida-inject
-rwxr-xr-x1qiangqiang176698443月3122:25frida-server
-rwxr-xr-x1qiangqiang16609003月3122:25gum-graft
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm/bin$
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm/bin$

frida-android-arm64存儲目錄:

qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm64/bin$ls-la
total83204
drwxr-xr-x2qiangqiang40963月3122:28.
drwxrwxr-x6qiangqiang40963月3122:28..
-rwxr-xr-x1qiangqiang416208723月3122:28frida-inject
-rwxr-xr-x1qiangqiang413832163月3122:28frida-server
-rwxr-xr-x1qiangqiang21820963月3122:28gum-graft
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm64/bin$pwd
/home/qiang/myproject/frida/frida/frida/build/frida-android-arm64/bin
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm64/bin$
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm64/bin$ls
frida-injectfrida-servergum-graft
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm64/bin$
qiang@ubuntu:~/myproject/frida/frida/frida/build/frida-android-arm64/bin$

2.2 strongR-frida-android版本編譯

2.2.1 簡介

strongR-frida-android主要是通過patch代碼的方式,為frida官方源碼進行一些修改,抹除一些關(guān)鍵特征,為Android構(gòu)建反檢測版本的frida-server。

2.2.2 patch補丁文件

patch補丁項目地址:

https://github.com/AAAA-Project/Patchs

2.2.3 編譯以及測試流程

strongR-frida-android編譯和官方frida編譯方式是一樣的,差異在于編譯frida源碼之前,需要先下載frida官方的源碼,然后使用git am命令將patch代碼應(yīng)用到frida官方源碼中。以下說一下具體patch補丁的流程。

(1)、為frida源碼patch 反檢測補丁

詳細流程參考如下命令:

qiang@ubuntu:~/myproject/frida/frida$
qiang@ubuntu:~/myproject/frida/frida$gitclonehttps://github.com/AAAA-Project/Patchs
Cloninginto'Patchs'...
remote:Enumeratingobjects:40,done.
remote:Countingobjects:100%(40/40),done.
remote:Compressingobjects:100%(22/22),done.
remote:Total40(delta19),reused32(delta11),pack-reused0
Unpackingobjects:100%(40/40),12.04KiB|280.00KiB/s,done.
qiang@ubuntu:~/myproject/frida/frida$cdfrida/frida-core/
qiang@ubuntu:~/myproject/frida/frida/frida/frida-core$gitam../../Patchs/strongR-frida/frida-core/*.patch
Applying:strongR-frida:string_frida_rpc
Applying:strongR-frida:io_re_frida_server
Applying:strongR-frida:pipe_linjector
Applying:strongR-frida:io_frida_agent_so
Applying:strongR-frida:symbol_frida_agent_main
Applying:strongR-frida:thread_gum_js_loop
Applying:strongR-frida:thread_gmain
Applying:strongR-frida:protocol_unexpected_command
qiang@ubuntu:~/myproject/frida/frida/frida/frida-core$
qiang@ubuntu:~/myproject/frida/frida/frida/frida-core$
qiang@ubuntu:~/myproject/frida/frida/frida/frida-core$

(2)、編譯源碼操作

和編譯官方frida源碼一樣的流程。

(3). 替換手機內(nèi)置版本測試

通過adb push進去替換。具體請參考"不用刷機情況下升級或者降級系統(tǒng)中的fridaserver"。

4. 可參考的集成編譯腳本

編譯官方fridashell腳本參考:

#buildforfridaandroid
#
sudoapt-getupdate

sudoapt-getinstallbuild-essentialtreeninja-buildgcc-multilibg++-multiliblib32stdc++-9-devflexbisonxz-utilsrubyruby-devpython3-requestspython3-setuptoolspython3-devpython3-piplibc6-devlibc6-dev-i386-y

sudopython-mpipinstallcoloramaprompt-toolkitpygments

#setANDROID_NDK_ROOT
exportANDROID_NDK_ROOT=/home/qiang/androidndk/android-ndk-r22
#deletefrida
rm-rffrida
#downloadagain
gitclone--recurse-submoduleshttps://github.com/frida/frida

cdfrida
#cleanbuildingcache
makeclean
#buildingfridaandroidarm
makecore-android-arm
#buildingfridaandroidarm64
makecore-android-arm64

編譯strong frida腳本參考如下:

#buildforstrongfridaandroid
#
sudoapt-getupdate
sudoapt-getinstallbuild-essentialtreeninja-buildgcc-multilibg++-multiliblib32stdc++-9-devflexbisonxz-utilsrubyruby-devpython3-requestspython3-setuptoolspython3-devpython3-piplibc6-devlibc6-dev-i386-y


sudopython-mpipinstallcoloramaprompt-toolkitpygments


#
exportANDROID_NDK_ROOT=/home/qiang/androidndk/android-ndk-r22

rm-rfPatchs
#DownloadPaths
gitclonehttps://github.com/AAAA-Project/Patchs

rm-rffrida
#Downloadfridasoucecode
gitclone--recurse-submoduleshttps://github.com/frida/frida

cdfrida/frida-core

echo"starttopatchsourcecode
"

gitam../../Patchs/strongR-frida/frida-core/*.patch

echo"finishtopatchsourcecode
"

sleep2

cd..

makeclean

makecore-android-arm
makecore-android-arm64

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6684

    瀏覽量

    123140
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    632

    瀏覽量

    29110
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    648

    瀏覽量

    32774

原文標題:編譯官方fridaserver或者strongFrida并替換系統(tǒng)內(nèi)置版本

文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    視音頻矩陣控制/切換系統(tǒng)

    終端。內(nèi)置了多種控制協(xié)議,可以直接控制或者由數(shù)字硬盤錄像機共同控制多種類型的解碼器、高速球,通過控制碼轉(zhuǎn)換器可直接控制ROBOT、SENSORMATIC等多畫面分割錄像處理器;增加以太網(wǎng)和FIFO通信技術(shù),迅速提升設(shè)備處理能力
    發(fā)表于 03-04 20:00

    STM32 uClinux 編譯

    諸位大神好,在下想在STM32F2或F4系列上使用uclinux操作系統(tǒng)。目前看到ST官方給出了在F1系列上的移植樣例。在此樣例上使用的編譯器是sourcery G++ 2009q1-163,可是我
    發(fā)表于 08-05 16:13

    查看交叉編譯工具鏈版本的時候提示沒有文件

    2.6.31, BuildID[sha1]=0x999ac689ec846c297ca6a0f1a8dd0d0ab678aac8, stripped。不想換系統(tǒng)和交叉編譯工具鏈,請問有什么辦法可以解決這個問題嗎?
    發(fā)表于 11-14 16:15

    【液晶顯示屏試用體驗】編譯官方例子出現(xiàn)的問題及解決方法

    看到很多同仁都用51單片機把官方給的例子編譯通過了,有圖有真相。 不知怎么回事,前面我也試了,發(fā)現(xiàn)存在問題,只好縮短 ucharcodeGXM12864_KS0108_tab[1536
    發(fā)表于 04-20 01:07

    韋東山鴻蒙系統(tǒng)移植課程:下載源碼編譯

    編譯官方版本我們先為官方板子hi3518ev300編譯Liteos-a,確保環(huán)境沒有問題。后面再打上IMX6ULL的補丁,為IMX6ULL編譯鴻蒙。進入源碼根目錄,執(zhí)行以下命令:cd
    發(fā)表于 09-30 15:38

    如何退出鴻蒙HarmonyOS 2.0 Beta測試計劃,還原為官方穩(wěn)定版本?

    如果使用后,還想用回原系統(tǒng),如何退出鴻蒙HarmonyOS 2.0 Beta測試計劃,還原為官方穩(wěn)定版本?
    發(fā)表于 05-24 16:47

    請問大佬應(yīng)該怎么換系統(tǒng)?

    誰能教我一下應(yīng)該怎么換系統(tǒng)
    發(fā)表于 12-30 07:40

    RK3288 Android 7.1.2內(nèi)置編譯User版本源碼出錯是什么原因呢

    RK3288 Android 7.1.2內(nèi)置編譯User版本源碼出錯是什么原因呢?怎樣去解決RK3288 Android 7.1.2內(nèi)置編譯
    發(fā)表于 03-03 07:18

    官方EVT里的程序通過keil編譯的hex無法運行是為什么?

    是這樣的,CH549最小系統(tǒng)搭建好了,可以正常下載運行官方示例包里的 CompositeKM.hex文件 ,插入電腦可以看到新增一個鍵盤設(shè)備。但是下載我自己編譯官方示例包里的CompositeKM.C文件生成的 Composit
    發(fā)表于 06-15 06:44

    使用命令行編譯官方例程helloworld,ESP-IDF編譯報錯怎么處理?

    使用命令行編譯官方例程helloworld,報錯如下,求大神解惑。G:\Espressif\tools\xtensa-esp32s2-elf\esp-2021r2-patch5-8.4.0
    發(fā)表于 02-10 08:54

    根據(jù)官方文檔下載和配置好esp-idf后,編譯官方提供的webcamera例程時,發(fā)生了cmake編譯錯誤的問題如何解決?

    根據(jù)官方文檔下載和配置好esp-idf后,編譯官方提供的webcamera例程時,發(fā)生了cmake編譯錯誤的問題,一開始是認為是環(huán)境配置的問題,不過重新裝了好幾次都發(fā)生了一樣的錯誤,甚至在Linux環(huán)境下也會出現(xiàn)
    發(fā)表于 02-21 07:31

    編譯官網(wǎng)最新的v4.3rc example中的i2s例子,編譯時報I2S0找不到的錯誤怎么解決?

    編譯官網(wǎng)最新的v4.3rc example中的i2s例子,編譯時報I2S0找不到的錯誤。
    發(fā)表于 02-21 07:59

    ESP-IDF使用命令行編譯官方例程helloworld報錯求解

    使用命令行編譯官方例程helloworld,報錯如下,求大神解惑。G:\Espressif\tools\xtensa-esp32s2-elf\esp-2021r2-patch5-8.4.0
    發(fā)表于 03-03 07:29

    基于網(wǎng)絡(luò)的切換系統(tǒng)綜述

    本文首先簡明扼要地回顧了網(wǎng)絡(luò)控制系統(tǒng)和切換系統(tǒng)的發(fā)展,將網(wǎng)絡(luò)控制與切換控制相結(jié)合,對其結(jié)構(gòu)和特征進行分析和研究,描述了網(wǎng)絡(luò)切換系統(tǒng)面臨的一些問題,總結(jié)了相應(yīng)的解決方法,并進一步展望了
    發(fā)表于 01-05 13:45 ?1次下載

    CubeMX版本編譯代碼的教程

    用的CubeMX版本是4.20.0如下圖,用的Keil5編譯代碼,編譯結(jié)果0 Error(s),0 Warning(s)。
    的頭像 發(fā)表于 10-10 10:32 ?4237次閱讀
    CubeMX<b class='flag-5'>版本</b><b class='flag-5'>編譯</b>代碼的教程