diff --git a/basebinaries/amfid_payload/amfid_payload.m b/basebinaries/amfid_payload/amfid_payload.m index 58ca167..e57abcc 100644 --- a/basebinaries/amfid_payload/amfid_payload.m +++ b/basebinaries/amfid_payload/amfid_payload.m @@ -5,6 +5,7 @@ #include #include #include +#include #import #include @@ -105,6 +106,7 @@ uint32_t swap_uint32(uint32_t val) { } int (*old_MISValidateSignatureAndCopyInfo)(NSString* file, NSDictionary* options, NSMutableDictionary** info); +int (*old_MISValidateSignatureAndCopyInfo_broken)(NSString* file, NSDictionary* options, NSMutableDictionary** info); int fake_MISValidateSignatureAndCopyInfo(NSString* file, NSDictionary* options, NSMutableDictionary** info) { // NSString *file = (__bridge NSString *)fileStr; @@ -137,8 +139,10 @@ int fake_MISValidateSignatureAndCopyInfo(NSString* file, NSDictionary* options, } void rebind_mis(void) { + void *libmis = dlopen("/usr/lib/libmis.dylib",RTLD_NOW); //Force binding now + old_MISValidateSignatureAndCopyInfo = dlsym(libmis, "MISValidateSignatureAndCopyInfo"); struct rebinding rebindings[] = { - {"MISValidateSignatureAndCopyInfo", (void *)fake_MISValidateSignatureAndCopyInfo, (void **)&old_MISValidateSignatureAndCopyInfo}, + {"MISValidateSignatureAndCopyInfo", (void *)fake_MISValidateSignatureAndCopyInfo, (void **)&old_MISValidateSignatureAndCopyInfo_broken}, }; rebind_symbols(rebindings, 1);