|
@@ -0,0 +1,117 @@
|
|
|
+
|
|
|
+
|
|
|
+#import <Foundation/Foundation.h>
|
|
|
+#include <mach-o/dyld.h>
|
|
|
+#import <objc/runtime.h>
|
|
|
+
|
|
|
+%class LSContext
|
|
|
+%class FSNode
|
|
|
+
|
|
|
+
|
|
|
+id (*original_func2)();
|
|
|
+id (*original_func3)();
|
|
|
+/*
|
|
|
+
|
|
|
+Build = Build;
|
|
|
+FullVersionString = "Version 10.2.2 (Build 14W756)";
|
|
|
+MarketingVersion = "10.2.2";
|
|
|
+ProductBuildVersion = 14W756;
|
|
|
+ProductCopyright = "1983-2017 Apple Inc.";
|
|
|
+ProductName = "Apple TVOS";
|
|
|
+ProductVersion = "10.2.2";
|
|
|
+Version = Version;
|
|
|
+
|
|
|
+*/
|
|
|
+
|
|
|
+id serverversiondict()
|
|
|
+{
|
|
|
+ NSLog(@"called server version!");
|
|
|
+ //NSArray *callStack = [NSThread callStackSymbols];
|
|
|
+ //NSLog(@"callstack: %@", callStack);
|
|
|
+ id retv = original_func3();
|
|
|
+ NSMutableDictionary *a = [retv mutableCopy];
|
|
|
+ a[@"MarketingVersion"] = @"11.1";
|
|
|
+ a[@"ProductVersion"] = @"11.1";
|
|
|
+ a[@"ProductBuildVersion"] = @"15J582";
|
|
|
+ NSLog(@"og deets: %@", retv);
|
|
|
+ NSLog(@"new g: %@", a);
|
|
|
+ return retv;
|
|
|
+}
|
|
|
+
|
|
|
+id systemversiondict()
|
|
|
+{
|
|
|
+ NSLog(@"called system version!");
|
|
|
+ //NSArray *callStack = [NSThread callStackSymbols];
|
|
|
+ //NSLog(@"callstack: %@", callStack);
|
|
|
+ id retv = original_func2();
|
|
|
+ //NSMutableDictionary *a = [retv mutableCopy];
|
|
|
+ //a[@"MarketingVersion"] = @"11.1";
|
|
|
+ //a[@"ProductVersion"] = @"11.1";
|
|
|
+ //a[@"ProductBuildVersion"] = @"15J582";
|
|
|
+ //NSLog(@"og deets: %@", retv);
|
|
|
+ //NSLog(@"new g: %@", a);
|
|
|
+ return retv;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+id (*original_func)(id a);
|
|
|
+
|
|
|
+//hook for _MobileInstallationCopyInstalledAppsForLaunchServices
|
|
|
+
|
|
|
+id we_really_out_here(id a)
|
|
|
+{
|
|
|
+NSLog(@"#### EXCEPTION CATCHER FOUND UNCAUGHT EXCEPTION: %@", a);
|
|
|
+ id retv = original_func(a);
|
|
|
+ NSLog(@"retv: %@", retv);
|
|
|
+ return retv;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+%ctor
|
|
|
+{
|
|
|
+ dlopen("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation", RTLD_LAZY);
|
|
|
+
|
|
|
+ MSImageRef gangshit = MSGetImageByName("/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation");
|
|
|
+ if (gangshit != NULL)
|
|
|
+ {
|
|
|
+ NSLog(@"cf loaded!");
|
|
|
+ }
|
|
|
+ //tvos 10 symbol
|
|
|
+ void* weouthere = MSFindSymbol(gangshit, "___handleUncaughtException");
|
|
|
+ NSLog(@"CoreFoundation tvOS 10 hooking %p", weouthere);
|
|
|
+
|
|
|
+ if (weouthere)
|
|
|
+ {
|
|
|
+ NSLog(@"Found symbol!");
|
|
|
+ MSHookFunction((void*)weouthere, (void*)we_really_out_here, (void**)&original_func);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /*
|
|
|
+ void* weouthere2 = MSFindSymbol(gangshit, "__CFCopySystemVersionDictionary");
|
|
|
+ NSLog(@"CF hooking _CFCopySystemVersionDictionary: %p", weouthere2);
|
|
|
+
|
|
|
+
|
|
|
+ if (weouthere2)
|
|
|
+ {
|
|
|
+ NSLog(@"Found _CFCopySystemVersionDictionary!");
|
|
|
+ MSHookFunction((void*) weouthere2, (void*)systemversiondict, (void**)&original_func2);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ void* weouthere3 = MSFindSymbol(gangshit, "__CFCopyServerVersionDictionary");
|
|
|
+ NSLog(@"CF hooking _CFCopyServerVersionDictionary: %p", weouthere2);
|
|
|
+
|
|
|
+
|
|
|
+ if (weouthere3)
|
|
|
+ {
|
|
|
+ NSLog(@"Found _CFCopyServerVersionDictionary!");
|
|
|
+ MSHookFunction((void*) weouthere3, (void*)serverversiondict, (void**)&original_func3);
|
|
|
+
|
|
|
+ }
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+}
|