2012-05-14 11 views
12

He decidido hacer esta pregunta aquí después de pasar mucho tiempo con Google. Pero no pude obtener la respuesta para mi pregunta todavía. Aquí sigue los detalles:¿Es posible editar y recompilar un Binario de iOS?

Tengo una aplicación y publicado en Cydia recientemente. Ha sido descifrado por otra persona y lo ha publicado en sitios de torrents. La parte interesante es que tengo un mecanismo de verificación de suma de verificación binario en el interior y pudieron hackear todo el material y crearon un nuevo archivo de suma de comprobación basado en los cambios que han realizado en el binario. Han editado dos funciones y lo descompilan y lo publican en torrents.

Así que he hecho algunas investigaciones con IDA Pro y vi que es posible ver la implementación real de funciones y clases. Pero para editar las funciones tienen que encontrar la dirección de esa función y editarla a través de HEX EDITOR. Esta parte es confusa para mí, ¿hay alguien que me ayude en esto? No quiero que sea "desechable" :) .. No es tan fácil, supongo. :) Pero realmente quiero saber cómo piratean? :)

Mi pregunta es cómo editar una función en un binario iOS y volver a compilarlo? Por ejemplo, tengo un método siguiente en una de mis clases.

- (id) getSomething { 

    return @"Something"; 
} 

Quiero editar el valor de retorno de esta función. ¿Es posible?

Respuesta

6

Por lo general, no "vuelve a compilarlo". Simplemente envíe el archivo a IDA, busque cadenas, llamadas a funciones o lo que sea que esté buscando y luego use un editor hexadecimal o similar para editar el archivo en el nivel de ensamblaje. En la mayoría de los casos, es suficiente simplemente cambiar un salto condicional en un salto incondicional o un nop (sin operación). Si quieres cambiar los valores de retorno, tienes que esforzarte un poco más, pero en mi experiencia, o bien editas la secuencia de caracteres dentro del archivo binario, si se especifica como un valor constante o inicial, o simplemente escribes un completamente nueva función y "copiar" el código de ensamblador de la misma en el archivo original. Solo tienes que asegurarte de que tu nueva función no ocupe más espacio que la original, o que todo se vuelva mucho más complejo. Espero que sea eso lo que pediste, de lo contrario solo dinos de qué aplicación estás hablando y podemos profundizar en ella :)

+1

Agradeciendo por pasar un tiempo en esta página para responder a mi pregunta ... :) Así que No puedo revelar su nombre porque estoy trabajando en una empresa y el producto está desarrollado para la empresa. Perdón por eso ... Tengo una pregunta más sobre cómo reemplazar el código de ensamblador ... Estaba usando la versión de prueba de IDA Pro, ¿entonces estás hablando de que la versión completa se puede usar para reemplazar el código? – IndoThaiGeek

+0

¿O está utilizando alguna otra aplicación? – IndoThaiGeek

+0

No conozco las diferencias entre la versión de prueba/completa, pero nunca usé la IDA para editar archivos binarios. En Windows, estoy usando Hiew. – jimpic

Cuestiones relacionadas