macho/research/custom_loader/a.mm

42 lines
647 B
Plaintext
Raw Normal View History

2023-06-07 10:49:59 +07:00
#import <Foundation/Foundation.h>
#include <stdio.h>
2023-06-07 10:49:59 +07:00
@interface Foo : NSObject
@end
@implementation Foo
- (void)bar {
NSLog(@"%@", self);
}
@end
@interface Bar : NSObject
@end
@implementation Bar
+ (void)load {
NSLog(@"%@", self);
printf("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n");
}
@end
// @implementation Baz : Bar
// @end
__attribute__((constructor)) static void
hmmge() {
// create a dummy blank function to be replaced to call OBJC load
printf("hmmge\n");
}
2023-06-07 10:49:59 +07:00
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSLog(@"Hello, World!");
Foo *foo = [[Foo alloc] init];
[foo bar];
}
return 0;
2023-06-07 10:49:59 +07:00
}