0

私はフリーダを勉強しています。

例として、StringBuilder を使用して単純に文字列を作成し、それを追加しました。

「frida」を使用して「append」をフックしました。

しかし、うまくいきません。

    String val;
    val = "Log Data....";
    StringBuilder log = new StringBuilder("LOG : ").append(val);
    log.append("[[");
    log.append("]]");
Java.perform(function () {

    var StringBuilder = Java.use('java.lang.StringBuilder');
    var ctor = StringBuilder.$init.overload('java.lang.String');

    ctor.implementation = function (arg) {
        var log_arg = '';
        var result = ctor.call(this, arg);
        if (arg !== null) {
            log_arg = arg.toString();
        }

        console.log('new StringBuilder("' + log_arg + '");');
        return result;
    };

    var append = StringBuilder.append.overload('java.lang.String');


    append.implementation = function (arg) {
        var result = append.call(this, arg);
        var log_arg = '';
        if (result !== null) {
            log_arg = result.toString();
        }
        console.log('StringBuilder.append1(); => ' + log_arg);
        return result;
    };
});

結果: new StringBuilder("LOG : ");

" Log Data....[[]] " - メッセージが表示されません....おそらくフックしていません。

4

1 に答える 1