Цель C Метод Swizzling с использованием динамической библиотеки

Я пытаюсь научиться меткому методу. Я создал программу с целью C, которая просто вызывает метод в своем классе. Теперь я пытаюсь загрузить динамическую библиотеку, используя DYLD_INSERT_LIBRARIES, чтобы я мог переопределить реализацию моего метода новым методом, который определен в моей динамической библиотеке. Цель состоит в том, чтобы изменить аргумент и затем вызвать исходный вызов функции.

Код программы доступен по адресуhttp://pastebin.com/a0b3qkgB Код для динамической библиотеки доступен по адресуhttp://pastebin.com/Ndf6VdUt

Что я заметил, как только строка «if (self == [Encryption class]) {» будет выполнена в динамической библиотеке, код отобразит имя класса, а затем выплюнет странное сообщение. Полный вывод:

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

Я не уверен, что не так с кодом. Любая помощь будет оценена.

Цель состоит в том, чтобы переопределить целевые методы C, используя динамическую библиотеку (внедрение кода).

Ответы на вопрос(1)

Ваш ответ на вопрос