En su conjunto de Enlaces de la Secmana desde SecurityByDefault nos referenciaban un pequeño CrackMe para OS X llamado OSX Swizzler en el que se hace uso de SIMBL y de EasySIMBL para conseguir hookear una función de la aplicación - escrita en Objective-C y poder saltarse así la protección de la misma.
Figura 1: EasySIMBL creando un bundle |
La idea de usar SIMBL o la versión más moderna EasySIMBL que funciona en OS X 10.7 Lion y en OS X 10.8 Mountain Lion para crear un bundle con las dos aplicaciones. Para ello se debe crear un método especial llamado Load en el que se indica cuál es el método que se quiere hookear, para conseguir reprogramar el comportamiento de un determinado método o función dentro del paquete original.
Figura 2: Método Load para modificar el método isValidSerial |
El resultado final es que se cambia el comportamiento de la app y se consigue el objetivo buscado, de resolver el CrackMe. El uso de SIMBL o EasySIMBL permite no sólo crackear apps en Objetive-C, sino cargar plugins, o funciones extras en apps sin necesidad de que haya una interfaz especialmente definida para ello.
Figura 3: CrackMe OSX Swizzler resuelto |
Estas técnicas también se pueden utilizar con apps desarrolladas para iOS, aunque lógicamente la ejecución de bundle se podría realizar en sistemas en los que la validación de code-signing haya sido desactivada.
No hay comentarios:
Publicar un comentario