AntiLVL descifra automáticamente la aplicación en la que estoy trabajando (aunque no estoy usando LVL en mi aplicación).¿Cómo debo codificar para resistir la "piratería con un solo clic"?
Para proteger mi aplicación de "piratería con un solo clic", estoy implementando tampering detection techniques explained at Google IO.
He intentado verificar la firma tanto con getPackageInfo()
como con la reflexión (invoke()
), pero AntiLVL fue capaz de descifrar la aplicación automáticamente en ambos casos.
¿Cómo puedo escribir el código que no se descifrará automáticamente con la versión actual de antiLVL (1.4.0)? Quiero decir, aparte de usar JNI.
PD: No estoy hablando de prevenir la piratería en general. Solo quiero que el pirata profundice en el código a mano en lugar de utilizar un cracker automático.
Gracias por responder. AntiLVL es un hermoso software. Limpio, potente, bien pensado y personalizable. Es "fácil" eludirlo en el sentido de que "solo" necesita escribir un código que no sea capturado por las reglas grep-and-replace (provistas en un archivo xml separado). Sin embargo, simplemente no tengo tiempo suficiente para aprender cómo generar smali inusual. En mi código, AntiLVL fue capaz de desenganchar y castrar todos mis intentos de suma de comprobación. – tos
No sé lo suficiente como para entender la parte de "reemplazo" de las reglas (sería útil saber qué sucede detrás de las escenas). Pensé en tu punto acerca de las API de múltiples propósitos. Pensé en colocar un campo de minas en el software: el programa de descifrado eliminaría una parte importante del programa, lo que podría colapsarlo o inutilizarlo. Hasta ahora no encontré nada. – tos