@VZVZ
Reverse-Engineer, Software Developer, Architect

На каком форуме задавать вопросы касательно: Android, JNI, NativeActivity, отладка JNI lib без исходников, их реверс-инжиниринг, — почти что хакинг?

А может, даже и дизассемблирование ELF ARM/x86 сборок...

===
Проблема моя с точки зрения реверсера, а не простого разраба - сравнительно нубская и несложная. Чай, не Пентагон взламываю.

Есть Приложение Android.
У него есть JNI-библиотека вида lib.so. NativeActivity.
Основной функционал - в ней, но Behavior (десяток классов с полтинником методов в каждом) написан на Java.
Обфускации нет.

И вот моя задача - создать для этой библиотеки свое приложение типа Лаунчер, добавив доп. функционал.
Декомпиляция всего целиком - дело тяжелое и долгое, де-smali-ция - тем более.
Поэтому просто беру библиотеку и начинаю воссоздавать Behaviour, методом тыка определяя реально нужные методы, заделывая заглушками (stub) и т.д. и т.п.

Сначала всё шло хорошо. В LogCat подробный StackTrace каждого исключения. Декомпилировал, брал нужный метод, копипастил - и шел дальше.
Но потом я дошел до тех мест в библиотеке, где методы Behavior вызываются как-то иначе!
Я не знаю в чем там дело, я не умею дизассемблировать библиотеки такие.
Но в LogCat появлялось лишь "Exception блаблабла NoSuchMethodError", без Stacktrace.
...Не прошло и недели, как я решил проблему, просто догадавшись нажать Debug в Eclipse, в то время, как раньше всю жизнь жал Run.
Исправил я эти экскепшны.

Но теперь другая проблема:
в LogCat выскакивает ошибка "JNI ERROR",
никакого StackTrace нигде нет,
что интересно, в отладчике опять есть упоминание "exception NoSuchMethodError", но ни стектрейсов, ни чего. Всё обшарил - ну нет и всё. Везде написано: мол код нативный, поэтому отлаживать его невозможно...

====

...И к сожалению, ни здесь, на Тостере, ни на StackOverflow (включая англ.) я не нашел помощи, как ни искал, сколько вопросов ни задавал, сколько тэгов ни пробовал.
На StackOverflow даже по первой проблеме сказали, будто решить ее невозможно. Но решение-то нашлось.
Думаю, со второй тоже всё просто - но надо обладать особой магией.

Итак, где мне таких магов найти?
Может быть, в Группах Google? Все-таки официальный форум по Android...
Или на XDA (форум, в названии которого есть и слово "Hacking")?
Или вообще стоит ориентироваться не на "андроидность" форума, а на что-то иное?
  • Вопрос задан
  • 648 просмотров
Пригласить эксперта
Ответы на вопрос 1
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
есть JNI-библиотека вида lib.so. NativeActivity.
...
я не умею дизассемблировать библиотеки такие.

Берёшь objdump из тулчейна которым собрана либа и выполняешь objdump -xd lib.so.NativeActivity.
Задавай уточняющие вопросы: непонятно, с чем именно у тебя сложности.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы