├── FGO_Bypass_64bit.plist ├── LICENSE ├── Makefile ├── README.md ├── Tweak.xm └── control /FGO_Bypass_64bit.plist: -------------------------------------------------------------------------------- 1 | { 2 | Filter = { 3 | Bundles = ( 4 | "jp.gungho.dg", 5 | "jp.gungho.padRadar", 6 | "com.aniplex.fategrandorder", 7 | ); 8 | }; 9 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | public domain 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ARCHS = arm64 2 | export THEOS=/opt/theos/ 3 | 4 | include $(THEOS)/makefiles/common.mk 5 | 6 | TWEAK_NAME = FGO_Bypass_64bit 7 | FGO_Bypass_64bit_FILES = Tweak.xm 8 | FGO_Bypass_64bit_FRAMEWORKS = UIKit 9 | 10 | include $(THEOS_MAKE_PATH)/tweak.mk 11 | 12 | after-install:: 13 | install.exec "killall -9 SpringBoard" 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # cp-c 2 | CrackProofの脱獄検知を回避 3 | 4 | *(現在動きません)* 5 | 6 | # License 7 | 8 | public domain 9 | 10 | 2017/03/24 11 | 12 | ライセンス変更 13 | 14 | GPLv3 -> public domain 15 | 16 | # make 17 | THEOSをインストール後、Makefileがあるところまで移動し、 18 | 19 | `make package` 20 | -------------------------------------------------------------------------------- /Tweak.xm: -------------------------------------------------------------------------------- 1 | //不要なものが混じってます 2 | #import 3 | #import 4 | #import 5 | #import 6 | #import 7 | #import 8 | #import 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | 15 | //using namespace std; 16 | 17 | int nest = 0; 18 | 19 | 20 | %hook UIApplication 21 | -(BOOL)canOpenURL:(id)arg1 22 | { 23 | NSLog(@"canOpenURL"); 24 | return NO; 25 | } 26 | %end 27 | 28 | //---------------------------------------------// 29 | struct dirent* readdir(DIR* dir); 30 | %hookf(struct dirent*,readdir,DIR* dir) 31 | { 32 | 33 | struct dirent* dire; 34 | 35 | while((dire = %orig(dir)) != NULL) 36 | { 37 | if (strcasecmp(dire->d_name,"User") == 0) 38 | { 39 | strcpy(dire->d_name,"System"); 40 | } 41 | if (strcasecmp(dire->d_name,"pguntether") == 0) 42 | { 43 | strcpy(dire->d_name,"System"); 44 | } 45 | if (strcasecmp(dire->d_name,"boot") == 0) 46 | { 47 | strcpy(dire->d_name,"System"); 48 | } 49 | if (strcasecmp(dire->d_name,"lib") == 0) 50 | { 51 | strcpy(dire->d_name,"System"); 52 | } 53 | if (strcasecmp(dire->d_name,"mnt") == 0) 54 | { 55 | strcpy(dire->d_name,"System"); 56 | } 57 | if (strcasecmp(dire->d_name,"var") == 0) 58 | { 59 | strcpy(dire->d_name,"System"); 60 | } 61 | 62 | return dire; 63 | } 64 | return %orig; 65 | 66 | } 67 | 68 | //---------------------------------------------// 69 | 70 | DIR* __opendir2(const char *path, int buf); 71 | %hookf(DIR *,__opendir2,const char *path,int buf) 72 | { 73 | 74 | char* newpath = const_cast(path); 75 | 76 | 77 | if (strcasecmp(path,"/User") == 0) 78 | { 79 | newpath[0] = 'a'; 80 | return NULL; 81 | } 82 | if (strcasecmp(path,"/boot") == 0) 83 | { 84 | newpath[0] = 'a'; 85 | return NULL; 86 | } 87 | if (strcasecmp(path,"/lib") == 0) 88 | { 89 | newpath[0] = 'a'; 90 | return NULL; 91 | } 92 | if (strcasecmp(path,"/mnt") == 0) 93 | { 94 | newpath[0] = 'a'; 95 | return NULL; 96 | } 97 | if (strcasecmp(path,"/Applications/Cydia.app") == 0) 98 | { 99 | newpath[0] = 'a'; 100 | return NULL; 101 | } 102 | if (strcasecmp(path,"/private/var/lib") == 0) 103 | { 104 | newpath[0] = 'a'; 105 | return NULL; 106 | } 107 | if (strcasecmp(path,"/private/var/stash") == 0) 108 | { 109 | newpath[0] = 'a'; 110 | return NULL; 111 | } 112 | 113 | if (strcasecmp(path,"/private/var/mobile/Library/SBSettings/Themes") == 0) 114 | { 115 | newpath[0] = 'a'; 116 | return NULL; 117 | } 118 | 119 | if (strcasecmp(path,"/System/Library/LaunchDaemons/com.saurik.Cydia.Startup.plist") == 0) 120 | { 121 | newpath[0] = 'a'; 122 | return NULL; 123 | } 124 | 125 | DIR* dia = %orig(path,buf); 126 | return dia; 127 | } 128 | 129 | //---------------------------------------------// 130 | 131 | int strcasecmp(const char *s1, const char *s2); 132 | %hookf(int,strcasecmp,const char *s1, const char *s2) 133 | { 134 | char* newcp = const_cast(s1); 135 | 136 | if (nest == 0) 137 | { 138 | nest += 1; 139 | }else{ 140 | nest = 0; 141 | return %orig(s1,s2); 142 | } 143 | 144 | if (strcasecmp(".",s2) == 0) 145 | { 146 | strcpy(newcp,"AppStore.app"); 147 | } 148 | 149 | return %orig(newcp,s2); 150 | } 151 | //---------------------------------------// 152 | int system(const char *s1); 153 | %hookf(int,system,const char *s1) 154 | { 155 | return 0; 156 | } 157 | 158 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: jp.akusio.cpc64bit 2 | Name: CP-C 3 | Depends: mobilesubstrate 4 | Version: 0.0.3a 5 | Architecture: iphoneos-arm 6 | Description: 【!】追加で対策されても対応できないです。64bit、iOS9以上のみ対応。 動かない場合ホーム画面にアイコンが出るタイプの脱獄アプリを消してみてください。 対応アプリ:FGO、パズドレ、ディバゲ 0.0.3a:コード最適化 7 | Maintainer: akusio 8 | Author: akusio 9 | Section: Tweaks 10 | --------------------------------------------------------------------------------