Что такое методы и -wrap0() для декомпиляции APK?

При декомпиляции APK с использованием dex2jar, а затем JD-GUI я обнаружил несколько вызовов неизвестных (и неопределенных) статических методов с именем -get0(), -get1(), -set0() или даже -wrap0(), Все эти вызовы имеют один параметр, ClassName.this для регулярных занятий или this.this$0 для внутренних классов, ссылающихся на их "контейнерный" класс. Я вижу их и при взгляде на код smali, поэтому они действительно используются во время выполнения.

Нумерация тоже странная, с двумя разными getX() с тем же X возвращая значение другого типа.

Совершенно очевидно, что они используются как методы получения и установки для атрибутов класса, причем параметр является экземпляром, из которого атрибут должен быть получен. Это должно быть какое-то запутывание или оптимизация, я не знаю. Я могу видеть, к какому атрибуту обращаются, просто посчитав их.

Например, boolean b = Baz.-get0(this); получает первый нестатический логический атрибут класса Baz, Foo.-set5(fooInstance, -8); эквивалентно fooInstance.sixthIntegerAttribute = -8;

Но что такое -wrap0() метод, используемый для (это логический видимо)? У этого нет никаких параметров, поэтому он не принимает никаких экземпляров. В коде это в run() внутреннего запуска и просто выглядит так: if (!ContainerClass.-wrap0()) { return; },

0 ответов

Другие вопросы по тегам