banner
Silas

REAO

Be a better man
github

手動でHluda Frida Serverをコンパイルする

雪を見ながら同期: https://bbs.pediy.com/thread-269889.htm
本文は ubuntu 21.04 操作に基づいています

frida はデフォルトブランチを master から main に切り替えました。コンパイル時に以下のエラーが発生する場合:

make[1]: *** No rule to make target '.git/refs/heads/master', needed by 'build/frida-version.h'.  Stop.

このコミットを参照してください:https://github.com/frida/frida/commit/e4c6a1e646666284ea77c36d61f20558504847b5


1. コンパイル環境の構築#

1.1 依存関係のインストール#

sudo apt update
sudo apt-get install build-essential tree ninja-build gcc-multilib g++-multilib lib32stdc++-9-dev flex bison xz-utils ruby ruby-dev python3-requests python3-setuptools python3-dev python3-pip libc6-dev libc6-dev-i386 -y

sudo gem install fpm -v 1.11.0 --no-document
python3 -m pip install lief

1.2 ndk のセットアップ#

ndk のバージョンは、コンパイルしたいバージョンに関連しています。必要な NDK バージョンは/releng/setup-env.shに記載されています。

image

ここでは最新の frida ndk 依存 22 を使用します。

ndk のダウンロードリンク:https://developer.android.com/ndk/downloads?hl=zh-cn

wget https://dl.google.com/android/repository/android-ndk-r22b-linux-x86_64.zip
unzip android-ndk-r22b-linux-x86_64.zip
sudo mv android-ndk-r22b /opt/

# 環境変数を追加
export ANDROID_NDK_ROOT='/opt/android-ndk-r22b'

1.3 nodejs のセットアップ#

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# node 10をインストール
nvm install 10

2. frida のコンパイル#

2.1 最新版#

現在の最新バージョンは:15.1.5

git clone --recurse-submodules https://github.com/frida/frida

hluda パッチを適用します。

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

cd frida/frida-core/

git am ../../Patchs/strongR-frida/frida-core/*.patch

# fridaのルートディレクトリに戻る
cd ..

コンパイル:

コンパイル時に自動的に対応する toolchain と sdk がダウンロードされます。

make core-android-arm
make core-android-arm64
make core-android-x86
make core-android-x86_64

コンパイルが完了すると、build/frida-android-arm/binに移動すると、次のようになります:

image

2.2 古いバージョン#

Patchsのコミットメッセージや時間を見れば、コミットに対応するパッチやバージョンがわかります:

image

14.2.12 のコンパイル方法を見てみましょう。

git clone --recurse-submodules https://github.com/frida/frida.git
cd frida 
git checkout 14.2.12

ここでの落とし穴は、checkout 時に frida リポジトリだけが 14.2.12 に戻り、その中のサブモジュールは最新のままです。すべてのサブモジュールも 14.2.12 のバージョンにする必要があります:

git submodule update --recursive

必要な ndk バージョンを確認すると、やはり 22 です:
!
image

Patchs を 14.2.12 にチェックアウト:

image

git checkout 8e1308b

hluda パッチを適用します:

cd frida/frida-core
git am ../../Patchs/strongR-frida/frida-core/*.patch

エラーが出なければ大丈夫です。

次に、以前のコンパイル手順と同じです。

cd frida
 
make core-android-arm
make core-android-arm64
make core-android-x86
make core-android-x86_64

image


Git 履歴 - https://githistory.xyz/ は特定の状況で確かに役立ちます:

image


参考:

  1. hluwa - actions build.xml
読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。