Как мне написать код, чтобы противостоять пиратству в один клик?
Приложение, над которым я работаю, автоматически взламывается antiLVL (хотя я не использую LVL в своем приложении).
Чтобы защитить свое приложение от "пиратства одним нажатием", я использую методы обнаружения взлома, описанные в Google IO.
Я пытался проверить подпись как с getPackageInfo()
и отражение (invoke()
), но AntiLVL смог взломать приложение автоматически в обоих случаях.
Как я могу написать код, который не будет автоматически взломан текущей версией antiLVL (1.4.0)? Я имею в виду, кроме использования JNI.
PS: я не говорю о предотвращении пиратства в целом. Я просто хочу, чтобы пират копался в коде вручную, а не использовал автоматический взломщик.
2 ответа
Проблема в том, что любой API, который служит только для проверки правильности вашего приложения, может быть подорван и заменен версией, которая всегда возвращает ожидаемый результат. Я не рассматривал Anti-LVL подробно, но я бы предположил, что он это делает, поэтому ваши попытки проверить ваш код с помощью встроенных API-интерфейсов Dalvik для этой цели терпят неудачу.
Чтобы заставить его работать, вам придется выполнять работу самостоятельно, используя только те API, которые имеют несколько целей и не могут быть так легко разрушены.
Один из способов сделать это - вычислить контрольную сумму вашего.apk-файла или только файла classes.dex внутри него и проверить его по некоторому внешнему ресурсу (онлайн-сервер со списком известных правильных версий, файл загружен на SD-карту первым выполнение и т. д. ресурс в файле.apk, который не включен в classes.dex). Это предотвращает модификацию кода, которая, как я считаю, работает как анти-LVL. Я сам не пробовал, но подозреваю, что это должно сработать.
Презентационные заметки от уклоняющихся пиратов и останавливающих вампиров
Некоторые основные ключевые моменты
- Изменить LVL
- Внедрить LVL Tamper Resistance
- Используйте обфускацию
- Добавить отражение
Обратите внимание, что #:r.page.X
в конце ссылки, которые я предоставил, не всегда приводят вас к этому конкретному номеру слайд-страницы по любой причине. Если это не так, примите к сведению и просмотрите вручную.