Мне было интересно, есть ли способ перебить метод по адресу памяти. Например: У меня есть указатель на метод 0xFFFFFF. У меня есть метод в моем приложении. Я хочу заменить указатель на мой метод. Есть ли способ, которым я мог бы заменить этот указатель в Objective-C. Спасибо.
Вы говорите об инъекции.
Взгляните на mach_inject
также Starruntime
и Application Enhancer.
Вы ищете method_setImplementation(Method m, IMP imp)
method_setImplementation(Method m, IMP imp)
Вы должны сначала разрешить метод для вашего селектора, используя class_getInstanceMethod или class_getClasssMethod
class_getInstanceMethod
class_getClasssMethod
Вы можете использовать "executeSelector":
[object performSelector:@selector(doSomething)];
Селектор может быть сохранен в переменной.