以下の内容はhttps://cysec148.hatenablog.com/entry/2025/08/29/154638より取得しました。


第51回:Fridaでランタイム操作|アプリの動作をその場で変更

Hello there, ('ω')ノ

🧪 Fridaとは?

Frida は「動いているアプリにフックして、内部処理を監視・変更できる」ダイナミック・インストゥルメンテーションツールです。

📌 一言でいうと、「アプリを改造せずに“中身をいじれる”ツール」です。

しかもアプリのソースコードや署名解除は不要。 Javaコードやネイティブコード(C/C++)の関数にその場で割り込んで値を書き換えたり、処理を止めたりできます。


🛠 Fridaを使う準備

✅ インストール(ホストPC側)

pip install frida-tools

✅ Android端末(Root推奨)にFridaサーバーを配置

adb push frida-server /data/local/tmp/
adb shell "chmod 755 /data/local/tmp/frida-server"
adb shell "/data/local/tmp/frida-server &"

※ Root化していない場合でも一部のアプリには使えますが、自由度は大きく下がります。


🔍 Fridaでできること

機能 内容
Javaメソッドのフック 任意のメソッドを監視・上書きできる
ネイティブ関数の監視 C/C++のライブラリ内関数にフック可能
引数・戻り値の書き換え メソッドの出力を偽装したり、条件分岐を変更できる
内部情報の取得 クラス名、メソッド一覧、フィールド値などを取得できる

🧪 実例:パスワードチェックをバイパスする

想定アプリ:

public boolean checkPassword(String input) {
    return input.equals("Secret123");
}

このようなチェックがある場合でも、Fridaで以下のようにフックできます:

📝 スクリプト例(Javaメソッド書き換え)

Java.perform(function () {
    var TargetClass = Java.use("com.example.app.AuthManager");

    TargetClass.checkPassword.implementation = function (input) {
        console.log("checkPassword() called with: " + input);
        return true;  // 常に認証成功に書き換え
    };
});

▶️ 実行

frida -U -n com.example.app -l bypass.js

→ この状態でアプリを操作すると、どんな文字列を入れても認証が通る状態になります!


📦 他にもこんな活用例

✔️ API通信内容のログ出力

Java.perform(function () {
    var OkHttp = Java.use("okhttp3.Request");
    OkHttp.toString.implementation = function () {
        var result = this.toString();
        console.log("HTTP Request: " + result);
        return result;
    };
});

✔️ 暗号化関数の戻り値を偽装

var AESClass = Java.use("com.example.crypto.AESUtil");

AESClass.encrypt.implementation = function (plainText) {
    console.log("Encrypt called with: " + plainText);
    return "fixedEncryptedValue";  // 結果を上書き
};

🧠 Fridaの強みと注意点

🌟 強み

  • アプリを再ビルドしなくても動作をいじれる
  • 一度に複数の関数やネイティブコードにも対応
  • Javaとネイティブをまたがった攻撃が可能

⚠️ 注意点

  • 不正利用(ゲーム改ざんやライセンス回避)は絶対NG!
  • 業務アプリやテスト目的でのみ使用しましょう
  • Root端末の利用は診断端末に限るべきです

✅ まとめ

  • Fridaは「動作中のアプリにリアルタイムで割り込む」強力な診断ツール
  • Javaの関数フック、戻り値変更、APIログ取得など多彩な操作が可能
  • パスワードチェックや暗号化処理、SSLピンニング回避などでも活躍
  • ソースコード不要で動作を書き換えられるため、脆弱性の再現や影響調査に最適

Best regards, (^^ゞ




以上の内容はhttps://cysec148.hatenablog.com/entry/2025/08/29/154638より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14