Frida Android: подключайте StringBuilder и печатайте данные только из указанного класса c - PullRequest
0 голосов
/ 05 февраля 2020

Я подключил метод класса StringBuilder к toString, используя этот код

Java.perform(function() {
  const StringBuilder = Java.use('java.lang.StringBuilder');
  StringBuilder.toString.implementation = function() {

    var res = this.toString();
    var tmp = "";
    if (res !== null) {
      tmp = res.toString().replace("/n", "");
      console.log(tmp);
    }

    return res;
  };

});

Этот код печатает тонну несущественных данных. Я просто хочу напечатать данные из определенного c класса / метода. Как это можно сделать? Спасибо

1 Ответ

3 голосов
/ 07 февраля 2020

Я не проверял код, но должно работать следующее:

Также подключите метод Speci c, который использует интересующий вас StringBuilder.toString (), и установите переменную, которая включает ваш код перехвата StringBuilder. только когда вы находитесь в этом методе:

var sbActivate = false;

Java.perform(function() {
  const StringBuilder = Java.use('java.lang.StringBuilder');
  StringBuilder.toString.implementation = function() {

    var res = this.toString();
    if (sbActivate) {
        var tmp = "";
        if (res !== null) {
          tmp = res.toString().replace("/n", "");
          console.log(tmp);
        }
    }
    return res;
  };

});

Java.perform(function() {
  const someclass = Java.use('<the specific class you are interested in>');
  someclass.someMethod.implementation = function() {

    sbActivate = true;
    var res = this.someMethod();
    sbActivate = false;

    return res;
  };

});
...