
renef_server(Android向け動的計装)を自動パッケージ化するMagisk module
Magisk / KernelSU / APatch モジュールで、renef(Android向け動的インストルメンテーションツールキット)を自動的にパッケージ化して実行します。
magisk-frida に着想を得ています。
MagiskRenef-{version}.zip をダウンロード再起動後、renef_server は抽象ソケット @com.android.internal.os.RuntimeInit 上の UDS(Unixドメインソケット)を使用して自動的に起動します。
ホストマシンから renef クライアントを使用して接続します:
# 新しいプロセスを起動
renef -s com.example.app -l your-script.lua
# 実行中のプロセスにアタッチ(先にアプリを開いてください)
adb shell su 0 sh -c "pidof com.example.app" # PIDを取得
renef -a <PID> -l your-script.lua
再起動後、ルートマネージャのモジュールリストを確認してください:
renef_server is running (UDS) — 正常renef_server failed to start — トラブルシューティングを参照サーバーログを確認:
adb shell su 0 cat /data/local/tmp/renef_server.log
Failed to find libc base考えられる原因:
SELinux enforcing — カスタムROM / Samsungデバイスで最も一般的な原因:
adb shell su -c setenforce 0
その後再試行。動作すれば、SELinuxがrenefのプロセスインジェクションをブロックしていることが原因です。
デバイスがルート化されていない — renef_serverはroot(uid 0)として実行する必要があります
アーキテクチャが間違っている — ARM64のみサポート
一部のアプリでは、すべてのアクティビティに android:exported="false" が設定されています。-s(起動)フラグは monkey を使用するため、これらのアプリを起動できません。代わりに -a(アタッチ)を使用してください:
# 1. デバイスで手動でアプリを開く
# 2. PIDを取得
adb shell su 0 sh -c "pidof com.example.app"
# 3. アタッチ
renef -a <PID> -l your-script.lua
GitHub Actionsワークフローが毎日実行されます。新しいrenefリリースが検出されると、次の処理を行います:
renef-v{VERSION}-android-arm64.tar.gz をダウンロードrenef_server と libagent.so を抽出# uvのインストール (https://docs.astral.sh/uv/)
uv run python3 main.py
# 強制的に再ビルド
FORCE_RELEASE=1 uv run python3 main.py