¿Qué tan segura es la información contenida en el código compilado de la aplicación iPhone?




soporte iphone (3)

Sé que esto ya ha sido respondido, pero también quiero dar mi propia sugerencia.

De nuevo, recuerde que todas las técnicas de ofuscación nunca son 100% seguras y, por lo tanto, no son las mejores, pero a menudo son "lo suficientemente buenas" (según lo que desee ocultar). Esto significa que un cracker determinado podrá leer sus cadenas de todos modos, pero estas técnicas pueden detener al "cracker ocasional".

Mi otra sugerencia es "encriptar" las cuerdas con un simple XOR. Esto es increíblemente rápido y no requiere ninguna autorización si vende la aplicación a través de App Store (no entra dentro de las categorías de algoritmos que requieren autorización para exportarlas).

Hay muchos fragmentos para hacer un XOR en Cocoa, ver por ejemplo: http://iphonedevsdk.com/forum/iphone-sdk-development/11352-doing-an-xor-on-a-string.html

La clave que usa puede ser cualquier cadena, ya sea una secuencia de caracteres / bytes sin sentido o algo significativo para confundir a los lectores (por ejemplo, use el nombre de los métodos, como "stringWithContentsOfFile: usedEncoding: error:").

Estaba discutiendo esto con algunos amigos y comenzamos a preguntarnos sobre esto. ¿Podría alguien obtener acceso a las URL u otros valores que están contenidos en el código objetivo-c real después de que compran su aplicación?

Nuestra sensación inicial era que no, pero me preguntaba si alguien de allí tenía un conocimiento definitivo de una forma u otra.

Sé que los archivos .plist están disponibles.

Los ejemplos podrían ser cosas como:

-Los valores de URL guardados en una cadena

-API clave y valores secretos


Sí, las cadenas y la información se pueden extraer fácilmente de las aplicaciones compiladas utilizando la herramienta de strings ( ver aquí ), y en realidad es incluso muy fácil extraer información de class-dump-x usando class-dump-x ( verifique aquí ).

Solo algo de reflexión.

Editar: una manera fácil, aunque insegura, de mantener oculta su información secreta es ofuscarla o cortarla en pedazos pequeños.

El siguiente código:

NSString *string = @"Hello, World!";

producirá "¡Hola, mundo!" usando la herramienta de strings . Escribiendo tu código así:

NSString *string = @"H";
string = [stringByAppendingString:@"el"];
string = [stringByAppendingString:@"lo"];
...

mostrará los caracteres escritos, pero no necesariamente en orden.

De nuevo: fácil de hacer, pero no muy seguro.


Cuando compra una aplicación, se guarda en su disco duro como "FooBar.ipa"; ese archivo está realmente en formato Zip. Puede descomprimirlo e inspeccionar el contenido, incluida la búsqueda de cadenas en el ejecutable. ¡Intentalo! Los valores constantes en su código no están comprimidos, encriptados ni codificados de ninguna manera.





decompiling