1. Evitar ObjC en código seguro.
Como el sistema de clases de ObjC depende en gran medida del reflejo del tiempo de ejecución, toda la interfaz debe incluirse junto con el ejecutable. Esto permite que herramientas como class-dump
recuperen fácilmente la interfaz de origen del binario.
Por lo tanto, las funciones de código de seguridad deben escribirse como una función C, no como un método ObjC.
2. Utilice strip
.
De forma predeterminada, el compilador conservará todos los símbolos privados (lo que permite que la traza de la pila sea más legible). Puede usar strip
para eliminar todos estos símbolos.
3. Ofuscación.
Los pasos anteriores solo pueden ocultar la lógica del código. Pero si la contraseña es una cadena constante, es inmediatamente visible usando la utilidad strings
. Puede ofuscar esto al construir la contraseña en tiempo de ejecución (por ejemplo, almacenar la contraseña codificada en ROT-13 en el archivo).
4. O simplemente cambie su diseño.
No importa qué tan bueno sea su sistema de protección, ya que el hacker tiene control total sobre su máquina, dado el tiempo suficiente, siempre ganan. Es mejor revisar su diseño, por ejemplo, ¿por qué la contraseña debe venir con el ejecutable? ¿O por qué se necesita una contraseña global?
¿Qué es esta cosa OTX que mencionaste y cómo usarla? –