Как отобразить содержимое объекта Java в Javascript? - PullRequest
0 голосов
/ 22 сентября 2019

Короче говоря, я занимаюсь реверс-инжинирингом приложения для Android.Я пытаюсь интерпретировать значение java-объекта, который передается в интересующую меня функцию. Я динамически перехватил функцию и просто пытаюсь распечатать содержимое java-объекта.Я могу получить java-объект, хранящийся в переменной, в моей программе перехвата javascript, но я не нашел хорошего способа отображения содержимого объекта на консоли.

Я нашел некоторый код JavaScript, который идентифицирует тип аргумента как таковой:

function hookOverloads(className, func) {
    var clazz = Java.use(className);
    var overloads = clazz[func].overloads;
    for (var i in overloads) {
        if (overloads[i].hasOwnProperty('argumentTypes')) {
            var parameters = [];

            var curArgumentTypes = overloads[i].argumentTypes, args = [], argLog = '[';
            for (var j in curArgumentTypes) {
                var cName = curArgumentTypes[j].className;
                parameters.push(cName);
                argLog += "'(" + cName + ") ' + v" + j + ",";
                args.push('v' + j);
            }
            argLog += ']';

            var script = "var ret = this." + func + '(' + args.join(',') + ") || '';\n"
                + "console.log(JSON.stringify(" + argLog + "));\n"
                + "return ret;"

            args.push(script);
            clazz[func].overload.apply(this, parameters).implementation = Function.apply(null, args);
        }
    }
}

["(java.lang.Runnable) [object Object]"]

IЯ попробовал JSON.stringify, и я получил огромный массив чисел от -123 до 123. Я распечатал это в ASCII, UTF8, Unicode и различных других вероятных форматах, и хотя я вижу некоторые строки, очевидно, что данные хранятся в разных форматах.внутри объекта.Обратите внимание, что эти данные записываются в файл с расширением .mdb, но говорят, что они повреждены, когда я открываю файл с доступом Microsoft.

Небольшой снимок вывода ASCII:

GroupMsgsBean-V-7-- -UgP-lO-9dlastNotHiidenMsgId-7--    ->-ew--]    lastMsgId-4-8--

Кто-нибудь знает простой способ получения читаемого формата java-объекта и всех его атрибутов?

...