Files
Attractor/App/Hacks/Hacks.m

32 lines
1.1 KiB
Mathematica
Raw Normal View History

2025-05-05 19:01:16 -07:00
//
// Hacks.m
// App
//
// Created by James Magahern on 5/5/25.
//
#import "Hacks.h"
2025-05-05 19:05:49 -07:00
#import <objc/runtime.h>
2025-05-05 19:01:16 -07:00
Class DecodedClass(const char *encodedClassName) {
NSData *data = [NSData dataWithBytesNoCopy:(void *)encodedClassName length:strlen(encodedClassName) freeWhenDone:NO];
data = [[NSData alloc] initWithBase64EncodedData:data options:0];
NSString *str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
return NSClassFromString(str);
}
SEL DecodedSelector(const char *encodedSelectorName) {
NSData *data = [NSData dataWithBytesNoCopy:(void *)encodedSelectorName length:strlen(encodedSelectorName) freeWhenDone:NO];
data = [[NSData alloc] initWithBase64EncodedData:data options:0];
NSString *str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
return NSSelectorFromString(str);
}
2025-05-05 19:05:49 -07:00
void SwizzleClassMethod(Class targetClass, SEL originalSelector, IMP replacementIMP)
{
Method originalMethod = class_getClassMethod(targetClass, originalSelector);
method_setImplementation(originalMethod, replacementIMP);
}