Pregunta

Lo que se aceptan los métodos para reducir la piratería de aplicaciones para iPhone, que no violen proceso de evaluación de Apple?

Si mi solicitud "llama a casa" para proporcionar el ID de dispositivo único en el que se ejecuta, qué otra información necesitaría para recoger (por ejemplo, el ID de Apple utiliza para comprar la aplicación) para crear una ficha de registro válido que autoriza el uso ¿de la aplicación? Del mismo modo, lo que el código podría usar para acceder a esos datos extra?

Lo que parecen ser los mejores enfoques técnicos disponibles para este problema, en el momento actual?

(Por favor absténgase de respuestas no de programación acerca de cómo la piratería es inevitable, etc. Sé que la piratería es inevitable. Estoy interesado en respuestas basadas en programación que discutir cómo reducirla. Gracias de antemano por su comprensión.)

¿Fue útil?

Solución

ACTUALIZACIÓN

Por favor, visitar y leer

Gracias a Chpwn en los comentarios.

Código eso es demasiado viejo! - 11 de mayo de 2009

Por ahora no hay una manera más fácil de detectar si su aplicación para iPhone se ha agrietado para uso piratería. Esto no implica que compruebe los ID únicos iPhone contra una lista de ID aceptadas.

En la actualidad hay tres cosas galletas hacer:

  1. Editar el archivo Info.plist
  2. decodificar la Info.plist de binario a UTF-8 o ASCII
  3. Añadir un par de claves a Info.plist {SignerIdentity, iPhone OS de Apple de aplicaciones de firma}

El último es más fácil de comprobar con este código:

NSBundle *bundle = [NSBundle mainBundle]; 
NSDictionary *info = [bundle infoDictionary]; 
if ([info objectForKey: @"SignerIdentity"] != nil) 
{ /* do something */  }

En general no tenemos SignerIdentity en cualquiera de las aplicaciones de la App Store que construimos lo que la comprobación de cero a continuación, realizar instrucciones del equipo debe hacer que sea más difícil para las galletas y los piratas.

No puedo tomar crédito por esto por lo que visite Cómo frustrar iPhone IPA Galletas. hay un montón de información que hay sobre la piratería en el iPhone y la forma de frenarla.

Otros consejos

Como se ha señalado por Andrey Tarantsov en los comentarios, en busca de la "SignerIdentity" cadena en el binario (usando una aplicación como HexEdit) y su sustitución es bastante fácil.

Se puede codificar esa cadena, pero de nuevo todo lo que tiene que hacer es cambiar un carbón de leña de la misma y la aplicación no va a buscar la tecla "SignerIdentity" ya pero por alguna otra clave que probablemente no existe ( por lo tanto, es null). Esa llave ser nula, la aplicación piensa que no está agrietada (ya SignerIdentity debe ser nulo si la aplicación no está agrietada).

En su lugar, prefiero comprobar el tamaño de la info.plist y compararlo con un valor de referencia. Noté Simulator y dispositivos construye no tienen el mismo tamaño de archivo info.plist. Lo mismo va para depuración, liberación y distribución construcciones. Por lo tanto, asegúrese de que establece el valor de referencia utilizando el tamaño del archivo info.plist para la distribución de dispositivos Generar.

¿Cómo buscar el tamaño del archivo href="https://stackoverflow.com/questions/903157/get-filesize-of-info-plist-to-prevent-piracy"> :

Parece que el ahorro de suma de control MD5 de Plist y comprobando Cryptid debe hacer bien hasta algún tiempo.

Comprobar iTunesMetadata.plist de la fecha de Purchace ya que a veces, cuando se quebró una aplicación, esa fecha se cambia a algo extravagante.

También puedes ver para ver si existe el campo de nombre purchacer. En mi experiencia con el agrietamiento aplicaciones de uso personal, que generalmente se eliminan. Si alguien sabe cómo la protección contra el vuelco de Temple Run trabaja, usted podría utilizar que en conjunción con algún tipo de protección que poedCrackMod no puede llegar (Google poedCrackMod crear hackulo.us cuenta, vaya a dev aspecto central para poedCrackMod, instalarlo en iDevice) .

Embrague, que no se agrieta con cosas como Temple Run protección, tiene una característica llamada OverDrive dirigidos a silenciar detección de grietas de una aplicación. poedCrackMod tiene LamestPatch, que no es tan bueno. También poedCrackMod es una escritura del golpe de código abierto que puede ser ingeniería inversa. En resumen, usted tiene una aplicación que cuenta con protección de copia que no pueden ser eludidas con embrague / sobremarcha pero puede ser quebrada por la poedCrackMod. Sin embargo poedCrackMod no puede eludir los controles de la aplicación en aplicación de piratería. Es difícil revisar manualmente los controles en integrety ejecutable de la aplicación. Por lo que su aplicación es difícil de romper.

scroll top