Reducir la piratería de las aplicaciones de iPhone

¿Cuáles son los métodos aceptados para reducir la piratería de aplicaciones de iPhone, que no violan el proceso de evaluación de Apple?

Si mi aplicación “llama a casa” para proporcionar el ID único del dispositivo en el que se ejecuta, ¿qué otra información necesitaría recostackr (por ejemplo, el ID de Apple utilizado para comprar la aplicación) para crear un token de registro válido que autoriza el uso de la aplicación? ? Del mismo modo, ¿qué código usaría para acceder a esos datos adicionales?

¿Cuáles parecen ser los mejores enfoques técnicos disponibles para este problema, en este momento?

(Por favor absténgase de responder preguntas que no sean de progtwigción sobre cómo la piratería es inevitable, etc. Sé que la piratería es inevitable. Me interesan las respuestas basadas en progtwigción que discuten cómo reducirla. Gracias de antemano por su comprensión).

ACTUALIZAR

Por favor visite y lea

Gracias a Chpwn en los comentarios.

¡Código que es demasiado viejo! – 11 de mayo de 2009

Por ahora, hay una manera más fácil de detectar si su aplicación de iPhone se ha descifrado para uso de piratería. Esto no implica que verifique los ID exclusivos de iPhone con una lista de ID aceptados.

Actualmente hay tres cosas que hacen las cookies:

  1. Edite el archivo Info.plist
  2. Decodifica Info.plist desde binario a UTF-8 o ASCII
  3. Agregue un par de claves a Info.plist {SignerIdentity, firma de la aplicación del sistema operativo de iPhone de Apple}

El último es más fácil de verificar 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 ninguna de las aplicaciones de la App Store que construimos, por lo que la comprobación de nada y luego realizar las instrucciones establecidas debería hacer que sea más difícil para los crackers y piratas.

No me puedo atribuir el mérito de esto, así que visite Cómo evitar las cookies de iPhone IPA. Hay mucha información sobre la piratería en iPhone y cómo frenarla.

Como señaló Andrey Tarantsov en los comentarios, buscar la cadena “SignerIdentity” en el binario (usando una aplicación como HexEdit) y reemplazarla es bastante fácil.

Podrías codificar esa cadena, pero nuevamente todo lo que tienes que hacer es cambiar un carácter y la aplicación ya no buscará la clave “SignerIdentity” sino para alguna otra clave que probablemente no existe (por lo tanto, es nula) ) Esa clave es nula, la aplicación cree que no está rota (ya que SignerIdentity debe ser nula si la aplicación no está rajada).

En cambio, prefiero verificar el tamaño de info.plist y compararlo con un valor de referencia. Noté que las comstackciones de Simulator y Devices no tienen el mismo tamaño de archivo info.plist. Lo mismo ocurre con las comstackciones de Depuración, Liberación y Distribución. Por lo tanto, asegúrese de establecer el valor de referencia utilizando el tamaño del archivo info.plist para la comstackción de distribución de dispositivos.

Cómo buscar el tamaño del archivo en el lanzamiento :

Parece que guardar la sum de comprobación MD5 de Plist y comprobar que CryptID debería funcionar bien hasta cierto punto.

Comprueba iTunesMetadata.plist para la fecha de Purchace, ya que a veces, cuando una aplicación se descifra, esa fecha se convierte en algo escandaloso.

También verifique si existe el campo de nombre del comprador. En mi experiencia con el crackeo de aplicaciones para uso personal, generalmente se elimina. Si alguien sabe cómo funciona la protección anti-volcado de Temple Run, podrías usar eso junto con una protección que poedCrackMod no puede obtener (google poedCrackMod crea la cuenta hackulo.us, ve al centro de desarrollo busca poedCrackMod, instálalo en iDevice) .

Embrague que no va a descifrar cosas con protección Temple Run, tiene una función llamada OverDrive destinada a silenciar la detección de grietas de una aplicación. poedCrackMod tiene LamestPatch, que no es tan bueno. También poedCrackMod es un script de bash de código abierto que puede ser de ingeniería inversa. Para recapitular, tienes una aplicación que tiene protección contra copia que no se puede eludir con embrague / sobremarcha pero que se puede romper con poedCrackMod. Sin embargo, poedCrackMod no puede eludir los controles de piratería de la aplicación en la aplicación. Es difícil parchear manualmente las verificaciones integradas en el ejecutable de la aplicación. Entonces, tu aplicación es difícil de descifrar.