Как узнать, был ли метод подключен (= сторонние методы, действующие как слой, используемые для взлома приложений) - PullRequest
2 голосов
/ 30 марта 2012

Существует несколько инструментов, которые могут декомпилировать файл APK dex и вставлять различные хуки.

Например, если вы хотите проверить имя пакета установщика, вам нужно вызвать функцию PackageManager.getInstallerName().

Теперь, насколько мне известно, они заменяют отражение на метод, а затем либо вызывают реальный метод, либо отправляют какой-то поддельный результат.

Это имеет огромное преимущество, так как не имеет значения, если выВызов метода изначально или с отражением.

В этом конкретном случае getInstallerName() всегда будет возвращать com.google.android.feedback.

Некоторый исходный код для такого хука можно найти здесь: http://androidcracking.blogspot.de/2011/03/original-smalihook-java-source.html

Есть ли способ обнаружить эти крючки?

1 Ответ

0 голосов
/ 31 марта 2012

Вы можете запустить сумму md5 против того, что вы знаете как оригинальный apk, и предположительно пиратской версии, и сравнить их. Это только гарантирует, что версия с подозрением на изменение была изменена , но не говорит вам, как именно.

Другая вещь, которую вы, вероятно, могли бы сделать, хотя я сам не пробовал, но выглядит многообещающе, это что-то вроде this , где вы теоретически сможете искать имена классов, такие как Smailhook и т. Д., И узнайте, существуют ли они. Эти идеи должны, по крайней мере, указать вам правильное направление для расследования, но они могут не охватывать все основания.

РЕДАКТИРОВАТЬ: Если вы хотите выполнить что-то подобное во время выполнения (я не знал, что вы захотите сделать это - думал, что вы имеете в виду конкретную копию приложения, которое вы подозревали, в автономном режиме ) вы можете попробовать что-то вроде Class.forName() метода. Нечто подобное или один из других методов загрузчика классов должен помочь в поиске классов в искомом файле .dex, и вы можете поймать NoClassDefFoundError знать, что все прошло хорошо. Если класс найден с именем, которое вы ищете, вы можете справиться с этим по своему усмотрению - завершить программу, нажать веб-сервис, в котором есть дБ мошеннических приложений и т. Д.

...