2011-09-05 12 views
5

Actualmente soy un novato en el desarrollo de Android .. Tengo que desarrollar una aplicación segura de Android para que pueda guardarlo de getteg pirateado.ofuscación del código de Android y aplicación segura de Android de la piratería

Para la seguridad de la aplicación que he utilizado RMS en J2ME.In J2ME que utilizo para hacer los pasos siguientes:

  1. generar un número de serie (algunos números aleatorios)
  2. , salvo el número en valor eficaz, en la próxima lanzamiento de la aplicación que aparezca el mismo número de serie en la pantalla y pregunta al usuario a la activación válida de entrada código a continuación, si el usuario introduce el código de activación correcto, entonces la aplicación activa y el indicador se establece en true y ahorro este valor indicador en otros rms
  3. si el valor del indicador es verdadero, entonces la pantalla de inicio se muestra al usuario en iniciando la aplicación otra vez se muestra la página de activación.

Quiero implementar este concepto en android .. Por favor, guíame cómo hacerlo. O dime si algún cuerpo conoce una mejor manera de hacerlo en Android.

En segundo lugar quiero ofuscar el archivo apk antes de liberar la aplicación ... después de abrir los ojos por 2 días descubrí que se puede hacer usando proguard. Pero no entiendo cómo ocultar el código. Por favor, guíanos y ayúdame a clasificando ambos problemas.

Gracias

Respuesta

4

no hay realmente una manera de proteger cualquier tipo de código del lado del cliente, si se trata de un Android * .apk, una aplicación Java * archivo .jar, o un poco de código JavaScript que se ejecuta en el navegador de tu usuario La mejor manera de protegerse de la piratería es hacer que la aplicación dependa de algún cálculo del lado del servidor que usted proporcione.

Dado que está utilizando RMS, parece que ya necesita un cálculo del lado del servidor. En lugar de molestar a los usuarios para que ingresen un código de activación, ¿por qué no asocian este código de activación con la dirección de correo electrónico del usuario cuando compran la aplicación y luego, por qué no usan OAuth con su cuenta de Google para verificar que el usuario tenga un dirección de correo electrónico que se sabe que compró la aplicación?

+0

pero para hacer esto necesitaré un servicio web para autenticar la instalación – Hisenberg

+0

@Shrey, sí, eso es correcto. –

+1

¿No hay una manera de desarrollar la seguridad de la aplicación sin usar el lado del servidor? – Hisenberg

0

El paralelo a RMS en Android es SharedPreferences. Sin embargo, el archivo sharedPreferences xml no está tan protegido como los archivos RMS en J2ME (al menos en algunos dispositivos). Cualquier persona con un dispositivo rooteado puede leer y escribir este archivo fácilmente ...

Por lo tanto, le sugiero que lea sobre las Licencias de aplicaciones de Android. Está lejos de ser perfecto, pero es una característica integrada que puede integrarse fácilmente. http://developer.android.com/guide/publishing/licensing.html

EDIT: ofuscación: ofuscar su proyecto todo lo que tiene que hacer es añadir a su archivo proguard.config=proguard.cfgdefault.properties.

La ofuscación se producirá de acuerdo con la configuración establecida en el archivo defurance proguard.cfg. Tenga en cuenta que su código solo se ofuscará cuando cree la APK final (Herramientas de Android -> Exportar ...) Y recomiendo probar la final APK después de la ofuscación, especialmente cuando bibliotecas 3 ª parte son parte del proceso de construcción

+0

¿Puede explicar cómo usar Shared preferencias? – Hisenberg

+0

http://developer.android.com/guide/topics/data/data-storage.html#pref – IncrediApp

+0

¿No podemos usar sqlite para trabajar como rms en android? – Hisenberg

3
  • Sobre RMS

Michael Aaron Safyan dijo todo, nada que añadir.

  • Sobre ProGuard

ProGuard está ahora integrado con el marco de Android, y requiere, básicamente, no hay trabajo que se creará. Solo tiene que habilitarlo as explained in this article y si es necesario personalizar su configuración. "Si es necesario", ya que la configuración predeterminada es adecuada para la mayoría de los proyectos. Solo debe tener cuidado con el uso si el proceso de ofuscación va a renombrar la reflexión como la mayoría de los paquetes, clases y métodos.

Cuestiones relacionadas