Замена методов по адресу памяти - PullRequest
0 голосов
/ 13 сентября 2011

Мне было интересно, есть ли способ перебить метод по адресу памяти. Например: У меня есть указатель на метод 0xFFFFFF. У меня есть метод в моем приложении. Я хочу заменить указатель на мой метод. Есть ли способ, которым я мог бы заменить этот указатель в Objective-C. Спасибо.

Ответы [ 3 ]

0 голосов
/ 25 сентября 2011

Вы говорите об инъекции.

Взгляните на mach_inject

также Starruntime

и Application Enhancer.

0 голосов
/ 02 декабря 2013

Вы ищете method_setImplementation(Method m, IMP imp)

Вы должны сначала разрешить метод для вашего селектора, используя class_getInstanceMethod или class_getClasssMethod

0 голосов
/ 13 сентября 2011

Вы можете использовать "executeSelector":

[object performSelector:@selector(doSomething)];

Селектор может быть сохранен в переменной.

...