Objetivo C Método Swizzling usando la biblioteca dinámica

Estoy tratando de aprender el método swizzling. He creado un programa en el objetivo C que simplemente llama a un método dentro de su clase. Ahora estoy intentando cargar una biblioteca dinámica usando DYLD_INSERT_LIBRARIES para poder anular la implementación de mi método con un nuevo método que se define en mi biblioteca dinámica. El objetivo es modificar el argumento y luego llamar a la llamada a la función original.

El código del programa está disponible enhttp: //pastebin.com/a0b3qkg El código para la biblioteca dinámica está disponible enhttp: //pastebin.com/Ndf6VdU

Lo que he observado que tan pronto como la línea "if (self == [Clase de cifrado]) {" se ejecuta en la biblioteca dinámica, el código muestra el nombre de la clase y luego escupe un mensaje extraño. Salida completa:

Test-IPhone:~ root# DYLD_INSERT_LIBRARIES="./evil7.dylib" ./new
objc[324]: Class Encryption is implemented in both /private/var/root/evil7.dylib and /private/var/root/./new. One of the two will be used. Which one is undefined.
Inside load function
objc[324]: Encryption: 
Trace/BPT trap

No estoy seguro de qué hay de malo en el código. Cualquier ayuda sería apreciada

l objetivo es anular los métodos del objetivo C utilizando la biblioteca dinámica (inyección de código).

Respuestas a la pregunta(2)

Su respuesta a la pregunta