Как избежать ошибок Eclipse при декомпиляции Android APK

Я работаю над обратным проектированием/декомпиляцией файла APK - я смог использовать:

http://www.decompileandroid.com/

Я уверен, что инструмент APK - лучший вариант (хотя я хотел бы услышать причины, почему), но в этом случае он сработал - вроде как.

Моя проблема - и корень моего вопроса / сообщения: я получил более 4000 ошибок затмения при импорте источника (к счастью, они кажутся всего лишь небольшой горсткой похожих / связанных ошибок, повторяющихся много раз).

При этом - есть ли лучший способ сделать это, чтобы избежать этих ошибок? (показано ниже)

Ошибки затмения:

https://docs.google.com/document/d/1gwbZuJ8duQ37JRGeTdqIrv0o_DBNL_xWRxrG9Xxxwy4/edit?usp=sharing


person ClawWorm    schedule 02.01.2014    source источник
comment
На этот вопрос уже много раз давался ответ. Короткий ответ: нет. Кажется, что только очень маленькие простые проекты декомпилируются без ошибок, и даже для этого требуется немного удачи.   -  person Stephan Branczyk    schedule 02.01.2014
comment
Как лучше всего начать их решать?   -  person ClawWorm    schedule 07.01.2014
comment
Лучшей практикой было бы нацелиться на небольшое приложение, которое действительно старое и предшествует стандартной практике запутывания кода (но даже это не дает вам никаких гарантий, что оно будет работать). В лучшем случае реверс-инжиниринг приложения может рассказать вам, как организованы активы, как вложен конкретный макет, где хранится ключ шифрования/пароль или с какими предпочтениями можно возиться в рутированном телефоне, если вы хотите получить более высокую производительность. оценка в игре. Прямо сейчас эти инструменты реверс-инжиниринга недостаточно хороши, чтобы делать что-то большее. Так что лучше просто следить за ними.   -  person Stephan Branczyk    schedule 13.01.2014


Ответы (1)


Я не знаю ни одного декомпилятора Java, который надежно производил бы вывод, который можно было бы "обойти" (декомпилировать, а затем перекомпилировать). Некоторые из них находятся в активной разработке, включая мой собственный, для которых вы можете отправлять отчеты об ошибках. В случае с Procyon вывод типов со временем становится все более неправильным, особенно когда речь идет о дженериках. Кроме того, существует множество других проблем, которые в первую очередь касаются классов, преобразованных из формата Android.

JAR-файлы, созданные с помощью таких инструментов, как dex2jar, как правило, намного сложнее обрабатывать, потому что они создают сложные таблицы обработчиков исключений, блоки со странным порядком, совместное использование слотов локальных переменных и т. д. Я бы рекомендовал попробовать несколько различных комбинаций инструментов: простые декомпиляторы Android, а также различные переписчики dex-to-jar в сочетании с различными декомпиляторами Java. Вы можете обнаружить, что одна комбинация инструментов постоянно дает лучшие результаты, чем другие.

Тем не менее, я повторю свой обычный совет: никогда не доверяйте выходным данным декомпилятора. Не думайте, что это правильно, даже если компилируется чисто.

person Mike Strobel    schedule 08.01.2014