├── .gitignore ├── LICENSE ├── README.md ├── docs ├── CydiaIcon.png ├── Packages ├── Packages.bz2 ├── Release ├── debs │ ├── DingTalkFucker │ │ └── io.iosleep.dingtalkfucker_1.0_iphoneos-arm.deb │ ├── Dropbear │ │ ├── dropbear_2.0_iphoneos-arm.deb │ │ └── dropbear_3.0_iphoneos-arm.deb │ ├── FrogTweak │ │ └── com.alonemonkey.frogtweak_1.0_iphoneos-arm.deb │ ├── RevealLoader │ │ ├── revealloader_13.0_iphoneos-arm.deb │ │ └── revealloader_16.0_iphoneos-arm.deb │ ├── RevealLoaderFor11 │ │ └── revealloaderfor11_17.0_iphoneos-arm.deb │ ├── StoneTweak │ │ └── com.alonemonkey.stonetweak_1.0_iphoneos-arm.deb │ ├── WechatPod │ │ └── com.alonemonkey.wechatpod_2.0_iphoneos-arm.deb │ ├── WoodPeckeriOS │ │ └── tw.com.tinxie.woodpeckerios_1.2.2_iphoneos-arm.deb │ └── scp │ │ └── scp_1.0_iphoneos-arm.deb ├── gen.sh ├── index.html └── res │ ├── css │ └── style.css │ ├── images │ ├── 120.png │ ├── 128.png │ ├── 16.png │ ├── 256.png │ ├── 32.png │ ├── 48.png │ ├── 64.png │ ├── cydia.png │ └── url.png │ └── js │ └── thankssaurik.js ├── pack.sh ├── projects ├── DingTalkFucker │ ├── DEBIAN │ │ └── control │ └── Library │ │ └── MobileSubstrate │ │ └── DynamicLibraries │ │ ├── DingTalkFucker.dylib │ │ └── DingTalkFucker.plist ├── Dropbear │ ├── DEBIAN │ │ ├── control │ │ └── postinst │ ├── Library │ │ └── LaunchDaemons │ │ │ └── dropbear.plist │ └── usr │ │ └── local │ │ └── bin │ │ ├── dropbear │ │ ├── dropbearconvert │ │ └── dropbearkey ├── FrogTweak │ ├── DEBIAN │ │ └── control │ └── Library │ │ └── MobileSubstrate │ │ └── DynamicLibraries │ │ ├── FrogTweak.dylib │ │ └── FrogTweak.plist ├── RevealLoader │ ├── DEBIAN │ │ ├── control │ │ └── postinst │ └── Library │ │ ├── MobileSubstrate │ │ └── DynamicLibraries │ │ │ ├── RevealLoader.dylib │ │ │ └── RevealLoader.plist │ │ ├── PreferenceLoader │ │ └── Preferences │ │ │ ├── RevealLoader.plist │ │ │ ├── RevealLoaderIcon.png │ │ │ └── RevealLoaderIcon@2x.png │ │ └── RevealLoader │ │ └── libReveal.dylib ├── RevealLoaderFor11 │ ├── DEBIAN │ │ ├── control │ │ └── postinst │ └── Library │ │ ├── Library │ │ └── MobileSubstrate │ │ │ └── DynamicLibraries │ │ │ └── libReveal.dylib │ │ ├── MobileSubstrate │ │ └── DynamicLibraries │ │ │ ├── RevealLoader.dylib │ │ │ ├── RevealLoader.plist │ │ │ └── libReveal.dylib │ │ └── PreferenceLoader │ │ └── Preferences │ │ ├── RevealLoader.plist │ │ ├── RevealLoaderIcon.png │ │ └── RevealLoaderIcon@2x.png ├── StoneTweak │ ├── DEBIAN │ │ └── control │ └── Library │ │ └── MobileSubstrate │ │ └── DynamicLibraries │ │ ├── StoneTweak.dylib │ │ └── StoneTweak.plist ├── WechatPod │ ├── DEBIAN │ │ └── control │ └── Library │ │ └── MobileSubstrate │ │ └── DynamicLibraries │ │ ├── WechatPod.dylib │ │ └── WechatPod.plist ├── WoodPeckeriOS │ ├── DEBIAN │ │ └── control │ └── Library │ │ ├── MobileSubstrate │ │ └── DynamicLibraries │ │ │ ├── WoodPeckeriOS.dylib │ │ │ └── WoodPeckeriOS.plist │ │ ├── PreferenceLoader │ │ └── Preferences │ │ │ ├── WoodPeckeriOS.plist │ │ │ ├── WoodPeckeriOSIcon.png │ │ │ └── WoodPeckeriOSIcon@2x.png │ │ └── WoodPeckeriOS │ │ ├── WoodPeckeriOS.framework │ │ ├── ADHConnectViewController.nib │ │ │ ├── objects-11.0+.nib │ │ │ └── runtime.nib │ │ ├── ADHRemoteServiceCell.nib │ │ ├── Headers │ │ │ ├── ADHLogger.h │ │ │ ├── ADHOrganizer.h │ │ │ ├── ADHRequest.h │ │ │ ├── ADHService.h │ │ │ └── WoodPeckeriOS.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ └── module.modulemap │ │ ├── WoodPeckeriOS │ │ └── adhwebdebugger.bundle │ │ │ └── mock.js │ │ └── WoodPeckeriOSIcon@2x.png └── scp │ ├── DEBIAN │ └── control │ └── usr │ └── bin │ └── scp └── source ├── FrogTweak ├── FrogTweak.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── alonemonkey.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── alonemonkey.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist └── FrogTweak │ ├── FrogTweak-Prefix.pch │ ├── FrogTweak.mm │ ├── FrogTweak.xm │ └── Package │ ├── DEBIAN │ └── control │ └── Library │ └── MobileSubstrate │ └── DynamicLibraries │ ├── FrogTweak.dylib │ └── FrogTweak.plist ├── RevealLoader ├── RevealLoader.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ ├── alonemonkey.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── monkey.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ ├── alonemonkey.xcuserdatad │ │ └── xcschemes │ │ │ └── xcschememanagement.plist │ │ └── monkey.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist └── RevealLoader │ ├── Package │ ├── DEBIAN │ │ ├── control │ │ └── postinst │ └── Library │ │ ├── MobileSubstrate │ │ └── DynamicLibraries │ │ │ ├── RevealLoader.dylib │ │ │ └── RevealLoader.plist │ │ ├── PreferenceLoader │ │ └── Preferences │ │ │ ├── RevealLoader.plist │ │ │ ├── RevealLoaderIcon.png │ │ │ └── RevealLoaderIcon@2x.png │ │ └── RevealLoader │ │ └── libReveal.dylib │ ├── RevealLoader-Prefix.pch │ └── RevealLoader.mm ├── StoneTweak ├── StoneTweak.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcuserdata │ │ │ └── alonemonkey.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ └── xcuserdata │ │ └── alonemonkey.xcuserdatad │ │ └── xcschemes │ │ └── xcschememanagement.plist └── StoneTweak │ ├── Package │ ├── DEBIAN │ │ └── control │ └── Library │ │ └── MobileSubstrate │ │ └── DynamicLibraries │ │ ├── StoneTweak.dylib │ │ └── StoneTweak.plist │ ├── StoneTweak-Prefix.pch │ └── StoneTweak.mm └── WechatPod ├── WechatPod.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcuserdata │ │ └── monkey.xcuserdatad │ │ └── UserInterfaceState.xcuserstate └── xcuserdata │ └── monkey.xcuserdatad │ ├── xcdebugger │ └── Breakpoints_v2.xcbkptlist │ └── xcschemes │ ├── WechatPod.xcscheme │ └── xcschememanagement.plist └── WechatPod ├── FXForms.h ├── FXForms.m ├── MDColor.h ├── MDConstants.h ├── MDConstants.m ├── MDSettingCenter.h ├── MDSettingsViewController.h ├── MDSettingsViewController.m ├── MDSuspendBall.h ├── MDSuspendBall.m ├── Package ├── DEBIAN │ └── control └── Library │ └── MobileSubstrate │ └── DynamicLibraries │ ├── WechatPod.dylib │ └── WechatPod.plist ├── SettingForm.h ├── SettingForm.m ├── UIColor+ColorUtils.h ├── UIColor+ColorUtils.m ├── UIView+Frame.h ├── UIView+Frame.m ├── WeChatHeader.h ├── WeChatLocationHook.m ├── WeChatMessageHook.m ├── WeChatRequestHook.m ├── WeChatServiceManager.h ├── WeChatServiceManager.m ├── WeChatStepHook.m ├── WechatMapViewController.h ├── WechatMapViewController.m ├── WechatPod-Prefix.pch ├── WechatPodForm.h └── WechatPodForm.m /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 AloneMonkey 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### This is a cydia repo created on github 2 | 3 | 1. open cydia 4 | 2. software source -> edit -> add 5 | 3. cydia/apt: http://www.alonemonkey.com/cydiarepo/ 6 | 7 | ### PR 8 | 9 | 1. Add your tweak to projects 10 | 2. run `./pack.sh` 11 | 3. pull request 12 | -------------------------------------------------------------------------------- /docs/CydiaIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/CydiaIcon.png -------------------------------------------------------------------------------- /docs/Packages: -------------------------------------------------------------------------------- 1 | Package: Dropbear 2 | Version: 2.0 3 | Architecture: iphoneos-arm 4 | Maintainer: anonymous 5 | Installed-Size: 441 6 | Filename: ./debs/Dropbear/dropbear_2.0_iphoneos-arm.deb 7 | Size: 441210 8 | MD5sum: 3e7150e68c24104298d46c6654cdea99 9 | SHA1: 8bb3307b489f13aeac2482824c53749dd38915af 10 | SHA256: 31bd30350b0434831c89898f458a4b23dc2fd45ac16e29b3b86297f5e2a35950 11 | Section: System 12 | Description: Dropbear SSH for 32 and 64 bit devices. Use with an SSH tunnel to SSH via USB(Wi-Fi SSH is not enabled by default.) 13 | Name: Dropbear 14 | 15 | Package: Dropbear 16 | Version: 3.0 17 | Architecture: iphoneos-arm 18 | Maintainer: anonymous 19 | Installed-Size: 441 20 | Filename: ./debs/Dropbear/dropbear_3.0_iphoneos-arm.deb 21 | Size: 441144 22 | MD5sum: c8c02873592d0b0bf11feafe3e26dd75 23 | SHA1: 41a9aaff663f290f9bde9fb41a2409d87aa1daf5 24 | SHA256: 93d6ce911af580e11076d5ece0866b18d2449a052f6e40e03790629dea255667 25 | Section: System 26 | Description: Dropbear SSH for 32 and 64 bit devices. Use with an SSH tunnel to SSH via USB(Wi-Fi SSH is not enabled by default.) 27 | Name: Dropbear 28 | 29 | Package: RevealLoader 30 | Version: 13.0 31 | Architecture: iphoneos-arm 32 | Maintainer: anonymous 33 | Installed-Size: 1900 34 | Depends: AppList 35 | Filename: ./debs/RevealLoader/revealloader_13.0_iphoneos-arm.deb 36 | Size: 1906188 37 | MD5sum: 0d0cf41b57f14a2e1dfa899529efdd59 38 | SHA1: baebe83909980d45606dd5dc58cebd4bfd6aa435 39 | SHA256: 4f278eea93071f3228d3f6662cdbeaf05817f77eac88fd1f020fde14133d6f2e 40 | Section: System 41 | Priority: optional 42 | Description: RevealLoader,使用reveal 13版本的动态库,自己替换/Library/RevealLoader/libReveal.dylib 43 | Name: RevealLoader 44 | 45 | Package: RevealLoader 46 | Version: 16.0 47 | Architecture: iphoneos-arm 48 | Maintainer: anonymous 49 | Installed-Size: 1900 50 | Depends: AppList 51 | Filename: ./debs/RevealLoader/revealloader_16.0_iphoneos-arm.deb 52 | Size: 979804 53 | MD5sum: 10deac9efbdd533632d8bc37c41a8204 54 | SHA1: df7a0b8f28989fe9ba11ad85dbe9cb9c78c932f1 55 | SHA256: 032c0b8454fb083253307e41d50f97fac5eb4b10ee70b1853b214fa0a8f1c4ab 56 | Section: System 57 | Priority: optional 58 | Description: RevealLoader,使用reveal 16版本的动态库,自己替换/Library/RevealLoader/libReveal.dylib 59 | Name: RevealLoader 60 | 61 | Package: RevealLoaderFor11 62 | Version: 17.0 63 | Architecture: iphoneos-arm 64 | Maintainer: anonymous 65 | Installed-Size: 1900 66 | Depends: AppList 67 | Filename: ./debs/RevealLoaderFor11/revealloaderfor11_17.0_iphoneos-arm.deb 68 | Size: 3865090 69 | MD5sum: f4be0f5760311e489f9fc6dee6c58ae4 70 | SHA1: 39676488cfcc12e8ce8b09b8aa764dda6865c1ba 71 | SHA256: 3d4783db1d156b40a209ccd99b708bea4439fd318948b533cb285c327757e443 72 | Section: System 73 | Priority: optional 74 | Description: RevealLoader,使用reveal 17版本的動態庫,自己替换/Library/RevealLoader/libReveal.dylib, 僅支持iOS11 75 | Name: RevealLoaderFor11 76 | 77 | Package: com.alonemonkey.frogtweak 78 | Version: 1.0 79 | Architecture: iphoneos-arm 80 | Maintainer: AloneMonkey 81 | Filename: ./debs/FrogTweak/com.alonemonkey.frogtweak_1.0_iphoneos-arm.deb 82 | Size: 24442 83 | MD5sum: d44f6d392911392ace948d3bbd80a51d 84 | SHA1: 1d761b5fd149ba56e7aa11df91189671fc5d5e45 85 | SHA256: 9e5c6f6bc632a7f0ea9092af239bf7491fcb51f50b470b060698118e03a68609 86 | Section: Tweaks 87 | Priority: optional 88 | Description: 旅行青蛙,无限三叶草、无限券、抽奖必中、必出四叶草 89 | Name: FrogTweak 90 | 91 | Package: com.alonemonkey.stonetweak 92 | Version: 1.0 93 | Architecture: iphoneos-arm 94 | Maintainer: AloneMonkey 95 | Installed-Size: 24 96 | Filename: ./debs/StoneTweak/com.alonemonkey.stonetweak_1.0_iphoneos-arm.deb 97 | Size: 23590 98 | MD5sum: 7c15c9e11023ff9d2092fd364d60a062 99 | SHA1: aac06f133fd80c018969061acbc5abd0ffcd99f6 100 | SHA256: b0ca83ee03221d9128794d9ea18924ccc567f2feb008fc40ab3fa3fbc431a67b 101 | Section: Tweaks 102 | Priority: optional 103 | Description: 去掉Stone越狱检测 104 | Name: StoneTweak 105 | 106 | Package: com.alonemonkey.wechatpod 107 | Version: 2.0 108 | Architecture: iphoneos-arm 109 | Maintainer: AloneMonkey 110 | Installed-Size: 270 111 | Filename: ./debs/WechatPod/com.alonemonkey.wechatpod_2.0_iphoneos-arm.deb 112 | Size: 269696 113 | MD5sum: 477582cad1405e6756098bba381c00bd 114 | SHA1: 6d01239167287075f52e824dc8ae94f0dbad5937 115 | SHA256: 529bb6b549e66f4746d629cc218cae7872cdb10afbeab8d214aeb00df3c2aacb 116 | Section: Tweaks 117 | Priority: optional 118 | Description: 防撤回、修改步数、游戏作弊、修改定位 119 | Name: WechatPod 120 | 121 | Package: io.iosleep.DingTalkFucker 122 | Version: 1.0 123 | Architecture: iphoneos-arm 124 | Maintainer: mx.yolande@gmail.com 125 | Depends: firmware (>= 5.0), mobilesubstrate 126 | Filename: ./debs/DingTalkFucker/io.iosleep.dingtalkfucker_1.0_iphoneos-arm.deb 127 | Size: 79014 128 | MD5sum: 13e07ca59e50b8125b1668ef439753fe 129 | SHA1: fedd53efdaed58116d452a2df962d267d1b66dca 130 | SHA256: de9bf044bae0c5c0004fae86751788efbc3d97c6467074264e4ad1110a6c4ee9 131 | Section: System 132 | Priority: optional 133 | Homepage: https://github.com/iOSleep/DingTalkFucker 134 | Description: 签到打卡(wifi,gps),抢红包(延迟,正则匹配) 135 | Author: iOSleep 136 | Name: DingTalkFucker 137 | 138 | Package: scp 139 | Version: 1.0 140 | Architecture: iphoneos-arm 141 | Maintainer: anonymous 142 | Installed-Size: 131 143 | Pre-Depends: dpkg (>= 1.14.25-8) 144 | Provides: scp 145 | Filename: ./debs/scp/scp_1.0_iphoneos-arm.deb 146 | Size: 38704 147 | MD5sum: c18d207defe98cf3d534d475e9136e8b 148 | SHA1: e3f75da080f994dfec03c9a06f38981dd2a5449b 149 | SHA256: 75863c6b984591032cfa1eab57bce13525ba899fcf490241e1e55b7bfa09b64a 150 | Section: Administration 151 | Priority: Standard 152 | Description: scp 153 | Tag: purpose::console, role::developer 154 | 155 | Package: tw.com.TinXie.WoodPeckeriOS 156 | Version: 1.2.2 157 | Architecture: iphoneos-arm 158 | Maintainer: TinXie 159 | Depends: firmware (>= 12.0), mobilesubstrate, AppList 160 | Filename: ./debs/WoodPeckeriOS/tw.com.tinxie.woodpeckerios_1.2.2_iphoneos-arm.deb 161 | Size: 5693432 162 | MD5sum: 3f51e337e2c56ff8d6320e569e0e2f1f 163 | SHA1: 233cc3f8712220ab5727b5a5769948f864b3b317 164 | SHA256: 97c0a55c953fee7891cac6271364ebe0112a47fa748aaa32f6bcf4aecf6744bf 165 | Section: Tweaks 166 | Priority: optional 167 | Description: 使用WoodPeckeriOS 1.2.2動態庫,調適三方app。 168 | Author: TinXie 169 | Depiction: WoodPeckeriOS,使用WoodPeckeriOS 1.2.2版本的動態庫,動態庫若更新請自己替换"/Library/WoodPeckeriOS/WoodPeckeriOS.framework"。 170 | Icon: file:///Library/WoodPeckeriOS/WoodPeckeriOSIcon@2x.png 171 | Name: WoodPeckeriOS 172 | 173 | -------------------------------------------------------------------------------- /docs/Packages.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/Packages.bz2 -------------------------------------------------------------------------------- /docs/Release: -------------------------------------------------------------------------------- 1 | Origin: MonkeyRepo 2 | Label: MonkeyRepo 3 | Suite: stable 4 | Version: 1.0 5 | Codename: ios 6 | Architectures: iphoneos-arm 7 | Components: main 8 | Description: This is a cydia repo created on github 9 | -------------------------------------------------------------------------------- /docs/debs/DingTalkFucker/io.iosleep.dingtalkfucker_1.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/DingTalkFucker/io.iosleep.dingtalkfucker_1.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/Dropbear/dropbear_2.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/Dropbear/dropbear_2.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/Dropbear/dropbear_3.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/Dropbear/dropbear_3.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/FrogTweak/com.alonemonkey.frogtweak_1.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/FrogTweak/com.alonemonkey.frogtweak_1.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/RevealLoader/revealloader_13.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/RevealLoader/revealloader_13.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/RevealLoader/revealloader_16.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/RevealLoader/revealloader_16.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/RevealLoaderFor11/revealloaderfor11_17.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/RevealLoaderFor11/revealloaderfor11_17.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/StoneTweak/com.alonemonkey.stonetweak_1.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/StoneTweak/com.alonemonkey.stonetweak_1.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/WechatPod/com.alonemonkey.wechatpod_2.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/WechatPod/com.alonemonkey.wechatpod_2.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/WoodPeckeriOS/tw.com.tinxie.woodpeckerios_1.2.2_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/WoodPeckeriOS/tw.com.tinxie.woodpeckerios_1.2.2_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/debs/scp/scp_1.0_iphoneos-arm.deb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/debs/scp/scp_1.0_iphoneos-arm.deb -------------------------------------------------------------------------------- /docs/gen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | find ../ -name ".DS_Store" -depth -exec rm {} \; 3 | 4 | for file in `ls ../projects` 5 | do 6 | if [[ -d "../projects/$file" ]]; then 7 | mkdir -p "./debs/$file" 8 | dpkg-deb -bZgzip "../projects/$file" "./debs/$file" 9 | fi 10 | done 11 | 12 | dpkg-scanpackages -m ./debs > ./Packages 13 | bzip2 -fks ./Packages 14 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AloneMonkey's Repository 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 |
24 | AloneMonkeyRepo 25 |
26 | 27 | 28 |
29 | 34 |
35 |
36 | 37 | 38 |
39 | 40 | 41 |
42 |
43 | 46 |
47 |
48 |
49 | 50 | 51 |
52 |
53 | 56 | 57 |
58 |
59 |
60 |
61 | 62 | 63 |
64 | 65 | 66 |
67 |
68 | 71 |
72 |
73 |
74 |
75 |
76 | 77 | -------------------------------------------------------------------------------- /docs/res/images/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/120.png -------------------------------------------------------------------------------- /docs/res/images/128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/128.png -------------------------------------------------------------------------------- /docs/res/images/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/16.png -------------------------------------------------------------------------------- /docs/res/images/256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/256.png -------------------------------------------------------------------------------- /docs/res/images/32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/32.png -------------------------------------------------------------------------------- /docs/res/images/48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/48.png -------------------------------------------------------------------------------- /docs/res/images/64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/64.png -------------------------------------------------------------------------------- /docs/res/images/cydia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/cydia.png -------------------------------------------------------------------------------- /docs/res/images/url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/docs/res/images/url.png -------------------------------------------------------------------------------- /docs/res/js/thankssaurik.js: -------------------------------------------------------------------------------- 1 | /* Cytyle - iOS Interface Cascading Style Sheet 2 | * Copyright (C) 2007-2015 Jay Freeman (saurik) 3 | */ 4 | 5 | (function() { 6 | var uncytyle = function(e, d) { 7 | e.className = e.className.replace(new RegExp('(\\s|^)' + d + '(\\s|$)'), ' '); 8 | }; 9 | 10 | var find = function(e) { 11 | for (var item = e.target; item != null && item.nodeName != 'A'; item = item.parentNode); 12 | if (item != null && item.href == '') 13 | return null; 14 | return item; 15 | }; 16 | 17 | if ('ontouchstart' in document.documentElement) { 18 | document.addEventListener('DOMContentLoaded', function() { 19 | FastClick.attach(document.body); 20 | 21 | document.addEventListener('click', function(e) { 22 | var item = find(e); 23 | if (item == null) 24 | return; 25 | 26 | //TODO: Match for other website 27 | if (typeof cydia != 'undefined') 28 | if (item.href.substr(0, 32) == 'http://cydia.saurik.com/package/') 29 | item.href = 'cydia://package/' + item.href.substr(32); 30 | 31 | item.className += ' cytyle-dn'; 32 | uncytyle(item, 'cytyle-in'); 33 | }); 34 | }, false); 35 | 36 | var timeout = null; 37 | var clear = function() { 38 | if (timeout == null) 39 | return; 40 | clearTimeout(timeout); 41 | timeout = null; 42 | }; 43 | 44 | document.addEventListener('touchstart', function(e) { 45 | var item = find(e); 46 | if (item == null) 47 | return; 48 | 49 | uncytyle(item, 'cytyle-up'); 50 | timeout = setTimeout(function() { 51 | if (timeout != null) 52 | item.className += ' cytyle-in'; 53 | }, 50); 54 | }); 55 | 56 | var stop = function(e) { 57 | var item = find(e); 58 | if (item == null) 59 | return; 60 | 61 | clear(); 62 | uncytyle(item, 'cytyle-in'); 63 | }; 64 | 65 | document.addEventListener('touchmove', stop); 66 | document.addEventListener('touchend', stop); 67 | } else { 68 | document.addEventListener('click', function(e) { 69 | var item = find(e); 70 | if (item == null) 71 | return; 72 | item.className += ' cytyle-dn'; 73 | uncytyle(item, 'cytyle-in'); 74 | }); 75 | 76 | document.addEventListener('mousedown', function(e) { 77 | var item = find(e); 78 | if (item == null) 79 | return; 80 | 81 | uncytyle(item, 'cytyle-up'); 82 | item.className += ' cytyle-in'; 83 | }); 84 | 85 | var stop = function(e) { 86 | var item = find(e); 87 | if (item == null) 88 | return; 89 | 90 | uncytyle(item, 'cytyle-in'); 91 | }; 92 | 93 | document.addEventListener('mousemove', stop); 94 | document.addEventListener('mouseup', stop); 95 | } 96 | 97 | var wipe = function(e) { 98 | var items = document.getElementsByClassName('cytyle-dn'); 99 | for (var i = items.length, e = 0; i != e; --i) { 100 | var item = items.item(i - 1); 101 | uncytyle(item, 'cytyle-in'); 102 | item.className += ' cytyle-up'; 103 | uncytyle(item, 'cytyle-dn'); 104 | } 105 | }; 106 | 107 | var page = function(e) { 108 | window.removeEventListener('pageshow', page); 109 | window.addEventListener('pageshow', wipe); 110 | }; 111 | 112 | if (typeof cydia != 'undefined') 113 | document.addEventListener("CydiaViewWillAppear", wipe); 114 | else if (typeof window.onpageshow != 'undefined') 115 | window.addEventListener('pageshow', page); 116 | })(); 117 | 118 | if (navigator.userAgent.search(/Cydia/) == -1) 119 | document.write(''); 120 | else { 121 | document.write(''); 122 | document.write(''); 123 | } 124 | 125 | // XXX: this might just fail on Chrome everywhere, even Mac :( 126 | // https://code.google.com/p/chromium/issues/detail?id=168646 127 | if (navigator.userAgent.search(/Linux/) != -1) 128 | document.write(''); 129 | 130 | (function() { 131 | var cytyle = window.location.search; 132 | cytyle = cytyle.match(/^\?cytyle=(.*)$/); 133 | 134 | if (cytyle != null) 135 | cytyle = ' cytyle-' + cytyle[1]; 136 | else { 137 | cytyle = navigator.userAgent; 138 | cytyle = cytyle.match(/.*; CPU (?:iPhone )?OS ([0-9_]*) like Mac OS X[;)]/); 139 | cytyle = cytyle == null ? '7.0' : cytyle[1].replace(/_/g, '.'); 140 | cytyle = parseInt(cytyle); 141 | cytyle = cytyle >= 7 ? ' cytyle-flat' : ' cytyle-faux'; 142 | } 143 | 144 | var body = document.documentElement; 145 | body.className += cytyle; 146 | 147 | if (window.devicePixelRatio && devicePixelRatio >= 2) { 148 | var test = document.createElement('div'); 149 | test.style.border = '.5px solid transparent'; 150 | body.appendChild(test); 151 | if (test.offsetHeight == 1) 152 | body.className += ' cytyle-hair'; 153 | body.removeChild(test); 154 | } 155 | })(); 156 | 157 | (function() { 158 | var update = function() { 159 | if (window.parent != window) 160 | parent.postMessage({cytyle: {name: "iframe-y", value: document.body.scrollHeight}}, "*"); 161 | }; 162 | 163 | window.addEventListener('message', function(event) { 164 | var message = event.data.cytyle; 165 | if (message == undefined) 166 | return; 167 | 168 | switch (message.name) { 169 | case "iframe-y": 170 | var height = message.value; 171 | var iframes = document.getElementsByTagName("iframe"); 172 | if (iframes.length != 1) 173 | return; 174 | var iframe = iframes.item(0); 175 | iframe.style.height = height + 'px'; 176 | update(); 177 | break; 178 | } 179 | }, false); 180 | 181 | window.addEventListener('load', update, false); 182 | })(); 183 | 184 | (function() { 185 | var text = document.createElement("span"); 186 | text.appendChild(document.createTextNode("My")); 187 | 188 | var block = document.createElement("div"); 189 | block.style.display = "inline-block"; 190 | block.style.height = "0px"; 191 | block.style.width = "1px"; 192 | 193 | var div = document.createElement("div"); 194 | div.id = 'cytyle-metric'; 195 | div.style.lineHeight = "normal"; 196 | 197 | div.appendChild(text); 198 | div.appendChild(block); 199 | 200 | var body = document.documentElement; 201 | body.appendChild(div); try { 202 | var full = text.offsetHeight; 203 | 204 | var style = div.currentStyle; 205 | if (typeof style == 'undefined') 206 | style = window.getComputedStyle(div, null); 207 | var font = parseInt(style.fontSize); 208 | 209 | block.style.verticalAlign = "baseline"; 210 | var base = block.offsetTop - text.offsetTop; 211 | // XXX: on iOS 3 I am unable to do this? 212 | if (base == 0) 213 | base = 14; 214 | } finally { 215 | body.removeChild(div); 216 | } 217 | 218 | var top = base - font * 0.75; 219 | 220 | //var down = (font - base) / font / 2; 221 | //alert(down + "em = (" + font + " - " + base + ") / " + font + " / 2"); 222 | var down = ((full - (base - top)) / 2 - top) / font; 223 | //alert(down + "em = ((" + full + " - (" + base + " - " + top + ")) / 2 - " + top + ") / " + font); 224 | 225 | //var over = 4.0; // Modern 226 | //var over = 2.5; // Legacy 227 | //var over = 3.5; // Chrome 228 | //var over = 3.0; // Medium 229 | //var desc = font * 0.25; 230 | //var down = (desc - over) / font; 231 | 232 | document.write(''); 233 | })(); -------------------------------------------------------------------------------- /pack.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | for file in `ls ./source` 3 | do 4 | if [[ -d "./source/$file" ]]; then 5 | rm -rf "./projects/$file" 6 | mkdir -p "./projects/$file" 7 | cp -rf "./source/$file/$file/Package/" "./projects/$file/" 8 | echo "successful copy $file to projects folder" 9 | fi 10 | done 11 | 12 | cd ./docs && ./gen.sh 13 | -------------------------------------------------------------------------------- /projects/DingTalkFucker/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: io.iosleep.DingTalkFucker 2 | Name: DingTalkFucker 3 | Version: 1.0 4 | Description: 签到打卡(wifi,gps),抢红包(延迟,正则匹配) 5 | Section: System 6 | Depends: firmware (>= 5.0), mobilesubstrate 7 | Conflicts: 8 | Replaces: 9 | Priority: optional 10 | Architecture: iphoneos-arm 11 | Author: iOSleep 12 | dev: 13 | Homepage: https://github.com/iOSleep/DingTalkFucker 14 | Depiction: 15 | Maintainer: mx.yolande@gmail.com 16 | Icon: 17 | 18 | -------------------------------------------------------------------------------- /projects/DingTalkFucker/Library/MobileSubstrate/DynamicLibraries/DingTalkFucker.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/DingTalkFucker/Library/MobileSubstrate/DynamicLibraries/DingTalkFucker.dylib -------------------------------------------------------------------------------- /projects/DingTalkFucker/Library/MobileSubstrate/DynamicLibraries/DingTalkFucker.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.laiwang.DingTalk 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/Dropbear/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: Dropbear 2 | Name: Dropbear 3 | Version: 3.0 4 | Installed-Size: 441 5 | Section: System 6 | Architecture: iphoneos-arm 7 | Maintainer: anonymous 8 | Description: Dropbear SSH for 32 and 64 bit devices. Use with an SSH tunnel to SSH via USB(Wi-Fi SSH is not enabled by default.) 9 | -------------------------------------------------------------------------------- /projects/Dropbear/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | launchctl load /Library/LaunchDaemons/dropbear.plist 4 | 5 | exit 0 6 | -------------------------------------------------------------------------------- /projects/Dropbear/Library/LaunchDaemons/dropbear.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | KeepAlive 6 | 7 | Label 8 | ShaiHulud 9 | Program 10 | /usr/local/bin/dropbear 11 | ProgramArguments 12 | 13 | /usr/local/bin/dropbear 14 | -F 15 | -R 16 | -p 17 | 22 18 | 19 | RunAtLoad 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /projects/Dropbear/usr/local/bin/dropbear: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/Dropbear/usr/local/bin/dropbear -------------------------------------------------------------------------------- /projects/Dropbear/usr/local/bin/dropbearconvert: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/Dropbear/usr/local/bin/dropbearconvert -------------------------------------------------------------------------------- /projects/Dropbear/usr/local/bin/dropbearkey: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/Dropbear/usr/local/bin/dropbearkey -------------------------------------------------------------------------------- /projects/FrogTweak/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.alonemonkey.frogtweak 2 | Name: FrogTweak 3 | Version: 1.0 4 | Description: 旅行青蛙,无限三叶草、无限券、抽奖必中、必出四叶草 5 | Section: Tweaks 6 | Priority: optional 7 | Architecture: iphoneos-arm 8 | Maintainer: AloneMonkey 9 | -------------------------------------------------------------------------------- /projects/FrogTweak/Library/MobileSubstrate/DynamicLibraries/FrogTweak.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/FrogTweak/Library/MobileSubstrate/DynamicLibraries/FrogTweak.dylib -------------------------------------------------------------------------------- /projects/FrogTweak/Library/MobileSubstrate/DynamicLibraries/FrogTweak.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | jp.co.hit-point.tabikaeru 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/RevealLoader/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: RevealLoader 2 | Name: RevealLoader 3 | Version: 16.0 4 | Installed-Size: 1900 5 | Description: RevealLoader,使用reveal 16版本的动态库,自己替换/Library/RevealLoader/libReveal.dylib 6 | Section: System 7 | Depends: AppList 8 | Priority: optional 9 | Architecture: iphoneos-arm 10 | Maintainer: anonymous 11 | -------------------------------------------------------------------------------- /projects/RevealLoader/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -a cydia 4 | cydia=($CYDIA) 5 | 6 | if [[ ${CYDIA+@} ]]; then 7 | eval "echo 'finish:restart' >&${cydia[0]}" 8 | else 9 | echo "Please respring your device after this!" 10 | fi 11 | 12 | exit 0 -------------------------------------------------------------------------------- /projects/RevealLoader/Library/MobileSubstrate/DynamicLibraries/RevealLoader.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoader/Library/MobileSubstrate/DynamicLibraries/RevealLoader.dylib -------------------------------------------------------------------------------- /projects/RevealLoader/Library/MobileSubstrate/DynamicLibraries/RevealLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.apple.UIKit 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/RevealLoader/Library/PreferenceLoader/Preferences/RevealLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | cell 8 | PSLinkCell 9 | icon 10 | RevealLoaderIcon.png 11 | label 12 | RevealLoader 13 | 14 | items 15 | 16 | 17 | bundle 18 | AppList 19 | isController 20 | 1 21 | cell 22 | PSLinkCell 23 | label 24 | Enabled Applications 25 | ALSettingsPath 26 | /var/mobile/Library/Preferences/com.alonemonkey.RevealLoader.plist 27 | ALSettingsKeyPrefix 28 | RevealEnabled- 29 | ALSettingsDefaultValue 30 | 31 | ALAllowsSelection 32 | 1 33 | ALSectionDescriptors 34 | 35 | 36 | items 37 | 38 | footer-title 39 | Select which applications to load Reveal into. 40 | 41 | 42 | title 43 | User Applications 44 | predicate 45 | isSystemApplication = FALSE 46 | icon-size 47 | 29 48 | suppress-hidden-apps 49 | 1 50 | cell-class-name 51 | ALSwitchCell 52 | 53 | 54 | title 55 | System Applications 56 | predicate 57 | isSystemApplication = TRUE AND NOT (displayIdentifier IN {'com.iptm.bigboss.sbsettings', 'com.booleanmagic.overboard', 'eu.heinelt.ifile'}) 58 | icon-size 59 | 29 60 | suppress-hidden-apps 61 | 1 62 | cell-class-name 63 | ALSwitchCell 64 | 65 | 66 | 67 | 68 | cell 69 | PSGroupCell 70 | footerText 71 | This tweak is not officially supported. For more information about Reveal.app and runtime debugging see http://revealapp.com 72 | 73 | 74 | title 75 | RevealLoader 76 | 77 | 78 | -------------------------------------------------------------------------------- /projects/RevealLoader/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoader/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png -------------------------------------------------------------------------------- /projects/RevealLoader/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoader/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png -------------------------------------------------------------------------------- /projects/RevealLoader/Library/RevealLoader/libReveal.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoader/Library/RevealLoader/libReveal.dylib -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: RevealLoaderFor11 2 | Name: RevealLoaderFor11 3 | Version: 17.0 4 | Installed-Size: 1900 5 | Description: RevealLoader,使用reveal 17版本的動態庫,自己替换/Library/RevealLoader/libReveal.dylib, 僅支持iOS11 6 | Section: System 7 | Depends: AppList 8 | Priority: optional 9 | Architecture: iphoneos-arm 10 | Maintainer: anonymous 11 | -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -a cydia 4 | cydia=($CYDIA) 5 | 6 | if [[ ${CYDIA+@} ]]; then 7 | eval "echo 'finish:restart' >&${cydia[0]}" 8 | else 9 | echo "Please respring your device after this!" 10 | fi 11 | 12 | exit 0 -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/Library/MobileSubstrate/DynamicLibraries/libReveal.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoaderFor11/Library/Library/MobileSubstrate/DynamicLibraries/libReveal.dylib -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/MobileSubstrate/DynamicLibraries/RevealLoader.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoaderFor11/Library/MobileSubstrate/DynamicLibraries/RevealLoader.dylib -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/MobileSubstrate/DynamicLibraries/RevealLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.apple.UIKit 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/MobileSubstrate/DynamicLibraries/libReveal.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoaderFor11/Library/MobileSubstrate/DynamicLibraries/libReveal.dylib -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/PreferenceLoader/Preferences/RevealLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | cell 8 | PSLinkCell 9 | icon 10 | RevealLoaderIcon.png 11 | label 12 | RevealLoaderFor11 13 | 14 | items 15 | 16 | 17 | bundle 18 | AppList 19 | isController 20 | 1 21 | cell 22 | PSLinkCell 23 | label 24 | Enabled Applications 25 | ALSettingsPath 26 | /var/mobile/Library/Preferences/com.alonemonkey.RevealLoader.plist 27 | ALSettingsKeyPrefix 28 | RevealEnabled- 29 | ALSettingsDefaultValue 30 | 31 | ALAllowsSelection 32 | 1 33 | ALSectionDescriptors 34 | 35 | 36 | items 37 | 38 | footer-title 39 | Select which applications to load Reveal into. 40 | 41 | 42 | title 43 | User Applications 44 | predicate 45 | isSystemApplication = FALSE 46 | icon-size 47 | 29 48 | suppress-hidden-apps 49 | 1 50 | cell-class-name 51 | ALSwitchCell 52 | 53 | 54 | title 55 | System Applications 56 | predicate 57 | isSystemApplication = TRUE AND NOT (displayIdentifier IN {'com.iptm.bigboss.sbsettings', 'com.booleanmagic.overboard', 'eu.heinelt.ifile'}) 58 | icon-size 59 | 29 60 | suppress-hidden-apps 61 | 1 62 | cell-class-name 63 | ALSwitchCell 64 | 65 | 66 | 67 | 68 | cell 69 | PSGroupCell 70 | footerText 71 | This tweak is not officially supported. For more information about Reveal.app and runtime debugging see http://revealapp.com 72 | 73 | 74 | title 75 | RevealLoaderFor11 76 | 77 | 78 | -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoaderFor11/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png -------------------------------------------------------------------------------- /projects/RevealLoaderFor11/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/RevealLoaderFor11/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png -------------------------------------------------------------------------------- /projects/StoneTweak/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.alonemonkey.stonetweak 2 | Name: StoneTweak 3 | Version: 1.0 4 | Installed-Size: 24 5 | Description: 去掉Stone越狱检测 6 | Section: Tweaks 7 | Priority: optional 8 | Architecture: iphoneos-arm 9 | Maintainer: AloneMonkey 10 | -------------------------------------------------------------------------------- /projects/StoneTweak/Library/MobileSubstrate/DynamicLibraries/StoneTweak.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/StoneTweak/Library/MobileSubstrate/DynamicLibraries/StoneTweak.dylib -------------------------------------------------------------------------------- /projects/StoneTweak/Library/MobileSubstrate/DynamicLibraries/StoneTweak.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.ntes.stone 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/WechatPod/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.alonemonkey.wechatpod 2 | Name: WechatPod 3 | Version: 2.0 4 | Installed-Size: 270 5 | Description: 防撤回、修改步数、游戏作弊、修改定位 6 | Section: Tweaks 7 | Priority: optional 8 | Architecture: iphoneos-arm 9 | Maintainer: AloneMonkey 10 | -------------------------------------------------------------------------------- /projects/WechatPod/Library/MobileSubstrate/DynamicLibraries/WechatPod.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WechatPod/Library/MobileSubstrate/DynamicLibraries/WechatPod.dylib -------------------------------------------------------------------------------- /projects/WechatPod/Library/MobileSubstrate/DynamicLibraries/WechatPod.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.tencent.xin 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: tw.com.TinXie.WoodPeckeriOS 2 | Name: WoodPeckeriOS 3 | Version: 1.2.2 4 | Description: 使用WoodPeckeriOS 1.2.2動態庫,調適三方app。 5 | Depiction: WoodPeckeriOS,使用WoodPeckeriOS 1.2.2版本的動態庫,動態庫若更新請自己替换"/Library/WoodPeckeriOS/WoodPeckeriOS.framework"。 6 | Section: Tweaks 7 | Depends: firmware (>= 12.0), mobilesubstrate, AppList 8 | Conflicts: 9 | Replaces: 10 | Priority: optional 11 | Architecture: iphoneos-arm 12 | Author: TinXie 13 | dev: 14 | Homepage: 15 | Maintainer: TinXie 16 | Icon: file:///Library/WoodPeckeriOS/WoodPeckeriOSIcon@2x.png 17 | 18 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/MobileSubstrate/DynamicLibraries/WoodPeckeriOS.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/MobileSubstrate/DynamicLibraries/WoodPeckeriOS.dylib -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/MobileSubstrate/DynamicLibraries/WoodPeckeriOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.appGuard.whiteBoxSample 10 | com.apple.UIKit 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/PreferenceLoader/Preferences/WoodPeckeriOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | cell 8 | PSLinkCell 9 | icon 10 | WoodPeckeriOSIcon.png 11 | label 12 | WoodPeckeriOS 13 | 14 | items 15 | 16 | 17 | bundle 18 | AppList 19 | isController 20 | 1 21 | cell 22 | PSLinkCell 23 | label 24 | Enabled Applications 25 | ALSettingsPath 26 | /var/mobile/Library/Preferences/tw.com.TinXie.WoodPeckeriOS.plist 27 | ALSettingsKeyPrefix 28 | WoodPeckeriOSEnabled- 29 | ALSettingsDefaultValue 30 | 31 | ALAllowsSelection 32 | 1 33 | ALSectionDescriptors 34 | 35 | 36 | items 37 | 38 | footer-title 39 | Select which applications to load WoodPeckeriOS into. 40 | 41 | 42 | title 43 | User Applications 44 | predicate 45 | isSystemApplication = FALSE 46 | icon-size 47 | 29 48 | suppress-hidden-apps 49 | 1 50 | cell-class-name 51 | ALSwitchCell 52 | 53 | 54 | title 55 | System Applications 56 | predicate 57 | isSystemApplication = TRUE AND NOT (displayIdentifier IN {'com.iptm.bigboss.sbsettings', 'com.booleanmagic.overboard', 'eu.heinelt.ifile'}) 58 | icon-size 59 | 29 60 | suppress-hidden-apps 61 | 1 62 | cell-class-name 63 | ALSwitchCell 64 | 65 | 66 | 67 | 68 | cell 69 | PSGroupCell 70 | footerText 71 | This tweak is not officially supported. For more information about WoodPeckeriOS.app and runtime debugging see http://www.woodpeck.cn/cnusage 72 | 73 | 74 | title 75 | WoodPeckeriOS 76 | 77 | 78 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/PreferenceLoader/Preferences/WoodPeckeriOSIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/PreferenceLoader/Preferences/WoodPeckeriOSIcon.png -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/PreferenceLoader/Preferences/WoodPeckeriOSIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/PreferenceLoader/Preferences/WoodPeckeriOSIcon@2x.png -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/ADHConnectViewController.nib/objects-11.0+.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/ADHConnectViewController.nib/objects-11.0+.nib -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/ADHConnectViewController.nib/runtime.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/ADHConnectViewController.nib/runtime.nib -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/ADHRemoteServiceCell.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/ADHRemoteServiceCell.nib -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Headers/ADHLogger.h: -------------------------------------------------------------------------------- 1 | // 2 | // ADHLogger.h 3 | // ADHClient 4 | // 5 | // Created by 张小刚 on 2017/12/30. 6 | // Copyright © 2017年 lifebetter. All rights reserved. 7 | // 8 | 9 | #if TARGET_OS_IPHONE 10 | #import 11 | #endif 12 | 13 | @interface ADHLogger : NSObject 14 | 15 | + (ADHLogger *)sharedLogger; 16 | - (void)logText: (NSString *)text; 17 | - (void)logFileWithData:(NSData *)fileData fileName:(NSString *)fileName text: (NSString *)text; 18 | #if TARGET_OS_IPHONE 19 | - (void)logText: (NSString *)text color: (UIColor *)color; 20 | #endif 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Headers/ADHOrganizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppOrganizer.h 3 | // ADHClient 4 | // 5 | // Created by woodpecker on 2017/11/5. 6 | // Copyright © 2017年 lifebetter. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | 13 | /** 14 | * parameters that specify which mac client you'd like connect to 15 | * learn more at http://www.woodpeck.cn/connection.html 16 | */ 17 | extern NSString *const kADHHostName; 18 | extern NSString *const kADHHostAddress; 19 | extern NSString *const kADHAutoConnectEnabled; 20 | 21 | 22 | @interface ADHOrganizer : NSObject 23 | 24 | + (ADHOrganizer *)sharedOrganizer; 25 | 26 | /** 27 | * register your own ADHService 28 | * learn more about custom service, please visit http://www.woodpeck.cn/plugin.html 29 | */ 30 | - (void)registerService: (Class)serviceClazz; 31 | 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Headers/ADHRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // ADHRequest.h 3 | // ADHClient 4 | // 5 | // Created by woodpecker on 2017/11/4. 6 | // Copyright © 2017年 lifebetter. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | @class ADHRequest; 13 | @class ADHSession; 14 | @class ADHService; 15 | 16 | @interface ADHRequest : NSObject 17 | 18 | @property (nonatomic, strong) NSString * service; 19 | @property (nonatomic, strong) NSString * action; 20 | @property (nonatomic, strong) NSDictionary * body; 21 | @property (nonatomic, strong) NSData * payload; 22 | 23 | 24 | //must call at the end of a request 25 | - (void)finish; 26 | - (void)finishWithBody: (NSDictionary *)body; 27 | - (void)finishWithBody: (NSDictionary *)body payload: (NSData *)payload; 28 | 29 | 30 | @end 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Headers/ADHService.h: -------------------------------------------------------------------------------- 1 | // 2 | // ADHService.h 3 | // AppDevelopHelper 4 | // 5 | // Created by woodpecker on 2017/11/4. 6 | // Copyright © 2017年 lifebetter. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface ADHService : NSObject 12 | 13 | /** 14 | service name 15 | */ 16 | + (NSString *)serviceName; 17 | 18 | /** 19 | action list 20 | 21 | return @{ 22 | @"actionName1" : selector1 string, 23 | @"actionName2" : selector2 string, 24 | }; 25 | */ 26 | + (NSDictionary *)actionList; 27 | 28 | /** 29 | YES: all request use one shared service instance. 30 | NO: each request use a new service instance. 31 | */ 32 | + (BOOL)isShared; 33 | 34 | /** 35 | called on service init 36 | */ 37 | - (void)onServiceInit; 38 | 39 | 40 | @end 41 | 42 | 43 | @interface ADHAction: NSObject 44 | 45 | @property (nonatomic, strong) NSString * service; 46 | @property (nonatomic, strong) NSString * name; 47 | @property (nonatomic, strong) NSString * handler; 48 | 49 | + (ADHAction *)actionWithService: (NSString *)service name: (NSString *)name handler: (NSString *)handler; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Headers/WoodPeckeriOS.h: -------------------------------------------------------------------------------- 1 | // 2 | // WoodPeckeriOS.h 3 | // WoodPeckeriOS 4 | // 5 | // Created by woodpecker on 2018/1/7. 6 | // Copyright © 2018年 lifebetter. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for WoodPeckeriOS. 12 | FOUNDATION_EXPORT double WoodPeckeriOSVersionNumber; 13 | 14 | //! Project version string for WoodPeckeriOS. 15 | FOUNDATION_EXPORT const unsigned char WoodPeckeriOSVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | #import 20 | #import 21 | #import 22 | #import 23 | 24 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Info.plist -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module WoodPeckeriOS { 2 | umbrella header "WoodPeckeriOS.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/WoodPeckeriOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/WoodPeckeriOS -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOS.framework/adhwebdebugger.bundle/mock.js: -------------------------------------------------------------------------------- 1 | 2 | function adhPageInit() { 3 | if(window.originConsole) { 4 | return; 5 | } 6 | window.originConsole = {}; 7 | } 8 | 9 | adhPageInit(); 10 | 11 | 12 | function mockedMethodList () { 13 | const methodList = ['log', 'info', 'warn', 'debug', 'error']; 14 | return methodList; 15 | } 16 | 17 | //mock console methods 18 | function mockConsole() { 19 | var methodList = mockedMethodList(); 20 | window.console = {}; 21 | if(!window.console) { 22 | window.console = {}; 23 | }else { 24 | //save origin method 25 | methodList.map(function (method) { 26 | window.originConsole[method] = window.console[method]; 27 | }); 28 | } 29 | 30 | methodList.map(method => { 31 | window.console[method] = (...args) => { 32 | printLog({ 33 | logType: method, 34 | logs: args 35 | }); 36 | }; 37 | }); 38 | } 39 | 40 | function mockWindowError() { 41 | if(window.onerror) { 42 | window.originOnError = window.onerror; 43 | } 44 | window.onerror = printError; 45 | } 46 | 47 | function restoreWindowError() { 48 | window.onerror = window.originOnError; 49 | } 50 | 51 | /** 52 | * @param {String} errorMessage 53 | * @param {String} scriptURI 54 | * @param {Long} lineNumber 55 | * @param {Long} columnNumber 56 | * @param {Object} errorObj 57 | 58 | * @note WKWebView not work well 59 | */ 60 | function printError(errorMessage, scriptURI, lineNumber,columnNumber) { 61 | var content = ''; 62 | content += 'message: ' + errorMessage + '
'; 63 | content += 'scriptURI: ' + scriptURI + '
'; 64 | content += 'line: ' + lineNumber + '
'; 65 | content += 'column: ' + columnNumber; 66 | console.error(content); 67 | } 68 | 69 | //restore console methods 70 | function restoreConsole() { 71 | var methodList = mockedMethodList(); 72 | methodList.map(function (method) { 73 | window.console[method] = window.originConsole[method]; 74 | }); 75 | } 76 | 77 | //mocked log 78 | function printLog(item) { 79 | var logType = item['logType']; 80 | 81 | let logs = item.logs || []; 82 | if (!logs.length) { 83 | return; 84 | } 85 | var content = ''; 86 | for (let i = 0; i < logs.length; i++) { 87 | var value = logs[i]; 88 | if(typeof(value) == 'object'){ 89 | if(logs.length == 1) { 90 | result = JSON.stringify(value,null,4); 91 | }else { 92 | result = JSON.stringify(value,null); 93 | } 94 | }else { 95 | result = value.toString(); 96 | } 97 | content += result; 98 | } 99 | var data = {}; 100 | data['logType'] = logType; 101 | data['content'] = content; 102 | // data['date'] = new Date().toString(); 103 | //webkit 104 | if(window.webkit) { 105 | if(window.webkit.messageHandlers.wkwebviewjsHandler) { 106 | window.webkit.messageHandlers.wkwebviewjsHandler.postMessage(data); 107 | } 108 | } 109 | //uiwebview 110 | if(window.webviewjsHandler) { 111 | webviewjsHandler(data); 112 | } 113 | } 114 | 115 | 116 | mockConsole(); 117 | mockWindowError(); 118 | 119 | 120 | 121 | 122 | 123 | 124 | -------------------------------------------------------------------------------- /projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOSIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/WoodPeckeriOS/Library/WoodPeckeriOS/WoodPeckeriOSIcon@2x.png -------------------------------------------------------------------------------- /projects/scp/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: scp 2 | Priority: Standard 3 | Section: Administration 4 | Installed-Size: 131 5 | Maintainer: anonymous 6 | Architecture: iphoneos-arm 7 | Version: 1.0 8 | Pre-Depends: dpkg (>= 1.14.25-8) 9 | Provides: scp 10 | Description: scp 11 | Tag: purpose::console, role::developer 12 | -------------------------------------------------------------------------------- /projects/scp/usr/bin/scp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/projects/scp/usr/bin/scp -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 48; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 863F003A205BA44F00934419 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 863F0039205BA44F00934419 /* UIKit.framework */; }; 11 | 863F003C205BA44F00934419 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 863F003B205BA44F00934419 /* Foundation.framework */; }; 12 | 863F003E205BA44F00934419 /* CydiaSubstrate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 863F003D205BA44F00934419 /* CydiaSubstrate.framework */; }; 13 | 863F0047205BA44F00934419 /* FrogTweak.mm in Sources */ = {isa = PBXBuildFile; fileRef = 863F0046205BA44F00934419 /* FrogTweak.mm */; }; 14 | /* End PBXBuildFile section */ 15 | 16 | /* Begin PBXFileReference section */ 17 | 863F0036205BA44F00934419 /* FrogTweak.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = FrogTweak.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 18 | 863F0039205BA44F00934419 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 19 | 863F003B205BA44F00934419 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 20 | 863F003D205BA44F00934419 /* CydiaSubstrate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CydiaSubstrate.framework; path = Library/Frameworks/CydiaSubstrate.framework; sourceTree = DEVELOPER_DIR; }; 21 | 863F0042205BA44F00934419 /* control */ = {isa = PBXFileReference; lastKnownFileType = text; name = control; path = Package/DEBIAN/control; sourceTree = ""; }; 22 | 863F0044205BA44F00934419 /* FrogTweak-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FrogTweak-Prefix.pch"; sourceTree = ""; }; 23 | 863F0045205BA44F00934419 /* FrogTweak.xm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = FrogTweak.xm; sourceTree = ""; }; 24 | 863F0046205BA44F00934419 /* FrogTweak.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = FrogTweak.mm; sourceTree = ""; }; 25 | 863F004B205BA44F00934419 /* FrogTweak.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = FrogTweak.plist; path = Package/Library/MobileSubstrate/DynamicLibraries/FrogTweak.plist; sourceTree = ""; }; 26 | /* End PBXFileReference section */ 27 | 28 | /* Begin PBXFrameworksBuildPhase section */ 29 | 863F0032205BA44F00934419 /* Frameworks */ = { 30 | isa = PBXFrameworksBuildPhase; 31 | buildActionMask = 2147483647; 32 | files = ( 33 | 863F003A205BA44F00934419 /* UIKit.framework in Frameworks */, 34 | 863F003C205BA44F00934419 /* Foundation.framework in Frameworks */, 35 | 863F003E205BA44F00934419 /* CydiaSubstrate.framework in Frameworks */, 36 | ); 37 | runOnlyForDeploymentPostprocessing = 0; 38 | }; 39 | /* End PBXFrameworksBuildPhase section */ 40 | 41 | /* Begin PBXGroup section */ 42 | 863F002B205BA44F00934419 = { 43 | isa = PBXGroup; 44 | children = ( 45 | 863F003F205BA44F00934419 /* FrogTweak */, 46 | 863F0038205BA44F00934419 /* Frameworks */, 47 | 863F0037205BA44F00934419 /* Products */, 48 | ); 49 | sourceTree = ""; 50 | }; 51 | 863F0037205BA44F00934419 /* Products */ = { 52 | isa = PBXGroup; 53 | children = ( 54 | 863F0036205BA44F00934419 /* FrogTweak.dylib */, 55 | ); 56 | name = Products; 57 | sourceTree = ""; 58 | }; 59 | 863F0038205BA44F00934419 /* Frameworks */ = { 60 | isa = PBXGroup; 61 | children = ( 62 | 863F0039205BA44F00934419 /* UIKit.framework */, 63 | 863F003B205BA44F00934419 /* Foundation.framework */, 64 | 863F003D205BA44F00934419 /* CydiaSubstrate.framework */, 65 | ); 66 | name = Frameworks; 67 | sourceTree = ""; 68 | }; 69 | 863F003F205BA44F00934419 /* FrogTweak */ = { 70 | isa = PBXGroup; 71 | children = ( 72 | 863F0045205BA44F00934419 /* FrogTweak.xm */, 73 | 863F0046205BA44F00934419 /* FrogTweak.mm */, 74 | 863F0040205BA44F00934419 /* Package */, 75 | 863F0043205BA44F00934419 /* Supporting Files */, 76 | ); 77 | path = FrogTweak; 78 | sourceTree = ""; 79 | }; 80 | 863F0040205BA44F00934419 /* Package */ = { 81 | isa = PBXGroup; 82 | children = ( 83 | 863F0041205BA44F00934419 /* DEBIAN */, 84 | 863F0048205BA44F00934419 /* Library */, 85 | ); 86 | name = Package; 87 | sourceTree = ""; 88 | }; 89 | 863F0041205BA44F00934419 /* DEBIAN */ = { 90 | isa = PBXGroup; 91 | children = ( 92 | 863F0042205BA44F00934419 /* control */, 93 | ); 94 | name = DEBIAN; 95 | sourceTree = ""; 96 | }; 97 | 863F0043205BA44F00934419 /* Supporting Files */ = { 98 | isa = PBXGroup; 99 | children = ( 100 | 863F0044205BA44F00934419 /* FrogTweak-Prefix.pch */, 101 | ); 102 | name = "Supporting Files"; 103 | sourceTree = ""; 104 | }; 105 | 863F0048205BA44F00934419 /* Library */ = { 106 | isa = PBXGroup; 107 | children = ( 108 | 863F0049205BA44F00934419 /* MobileSubstrate */, 109 | ); 110 | name = Library; 111 | sourceTree = ""; 112 | }; 113 | 863F0049205BA44F00934419 /* MobileSubstrate */ = { 114 | isa = PBXGroup; 115 | children = ( 116 | 863F004A205BA44F00934419 /* DynamicLibraries */, 117 | ); 118 | name = MobileSubstrate; 119 | sourceTree = ""; 120 | }; 121 | 863F004A205BA44F00934419 /* DynamicLibraries */ = { 122 | isa = PBXGroup; 123 | children = ( 124 | 863F004B205BA44F00934419 /* FrogTweak.plist */, 125 | ); 126 | name = DynamicLibraries; 127 | sourceTree = ""; 128 | }; 129 | /* End PBXGroup section */ 130 | 131 | /* Begin PBXHeadersBuildPhase section */ 132 | 863F0033205BA44F00934419 /* Headers */ = { 133 | isa = PBXHeadersBuildPhase; 134 | buildActionMask = 2147483647; 135 | files = ( 136 | ); 137 | runOnlyForDeploymentPostprocessing = 0; 138 | }; 139 | /* End PBXHeadersBuildPhase section */ 140 | 141 | /* Begin PBXNativeTarget section */ 142 | 863F0035205BA44F00934419 /* FrogTweak */ = { 143 | isa = PBXNativeTarget; 144 | buildConfigurationList = 863F004E205BA44F00934419 /* Build configuration list for PBXNativeTarget "FrogTweak" */; 145 | buildPhases = ( 146 | 863F0030205BA44F00934419 /* ShellScript */, 147 | 863F0031205BA44F00934419 /* Sources */, 148 | 863F0032205BA44F00934419 /* Frameworks */, 149 | 863F0033205BA44F00934419 /* Headers */, 150 | 863F0034205BA44F00934419 /* ShellScript */, 151 | ); 152 | buildRules = ( 153 | ); 154 | dependencies = ( 155 | ); 156 | name = FrogTweak; 157 | productName = FrogTweak; 158 | productReference = 863F0036205BA44F00934419 /* FrogTweak.dylib */; 159 | productType = "com.apple.product-type.library.dynamic"; 160 | }; 161 | /* End PBXNativeTarget section */ 162 | 163 | /* Begin PBXProject section */ 164 | 863F002C205BA44F00934419 /* Project object */ = { 165 | isa = PBXProject; 166 | attributes = { 167 | LastUpgradeCheck = 0900; 168 | TargetAttributes = { 169 | 863F0035205BA44F00934419 = { 170 | CreatedOnToolsVersion = 9.0; 171 | ProvisioningStyle = Automatic; 172 | }; 173 | }; 174 | }; 175 | buildConfigurationList = 863F002F205BA44F00934419 /* Build configuration list for PBXProject "FrogTweak" */; 176 | compatibilityVersion = "Xcode 8.0"; 177 | developmentRegion = en; 178 | hasScannedForEncodings = 0; 179 | knownRegions = ( 180 | en, 181 | ); 182 | mainGroup = 863F002B205BA44F00934419; 183 | productRefGroup = 863F0037205BA44F00934419 /* Products */; 184 | projectDirPath = ""; 185 | projectRoot = ""; 186 | targets = ( 187 | 863F0035205BA44F00934419 /* FrogTweak */, 188 | ); 189 | }; 190 | /* End PBXProject section */ 191 | 192 | /* Begin PBXShellScriptBuildPhase section */ 193 | 863F0030205BA44F00934419 /* ShellScript */ = { 194 | isa = PBXShellScriptBuildPhase; 195 | buildActionMask = 2147483647; 196 | files = ( 197 | ); 198 | inputPaths = ( 199 | ); 200 | outputPaths = ( 201 | ); 202 | runOnlyForDeploymentPostprocessing = 0; 203 | shellPath = /bin/sh; 204 | shellScript = "/opt/MonkeyDev/bin/md --xcbp-logos"; 205 | }; 206 | 863F0034205BA44F00934419 /* ShellScript */ = { 207 | isa = PBXShellScriptBuildPhase; 208 | buildActionMask = 2147483647; 209 | files = ( 210 | ); 211 | inputPaths = ( 212 | ); 213 | outputPaths = ( 214 | ); 215 | runOnlyForDeploymentPostprocessing = 0; 216 | shellPath = /bin/sh; 217 | shellScript = "/opt/MonkeyDev/bin/md --xcbp"; 218 | }; 219 | /* End PBXShellScriptBuildPhase section */ 220 | 221 | /* Begin PBXSourcesBuildPhase section */ 222 | 863F0031205BA44F00934419 /* Sources */ = { 223 | isa = PBXSourcesBuildPhase; 224 | buildActionMask = 2147483647; 225 | files = ( 226 | 863F0047205BA44F00934419 /* FrogTweak.mm in Sources */, 227 | ); 228 | runOnlyForDeploymentPostprocessing = 0; 229 | }; 230 | /* End PBXSourcesBuildPhase section */ 231 | 232 | /* Begin XCBuildConfiguration section */ 233 | 863F004C205BA44F00934419 /* Release */ = { 234 | isa = XCBuildConfiguration; 235 | buildSettings = { 236 | CODE_SIGN_IDENTITY = "iPhone Developer"; 237 | COPY_PHASE_STRIP = YES; 238 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 239 | FRAMEWORK_SEARCH_PATHS = ( 240 | "$(MonkeyDevPath)/frameworks/**", 241 | "$(MonkeyDevTheosPath)/vendor/lib", 242 | ); 243 | GCC_C_LANGUAGE_STANDARD = gnu99; 244 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 245 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 246 | GCC_WARN_UNUSED_VARIABLE = YES; 247 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 248 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 249 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 250 | MonkeyDevPath = /opt/MonkeyDev; 251 | MonkeyDevTheosPath = /opt/theos; 252 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"FrogTweak\\\"\""; 253 | SDKROOT = iphoneos; 254 | TARGETED_DEVICE_FAMILY = "1,2"; 255 | VALIDATE_PRODUCT = YES; 256 | }; 257 | name = Release; 258 | }; 259 | 863F004D205BA44F00934419 /* Debug */ = { 260 | isa = XCBuildConfiguration; 261 | buildSettings = { 262 | CODE_SIGN_IDENTITY = "iPhone Developer"; 263 | COPY_PHASE_STRIP = NO; 264 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 265 | FRAMEWORK_SEARCH_PATHS = ( 266 | "$(MonkeyDevPath)/frameworks/**", 267 | "$(MonkeyDevTheosPath)/vendor/lib", 268 | ); 269 | GCC_C_LANGUAGE_STANDARD = gnu99; 270 | GCC_DYNAMIC_NO_PIC = NO; 271 | GCC_OPTIMIZATION_LEVEL = 0; 272 | GCC_PREPROCESSOR_DEFINITIONS = ( 273 | "DEBUG=1", 274 | "$(inherited)", 275 | ); 276 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 277 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 278 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 279 | GCC_WARN_UNUSED_VARIABLE = YES; 280 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 281 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 282 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 283 | MonkeyDevPath = /opt/MonkeyDev; 284 | MonkeyDevTheosPath = /opt/theos; 285 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"FrogTweak\\\"\""; 286 | SDKROOT = iphoneos; 287 | TARGETED_DEVICE_FAMILY = "1,2"; 288 | VALIDATE_PRODUCT = NO; 289 | }; 290 | name = Debug; 291 | }; 292 | 863F004F205BA44F00934419 /* Release */ = { 293 | isa = XCBuildConfiguration; 294 | buildSettings = { 295 | CLANG_ENABLE_OBJC_ARC = YES; 296 | CODE_SIGN_IDENTITY = ""; 297 | CODE_SIGN_STYLE = Automatic; 298 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 299 | DYLIB_COMPATIBILITY_VERSION = 1; 300 | DYLIB_CURRENT_VERSION = 1; 301 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 302 | GCC_PREFIX_HEADER = "FrogTweak/FrogTweak-Prefix.pch"; 303 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 304 | MonkeyDevBuildPackageOnAnyBuild = NO; 305 | MonkeyDevClearUiCacheOnInstall = NO; 306 | MonkeyDevCopyOnBuild = NO; 307 | MonkeyDevDeviceIP = ""; 308 | MonkeyDevDevicePassword = ""; 309 | MonkeyDevDevicePort = ""; 310 | MonkeyDevInstallOnAnyBuild = YES; 311 | MonkeyDevInstallOnProfiling = YES; 312 | MonkeyDevkillProcessOnInstall = SpringBoard; 313 | PRODUCT_NAME = "$(TARGET_NAME)"; 314 | TARGETED_DEVICE_FAMILY = "1,2"; 315 | }; 316 | name = Release; 317 | }; 318 | 863F0050205BA44F00934419 /* Debug */ = { 319 | isa = XCBuildConfiguration; 320 | buildSettings = { 321 | CLANG_ENABLE_OBJC_ARC = YES; 322 | CODE_SIGN_IDENTITY = ""; 323 | CODE_SIGN_STYLE = Automatic; 324 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 325 | DYLIB_COMPATIBILITY_VERSION = 1; 326 | DYLIB_CURRENT_VERSION = 1; 327 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 328 | GCC_PREFIX_HEADER = "FrogTweak/FrogTweak-Prefix.pch"; 329 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 330 | MonkeyDevBuildPackageOnAnyBuild = NO; 331 | MonkeyDevClearUiCacheOnInstall = NO; 332 | MonkeyDevCopyOnBuild = NO; 333 | MonkeyDevDeviceIP = ""; 334 | MonkeyDevDevicePassword = ""; 335 | MonkeyDevDevicePort = ""; 336 | MonkeyDevInstallOnAnyBuild = YES; 337 | MonkeyDevInstallOnProfiling = YES; 338 | MonkeyDevkillProcessOnInstall = SpringBoard; 339 | PRODUCT_NAME = "$(TARGET_NAME)"; 340 | TARGETED_DEVICE_FAMILY = "1,2"; 341 | }; 342 | name = Debug; 343 | }; 344 | /* End XCBuildConfiguration section */ 345 | 346 | /* Begin XCConfigurationList section */ 347 | 863F002F205BA44F00934419 /* Build configuration list for PBXProject "FrogTweak" */ = { 348 | isa = XCConfigurationList; 349 | buildConfigurations = ( 350 | 863F004C205BA44F00934419 /* Release */, 351 | 863F004D205BA44F00934419 /* Debug */, 352 | ); 353 | defaultConfigurationIsVisible = 0; 354 | defaultConfigurationName = Release; 355 | }; 356 | 863F004E205BA44F00934419 /* Build configuration list for PBXNativeTarget "FrogTweak" */ = { 357 | isa = XCConfigurationList; 358 | buildConfigurations = ( 359 | 863F004F205BA44F00934419 /* Release */, 360 | 863F0050205BA44F00934419 /* Debug */, 361 | ); 362 | defaultConfigurationIsVisible = 0; 363 | defaultConfigurationName = Release; 364 | }; 365 | /* End XCConfigurationList section */ 366 | }; 367 | rootObject = 863F002C205BA44F00934419 /* Project object */; 368 | } 369 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak.xcodeproj/project.xcworkspace/xcuserdata/alonemonkey.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/FrogTweak/FrogTweak.xcodeproj/project.xcworkspace/xcuserdata/alonemonkey.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak.xcodeproj/xcuserdata/alonemonkey.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | FrogTweak.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak/FrogTweak-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'FrogTweak' target in the 'FrogTweak' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #import "/opt/theos/Prefix.pch" //path/to/theos/Prefix.pch 8 | #endif 9 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak/FrogTweak.mm: -------------------------------------------------------------------------------- 1 | #line 1 "/Users/alonemonkey/Documents/MonkeyDev/ab/FrogTweak/FrogTweak/FrogTweak.xm" 2 | #import 3 | #import 4 | #import 5 | 6 | int (*old_clover_point_stock)(void); 7 | 8 | int new_clover_point_stock(void) 9 | { 10 | return 9999; 11 | } 12 | 13 | int (*old_ticket_stock)(void); 14 | 15 | int new_ticket_stock(void) 16 | { 17 | return 9999; 18 | } 19 | 20 | void (*old_lotterycheck)(uint64_t obj); 21 | 22 | void new_lotterycheck(uint64_t obj) 23 | { 24 | *(int*)(obj + 80) = rand() % 4 + 1; 25 | } 26 | 27 | uint64_t (*old_new_clover_object)(uint64_t obj, int index, uint64_t cloverData, uint64_t cloversObj, int fourLeafFlag); 28 | 29 | uint64_t new_new_clover_object(uint64_t obj, int index, uint64_t cloverData, uint64_t cloversObj, int fourLeafFlag) 30 | { 31 | return old_new_clover_object(obj,index,cloverData,cloversObj,1); 32 | } 33 | 34 | static __attribute__((constructor)) void _logosLocalCtor_ca63cac5(int __unused argc, char __unused **argv, char __unused **envp){ 35 | @autoreleasepool{ 36 | unsigned long clover_point_stock = _dyld_get_image_vmaddr_slide(0) + 0x100093A2C; 37 | MSHookFunction((void *)clover_point_stock, (void *)&new_clover_point_stock, (void **)&old_clover_point_stock); 38 | 39 | unsigned long ticket_stock = _dyld_get_image_vmaddr_slide(0) + 0x100093AA4; 40 | MSHookFunction((void *)ticket_stock, (void *)&new_ticket_stock, (void **)&old_ticket_stock); 41 | 42 | unsigned long lotterycheck = _dyld_get_image_vmaddr_slide(0) + 0x100086CF4; 43 | MSHookFunction((void *)lotterycheck, (void *)&new_lotterycheck, (void **)&old_lotterycheck); 44 | 45 | unsigned long new_clover_object = _dyld_get_image_vmaddr_slide(0) + 0x100037100; 46 | MSHookFunction((void *)new_clover_object, (void *)&new_new_clover_object, (void **)&old_new_clover_object); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak/FrogTweak.xm: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | 5 | int (*old_clover_point_stock)(void); 6 | 7 | int new_clover_point_stock(void) 8 | { 9 | return 9999; 10 | } 11 | 12 | int (*old_ticket_stock)(void); 13 | 14 | int new_ticket_stock(void) 15 | { 16 | return 9999; 17 | } 18 | 19 | void (*old_lotterycheck)(uint64_t obj); 20 | 21 | void new_lotterycheck(uint64_t obj) 22 | { 23 | *(int*)(obj + 80) = rand() % 4 + 1; 24 | } 25 | 26 | uint64_t (*old_new_clover_object)(uint64_t obj, int index, uint64_t cloverData, uint64_t cloversObj, int fourLeafFlag); 27 | 28 | uint64_t new_new_clover_object(uint64_t obj, int index, uint64_t cloverData, uint64_t cloversObj, int fourLeafFlag) 29 | { 30 | return old_new_clover_object(obj,index,cloverData,cloversObj,1); 31 | } 32 | 33 | %ctor{ 34 | @autoreleasepool{ 35 | unsigned long clover_point_stock = _dyld_get_image_vmaddr_slide(0) + 0x100093A2C; 36 | MSHookFunction((void *)clover_point_stock, (void *)&new_clover_point_stock, (void **)&old_clover_point_stock); 37 | 38 | unsigned long ticket_stock = _dyld_get_image_vmaddr_slide(0) + 0x100093AA4; 39 | MSHookFunction((void *)ticket_stock, (void *)&new_ticket_stock, (void **)&old_ticket_stock); 40 | 41 | unsigned long lotterycheck = _dyld_get_image_vmaddr_slide(0) + 0x100086CF4; 42 | MSHookFunction((void *)lotterycheck, (void *)&new_lotterycheck, (void **)&old_lotterycheck); 43 | 44 | unsigned long new_clover_object = _dyld_get_image_vmaddr_slide(0) + 0x100037100; 45 | MSHookFunction((void *)new_clover_object, (void *)&new_new_clover_object, (void **)&old_new_clover_object); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak/Package/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.alonemonkey.frogtweak 2 | Name: FrogTweak 3 | Version: 1.0 4 | Description: 旅行青蛙,无限三叶草、无限券、抽奖必中、必出四叶草 5 | Section: Tweaks 6 | Priority: optional 7 | Architecture: iphoneos-arm 8 | Maintainer: AloneMonkey 9 | -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak/Package/Library/MobileSubstrate/DynamicLibraries/FrogTweak.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/FrogTweak/FrogTweak/Package/Library/MobileSubstrate/DynamicLibraries/FrogTweak.dylib -------------------------------------------------------------------------------- /source/FrogTweak/FrogTweak/Package/Library/MobileSubstrate/DynamicLibraries/FrogTweak.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | jp.co.hit-point.tabikaeru 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 48; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 86B1A66F2046CA020077D4EC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86B1A66E2046CA020077D4EC /* Foundation.framework */; }; 11 | 86B1A67D2046CA020077D4EC /* RevealLoader.mm in Sources */ = {isa = PBXBuildFile; fileRef = 86B1A67C2046CA020077D4EC /* RevealLoader.mm */; }; 12 | /* End PBXBuildFile section */ 13 | 14 | /* Begin PBXFileReference section */ 15 | 86B1A66B2046CA020077D4EC /* RevealLoader.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = RevealLoader.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 16 | 86B1A66E2046CA020077D4EC /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 17 | 86B1A6732046CA020077D4EC /* control */ = {isa = PBXFileReference; lastKnownFileType = text; name = control; path = Package/DEBIAN/control; sourceTree = ""; }; 18 | 86B1A6772046CA020077D4EC /* RevealLoader.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = RevealLoader.plist; path = Package/Library/PreferenceLoader/Preferences/RevealLoader.plist; sourceTree = ""; }; 19 | 86B1A6782046CA020077D4EC /* RevealLoaderIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = RevealLoaderIcon.png; path = Package/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png; sourceTree = ""; }; 20 | 86B1A6792046CA020077D4EC /* RevealLoaderIcon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "RevealLoaderIcon@2x.png"; path = "Package/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png"; sourceTree = ""; }; 21 | 86B1A67B2046CA020077D4EC /* RevealLoader-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RevealLoader-Prefix.pch"; sourceTree = ""; }; 22 | 86B1A67C2046CA020077D4EC /* RevealLoader.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = RevealLoader.mm; sourceTree = ""; }; 23 | 86B1A6802046CA020077D4EC /* RevealLoader.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = RevealLoader.plist; path = Package/Library/MobileSubstrate/DynamicLibraries/RevealLoader.plist; sourceTree = ""; }; 24 | /* End PBXFileReference section */ 25 | 26 | /* Begin PBXFrameworksBuildPhase section */ 27 | 86B1A6672046CA020077D4EC /* Frameworks */ = { 28 | isa = PBXFrameworksBuildPhase; 29 | buildActionMask = 2147483647; 30 | files = ( 31 | 86B1A66F2046CA020077D4EC /* Foundation.framework in Frameworks */, 32 | ); 33 | runOnlyForDeploymentPostprocessing = 0; 34 | }; 35 | /* End PBXFrameworksBuildPhase section */ 36 | 37 | /* Begin PBXGroup section */ 38 | 86B1A6612046CA020077D4EC = { 39 | isa = PBXGroup; 40 | children = ( 41 | 86B1A6702046CA020077D4EC /* RevealLoader */, 42 | 86B1A66D2046CA020077D4EC /* Frameworks */, 43 | 86B1A66C2046CA020077D4EC /* Products */, 44 | ); 45 | sourceTree = ""; 46 | }; 47 | 86B1A66C2046CA020077D4EC /* Products */ = { 48 | isa = PBXGroup; 49 | children = ( 50 | 86B1A66B2046CA020077D4EC /* RevealLoader.dylib */, 51 | ); 52 | name = Products; 53 | sourceTree = ""; 54 | }; 55 | 86B1A66D2046CA020077D4EC /* Frameworks */ = { 56 | isa = PBXGroup; 57 | children = ( 58 | 86B1A66E2046CA020077D4EC /* Foundation.framework */, 59 | ); 60 | name = Frameworks; 61 | sourceTree = ""; 62 | }; 63 | 86B1A6702046CA020077D4EC /* RevealLoader */ = { 64 | isa = PBXGroup; 65 | children = ( 66 | 86B1A67C2046CA020077D4EC /* RevealLoader.mm */, 67 | 86B1A6712046CA020077D4EC /* Package */, 68 | 86B1A67A2046CA020077D4EC /* Supporting Files */, 69 | ); 70 | path = RevealLoader; 71 | sourceTree = ""; 72 | }; 73 | 86B1A6712046CA020077D4EC /* Package */ = { 74 | isa = PBXGroup; 75 | children = ( 76 | 86B1A6722046CA020077D4EC /* DEBIAN */, 77 | 86B1A6742046CA020077D4EC /* Library */, 78 | ); 79 | name = Package; 80 | sourceTree = ""; 81 | }; 82 | 86B1A6722046CA020077D4EC /* DEBIAN */ = { 83 | isa = PBXGroup; 84 | children = ( 85 | 86B1A6732046CA020077D4EC /* control */, 86 | ); 87 | name = DEBIAN; 88 | sourceTree = ""; 89 | }; 90 | 86B1A6742046CA020077D4EC /* Library */ = { 91 | isa = PBXGroup; 92 | children = ( 93 | 86B1A6752046CA020077D4EC /* PreferenceLoader */, 94 | 86B1A67E2046CA020077D4EC /* MobileSubstrate */, 95 | ); 96 | name = Library; 97 | sourceTree = ""; 98 | }; 99 | 86B1A6752046CA020077D4EC /* PreferenceLoader */ = { 100 | isa = PBXGroup; 101 | children = ( 102 | 86B1A6762046CA020077D4EC /* Preferences */, 103 | ); 104 | name = PreferenceLoader; 105 | sourceTree = ""; 106 | }; 107 | 86B1A6762046CA020077D4EC /* Preferences */ = { 108 | isa = PBXGroup; 109 | children = ( 110 | 86B1A6772046CA020077D4EC /* RevealLoader.plist */, 111 | 86B1A6782046CA020077D4EC /* RevealLoaderIcon.png */, 112 | 86B1A6792046CA020077D4EC /* RevealLoaderIcon@2x.png */, 113 | ); 114 | name = Preferences; 115 | sourceTree = ""; 116 | }; 117 | 86B1A67A2046CA020077D4EC /* Supporting Files */ = { 118 | isa = PBXGroup; 119 | children = ( 120 | 86B1A67B2046CA020077D4EC /* RevealLoader-Prefix.pch */, 121 | ); 122 | name = "Supporting Files"; 123 | sourceTree = ""; 124 | }; 125 | 86B1A67E2046CA020077D4EC /* MobileSubstrate */ = { 126 | isa = PBXGroup; 127 | children = ( 128 | 86B1A67F2046CA020077D4EC /* DynamicLibraries */, 129 | ); 130 | name = MobileSubstrate; 131 | sourceTree = ""; 132 | }; 133 | 86B1A67F2046CA020077D4EC /* DynamicLibraries */ = { 134 | isa = PBXGroup; 135 | children = ( 136 | 86B1A6802046CA020077D4EC /* RevealLoader.plist */, 137 | ); 138 | name = DynamicLibraries; 139 | sourceTree = ""; 140 | }; 141 | /* End PBXGroup section */ 142 | 143 | /* Begin PBXHeadersBuildPhase section */ 144 | 86B1A6682046CA020077D4EC /* Headers */ = { 145 | isa = PBXHeadersBuildPhase; 146 | buildActionMask = 2147483647; 147 | files = ( 148 | ); 149 | runOnlyForDeploymentPostprocessing = 0; 150 | }; 151 | /* End PBXHeadersBuildPhase section */ 152 | 153 | /* Begin PBXNativeTarget section */ 154 | 86B1A66A2046CA020077D4EC /* RevealLoader */ = { 155 | isa = PBXNativeTarget; 156 | buildConfigurationList = 86B1A6832046CA020077D4EC /* Build configuration list for PBXNativeTarget "RevealLoader" */; 157 | buildPhases = ( 158 | 86B1A6662046CA020077D4EC /* Sources */, 159 | 86B1A6672046CA020077D4EC /* Frameworks */, 160 | 86B1A6682046CA020077D4EC /* Headers */, 161 | 86B1A6692046CA020077D4EC /* ShellScript */, 162 | ); 163 | buildRules = ( 164 | ); 165 | dependencies = ( 166 | ); 167 | name = RevealLoader; 168 | productName = RevealLoader; 169 | productReference = 86B1A66B2046CA020077D4EC /* RevealLoader.dylib */; 170 | productType = "com.apple.product-type.library.dynamic"; 171 | }; 172 | /* End PBXNativeTarget section */ 173 | 174 | /* Begin PBXProject section */ 175 | 86B1A6622046CA020077D4EC /* Project object */ = { 176 | isa = PBXProject; 177 | attributes = { 178 | LastUpgradeCheck = 0900; 179 | TargetAttributes = { 180 | 86B1A66A2046CA020077D4EC = { 181 | CreatedOnToolsVersion = 9.0; 182 | ProvisioningStyle = Automatic; 183 | }; 184 | }; 185 | }; 186 | buildConfigurationList = 86B1A6652046CA020077D4EC /* Build configuration list for PBXProject "RevealLoader" */; 187 | compatibilityVersion = "Xcode 8.0"; 188 | developmentRegion = en; 189 | hasScannedForEncodings = 0; 190 | knownRegions = ( 191 | en, 192 | ); 193 | mainGroup = 86B1A6612046CA020077D4EC; 194 | productRefGroup = 86B1A66C2046CA020077D4EC /* Products */; 195 | projectDirPath = ""; 196 | projectRoot = ""; 197 | targets = ( 198 | 86B1A66A2046CA020077D4EC /* RevealLoader */, 199 | ); 200 | }; 201 | /* End PBXProject section */ 202 | 203 | /* Begin PBXShellScriptBuildPhase section */ 204 | 86B1A6692046CA020077D4EC /* ShellScript */ = { 205 | isa = PBXShellScriptBuildPhase; 206 | buildActionMask = 2147483647; 207 | files = ( 208 | ); 209 | inputPaths = ( 210 | ); 211 | outputPaths = ( 212 | ); 213 | runOnlyForDeploymentPostprocessing = 0; 214 | shellPath = /bin/sh; 215 | shellScript = "/opt/MonkeyDev/bin/md --xcbp"; 216 | }; 217 | /* End PBXShellScriptBuildPhase section */ 218 | 219 | /* Begin PBXSourcesBuildPhase section */ 220 | 86B1A6662046CA020077D4EC /* Sources */ = { 221 | isa = PBXSourcesBuildPhase; 222 | buildActionMask = 2147483647; 223 | files = ( 224 | 86B1A67D2046CA020077D4EC /* RevealLoader.mm in Sources */, 225 | ); 226 | runOnlyForDeploymentPostprocessing = 0; 227 | }; 228 | /* End PBXSourcesBuildPhase section */ 229 | 230 | /* Begin XCBuildConfiguration section */ 231 | 86B1A6812046CA020077D4EC /* Release */ = { 232 | isa = XCBuildConfiguration; 233 | buildSettings = { 234 | CODE_SIGN_IDENTITY = "iPhone Developer"; 235 | COPY_PHASE_STRIP = YES; 236 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 237 | FRAMEWORK_SEARCH_PATHS = ( 238 | "$(MonkeyDevPath)/frameworks/**", 239 | "$(MonkeyDevTheosPath)/vendor/lib", 240 | ); 241 | GCC_C_LANGUAGE_STANDARD = gnu99; 242 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 243 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 244 | GCC_WARN_UNUSED_VARIABLE = YES; 245 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 246 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 247 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 248 | MonkeyDevPath = /opt/MonkeyDev; 249 | MonkeyDevTheosPath = /opt/theos; 250 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"RevealLoader\\\"\""; 251 | SDKROOT = iphoneos; 252 | TARGETED_DEVICE_FAMILY = "1,2"; 253 | VALIDATE_PRODUCT = YES; 254 | }; 255 | name = Release; 256 | }; 257 | 86B1A6822046CA020077D4EC /* Debug */ = { 258 | isa = XCBuildConfiguration; 259 | buildSettings = { 260 | CODE_SIGN_IDENTITY = "iPhone Developer"; 261 | COPY_PHASE_STRIP = NO; 262 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 263 | FRAMEWORK_SEARCH_PATHS = ( 264 | "$(MonkeyDevPath)/frameworks/**", 265 | "$(MonkeyDevTheosPath)/vendor/lib", 266 | ); 267 | GCC_C_LANGUAGE_STANDARD = gnu99; 268 | GCC_DYNAMIC_NO_PIC = NO; 269 | GCC_OPTIMIZATION_LEVEL = 0; 270 | GCC_PREPROCESSOR_DEFINITIONS = ( 271 | "DEBUG=1", 272 | "$(inherited)", 273 | ); 274 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 275 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 276 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 277 | GCC_WARN_UNUSED_VARIABLE = YES; 278 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 279 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 280 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 281 | MonkeyDevPath = /opt/MonkeyDev; 282 | MonkeyDevTheosPath = /opt/theos; 283 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"RevealLoader\\\"\""; 284 | SDKROOT = iphoneos; 285 | TARGETED_DEVICE_FAMILY = "1,2"; 286 | VALIDATE_PRODUCT = NO; 287 | }; 288 | name = Debug; 289 | }; 290 | 86B1A6842046CA020077D4EC /* Release */ = { 291 | isa = XCBuildConfiguration; 292 | buildSettings = { 293 | CLANG_ENABLE_OBJC_ARC = YES; 294 | CODE_SIGN_IDENTITY = ""; 295 | CODE_SIGN_STYLE = Automatic; 296 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 297 | DYLIB_COMPATIBILITY_VERSION = 1; 298 | DYLIB_CURRENT_VERSION = 1; 299 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 300 | GCC_PREFIX_HEADER = "RevealLoader/RevealLoader-Prefix.pch"; 301 | HEADER_SEARCH_PATHS = ( 302 | "$(MonkeyDevPath)/include", 303 | "$(MonkeyDevTheosPath)/vendor/include/**", 304 | ); 305 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 306 | MonkeyDevBuildPackageOnAnyBuild = NO; 307 | MonkeyDevClearUiCacheOnInstall = NO; 308 | MonkeyDevCopyOnBuild = NO; 309 | MonkeyDevDeviceIP = ""; 310 | MonkeyDevDevicePassword = monkey; 311 | MonkeyDevDevicePort = 2222; 312 | MonkeyDevInstallOnAnyBuild = YES; 313 | MonkeyDevInstallOnProfiling = YES; 314 | MonkeyDevkillProcessOnInstall = ""; 315 | PRODUCT_NAME = "$(TARGET_NAME)"; 316 | TARGETED_DEVICE_FAMILY = "1,2"; 317 | }; 318 | name = Release; 319 | }; 320 | 86B1A6852046CA020077D4EC /* Debug */ = { 321 | isa = XCBuildConfiguration; 322 | buildSettings = { 323 | CLANG_ENABLE_OBJC_ARC = YES; 324 | CODE_SIGN_IDENTITY = ""; 325 | CODE_SIGN_STYLE = Automatic; 326 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 327 | DYLIB_COMPATIBILITY_VERSION = 1; 328 | DYLIB_CURRENT_VERSION = 1; 329 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 330 | GCC_PREFIX_HEADER = "RevealLoader/RevealLoader-Prefix.pch"; 331 | HEADER_SEARCH_PATHS = ( 332 | "$(MonkeyDevPath)/include", 333 | "$(MonkeyDevTheosPath)/vendor/include/**", 334 | ); 335 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 336 | MonkeyDevBuildPackageOnAnyBuild = NO; 337 | MonkeyDevClearUiCacheOnInstall = NO; 338 | MonkeyDevCopyOnBuild = NO; 339 | MonkeyDevDeviceIP = ""; 340 | MonkeyDevDevicePassword = monkey; 341 | MonkeyDevDevicePort = 2222; 342 | MonkeyDevInstallOnAnyBuild = YES; 343 | MonkeyDevInstallOnProfiling = YES; 344 | MonkeyDevkillProcessOnInstall = ""; 345 | PRODUCT_NAME = "$(TARGET_NAME)"; 346 | TARGETED_DEVICE_FAMILY = "1,2"; 347 | }; 348 | name = Debug; 349 | }; 350 | /* End XCBuildConfiguration section */ 351 | 352 | /* Begin XCConfigurationList section */ 353 | 86B1A6652046CA020077D4EC /* Build configuration list for PBXProject "RevealLoader" */ = { 354 | isa = XCConfigurationList; 355 | buildConfigurations = ( 356 | 86B1A6812046CA020077D4EC /* Release */, 357 | 86B1A6822046CA020077D4EC /* Debug */, 358 | ); 359 | defaultConfigurationIsVisible = 0; 360 | defaultConfigurationName = Release; 361 | }; 362 | 86B1A6832046CA020077D4EC /* Build configuration list for PBXNativeTarget "RevealLoader" */ = { 363 | isa = XCConfigurationList; 364 | buildConfigurations = ( 365 | 86B1A6842046CA020077D4EC /* Release */, 366 | 86B1A6852046CA020077D4EC /* Debug */, 367 | ); 368 | defaultConfigurationIsVisible = 0; 369 | defaultConfigurationName = Release; 370 | }; 371 | /* End XCConfigurationList section */ 372 | }; 373 | rootObject = 86B1A6622046CA020077D4EC /* Project object */; 374 | } 375 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader.xcodeproj/project.xcworkspace/xcuserdata/alonemonkey.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/RevealLoader/RevealLoader.xcodeproj/project.xcworkspace/xcuserdata/alonemonkey.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader.xcodeproj/project.xcworkspace/xcuserdata/monkey.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/RevealLoader/RevealLoader.xcodeproj/project.xcworkspace/xcuserdata/monkey.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader.xcodeproj/xcuserdata/alonemonkey.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RevealLoader.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader.xcodeproj/xcuserdata/monkey.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | RevealLoader.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: RevealLoader 2 | Name: RevealLoader 3 | Version: 16.0 4 | Installed-Size: 1900 5 | Description: RevealLoader,使用reveal 16版本的动态库,自己替换/Library/RevealLoader/libReveal.dylib 6 | Section: System 7 | Depends: AppList 8 | Priority: optional 9 | Architecture: iphoneos-arm 10 | Maintainer: anonymous 11 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/DEBIAN/postinst: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | declare -a cydia 4 | cydia=($CYDIA) 5 | 6 | if [[ ${CYDIA+@} ]]; then 7 | eval "echo 'finish:restart' >&${cydia[0]}" 8 | else 9 | echo "Please respring your device after this!" 10 | fi 11 | 12 | exit 0 -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/Library/MobileSubstrate/DynamicLibraries/RevealLoader.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/RevealLoader/RevealLoader/Package/Library/MobileSubstrate/DynamicLibraries/RevealLoader.dylib -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/Library/MobileSubstrate/DynamicLibraries/RevealLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.apple.UIKit 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/Library/PreferenceLoader/Preferences/RevealLoader.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | entry 6 | 7 | cell 8 | PSLinkCell 9 | icon 10 | RevealLoaderIcon.png 11 | label 12 | RevealLoader 13 | 14 | items 15 | 16 | 17 | bundle 18 | AppList 19 | isController 20 | 1 21 | cell 22 | PSLinkCell 23 | label 24 | Enabled Applications 25 | ALSettingsPath 26 | /var/mobile/Library/Preferences/com.alonemonkey.RevealLoader.plist 27 | ALSettingsKeyPrefix 28 | RevealEnabled- 29 | ALSettingsDefaultValue 30 | 31 | ALAllowsSelection 32 | 1 33 | ALSectionDescriptors 34 | 35 | 36 | items 37 | 38 | footer-title 39 | Select which applications to load Reveal into. 40 | 41 | 42 | title 43 | User Applications 44 | predicate 45 | isSystemApplication = FALSE 46 | icon-size 47 | 29 48 | suppress-hidden-apps 49 | 1 50 | cell-class-name 51 | ALSwitchCell 52 | 53 | 54 | title 55 | System Applications 56 | predicate 57 | isSystemApplication = TRUE AND NOT (displayIdentifier IN {'com.iptm.bigboss.sbsettings', 'com.booleanmagic.overboard', 'eu.heinelt.ifile'}) 58 | icon-size 59 | 29 60 | suppress-hidden-apps 61 | 1 62 | cell-class-name 63 | ALSwitchCell 64 | 65 | 66 | 67 | 68 | cell 69 | PSGroupCell 70 | footerText 71 | This tweak is not officially supported. For more information about Reveal.app and runtime debugging see http://revealapp.com 72 | 73 | 74 | title 75 | RevealLoader 76 | 77 | 78 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/RevealLoader/RevealLoader/Package/Library/PreferenceLoader/Preferences/RevealLoaderIcon.png -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/RevealLoader/RevealLoader/Package/Library/PreferenceLoader/Preferences/RevealLoaderIcon@2x.png -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/Package/Library/RevealLoader/libReveal.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/RevealLoader/RevealLoader/Package/Library/RevealLoader/libReveal.dylib -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/RevealLoader-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'RevealLoader' target in the 'RevealLoader' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /source/RevealLoader/RevealLoader/RevealLoader.mm: -------------------------------------------------------------------------------- 1 | // 2 | // RevealLoader.mm 3 | // RevealLoader 4 | // 5 | // Created by AloneMonkey on 2018/2/28. 6 | // Copyright (c) 2018年 ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // CaptainHook by Ryan Petrich 10 | // see https://github.com/rpetrich/CaptainHook/ 11 | 12 | #import 13 | #import 14 | #import "CaptainHook/CaptainHook.h" 15 | 16 | #define SETTING_FILE_PARH @"/var/mobile/Library/Preferences/com.alonemonkey.RevealLoader.plist" 17 | #define REVEAL_LIBRARY_PATH @"/Library/RevealLoader/libReveal.dylib" 18 | 19 | CHConstructor 20 | { 21 | @autoreleasepool 22 | { 23 | NSDictionary *prefs = [NSDictionary dictionaryWithContentsOfFile:SETTING_FILE_PARH]; 24 | NSString *libraryPath = REVEAL_LIBRARY_PATH; 25 | 26 | if([[prefs objectForKey:[NSString stringWithFormat:@"RevealEnabled-%@", [[NSBundle mainBundle] bundleIdentifier]]] boolValue]) { 27 | if ([[NSFileManager defaultManager] fileExistsAtPath:libraryPath]){ 28 | dlopen([libraryPath UTF8String], RTLD_NOW); 29 | [[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil]; 30 | NSLog(@"RevealLoader loaded %@", libraryPath); 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 48; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 86C39C642043C9CC00DD3137 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 86C39C632043C9CC00DD3137 /* Foundation.framework */; }; 11 | 86C39C6C2043C9CC00DD3137 /* StoneTweak.mm in Sources */ = {isa = PBXBuildFile; fileRef = 86C39C6B2043C9CC00DD3137 /* StoneTweak.mm */; }; 12 | /* End PBXBuildFile section */ 13 | 14 | /* Begin PBXFileReference section */ 15 | 86C39C602043C9CB00DD3137 /* StoneTweak.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = StoneTweak.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 16 | 86C39C632043C9CC00DD3137 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 17 | 86C39C682043C9CC00DD3137 /* control */ = {isa = PBXFileReference; lastKnownFileType = text; name = control; path = Package/DEBIAN/control; sourceTree = ""; }; 18 | 86C39C6A2043C9CC00DD3137 /* StoneTweak-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "StoneTweak-Prefix.pch"; sourceTree = ""; }; 19 | 86C39C6B2043C9CC00DD3137 /* StoneTweak.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = StoneTweak.mm; sourceTree = ""; }; 20 | 86C39C702043C9CC00DD3137 /* StoneTweak.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = StoneTweak.plist; path = Package/Library/MobileSubstrate/DynamicLibraries/StoneTweak.plist; sourceTree = ""; }; 21 | /* End PBXFileReference section */ 22 | 23 | /* Begin PBXFrameworksBuildPhase section */ 24 | 86C39C5C2043C9CB00DD3137 /* Frameworks */ = { 25 | isa = PBXFrameworksBuildPhase; 26 | buildActionMask = 2147483647; 27 | files = ( 28 | 86C39C642043C9CC00DD3137 /* Foundation.framework in Frameworks */, 29 | ); 30 | runOnlyForDeploymentPostprocessing = 0; 31 | }; 32 | /* End PBXFrameworksBuildPhase section */ 33 | 34 | /* Begin PBXGroup section */ 35 | 86C39C562043C9CB00DD3137 = { 36 | isa = PBXGroup; 37 | children = ( 38 | 86C39C652043C9CC00DD3137 /* StoneTweak */, 39 | 86C39C622043C9CC00DD3137 /* Frameworks */, 40 | 86C39C612043C9CC00DD3137 /* Products */, 41 | ); 42 | sourceTree = ""; 43 | }; 44 | 86C39C612043C9CC00DD3137 /* Products */ = { 45 | isa = PBXGroup; 46 | children = ( 47 | 86C39C602043C9CB00DD3137 /* StoneTweak.dylib */, 48 | ); 49 | name = Products; 50 | sourceTree = ""; 51 | }; 52 | 86C39C622043C9CC00DD3137 /* Frameworks */ = { 53 | isa = PBXGroup; 54 | children = ( 55 | 86C39C632043C9CC00DD3137 /* Foundation.framework */, 56 | ); 57 | name = Frameworks; 58 | sourceTree = ""; 59 | }; 60 | 86C39C652043C9CC00DD3137 /* StoneTweak */ = { 61 | isa = PBXGroup; 62 | children = ( 63 | 86C39C6B2043C9CC00DD3137 /* StoneTweak.mm */, 64 | 86C39C662043C9CC00DD3137 /* Package */, 65 | 86C39C692043C9CC00DD3137 /* Supporting Files */, 66 | ); 67 | path = StoneTweak; 68 | sourceTree = ""; 69 | }; 70 | 86C39C662043C9CC00DD3137 /* Package */ = { 71 | isa = PBXGroup; 72 | children = ( 73 | 86C39C672043C9CC00DD3137 /* DEBIAN */, 74 | 86C39C6D2043C9CC00DD3137 /* Library */, 75 | ); 76 | name = Package; 77 | sourceTree = ""; 78 | }; 79 | 86C39C672043C9CC00DD3137 /* DEBIAN */ = { 80 | isa = PBXGroup; 81 | children = ( 82 | 86C39C682043C9CC00DD3137 /* control */, 83 | ); 84 | name = DEBIAN; 85 | sourceTree = ""; 86 | }; 87 | 86C39C692043C9CC00DD3137 /* Supporting Files */ = { 88 | isa = PBXGroup; 89 | children = ( 90 | 86C39C6A2043C9CC00DD3137 /* StoneTweak-Prefix.pch */, 91 | ); 92 | name = "Supporting Files"; 93 | sourceTree = ""; 94 | }; 95 | 86C39C6D2043C9CC00DD3137 /* Library */ = { 96 | isa = PBXGroup; 97 | children = ( 98 | 86C39C6E2043C9CC00DD3137 /* MobileSubstrate */, 99 | ); 100 | name = Library; 101 | sourceTree = ""; 102 | }; 103 | 86C39C6E2043C9CC00DD3137 /* MobileSubstrate */ = { 104 | isa = PBXGroup; 105 | children = ( 106 | 86C39C6F2043C9CC00DD3137 /* DynamicLibraries */, 107 | ); 108 | name = MobileSubstrate; 109 | sourceTree = ""; 110 | }; 111 | 86C39C6F2043C9CC00DD3137 /* DynamicLibraries */ = { 112 | isa = PBXGroup; 113 | children = ( 114 | 86C39C702043C9CC00DD3137 /* StoneTweak.plist */, 115 | ); 116 | name = DynamicLibraries; 117 | sourceTree = ""; 118 | }; 119 | /* End PBXGroup section */ 120 | 121 | /* Begin PBXHeadersBuildPhase section */ 122 | 86C39C5D2043C9CB00DD3137 /* Headers */ = { 123 | isa = PBXHeadersBuildPhase; 124 | buildActionMask = 2147483647; 125 | files = ( 126 | ); 127 | runOnlyForDeploymentPostprocessing = 0; 128 | }; 129 | /* End PBXHeadersBuildPhase section */ 130 | 131 | /* Begin PBXNativeTarget section */ 132 | 86C39C5F2043C9CB00DD3137 /* StoneTweak */ = { 133 | isa = PBXNativeTarget; 134 | buildConfigurationList = 86C39C732043C9CC00DD3137 /* Build configuration list for PBXNativeTarget "StoneTweak" */; 135 | buildPhases = ( 136 | 86C39C5B2043C9CB00DD3137 /* Sources */, 137 | 86C39C5C2043C9CB00DD3137 /* Frameworks */, 138 | 86C39C5D2043C9CB00DD3137 /* Headers */, 139 | 86C39C5E2043C9CB00DD3137 /* ShellScript */, 140 | ); 141 | buildRules = ( 142 | ); 143 | dependencies = ( 144 | ); 145 | name = StoneTweak; 146 | productName = StoneTweak; 147 | productReference = 86C39C602043C9CB00DD3137 /* StoneTweak.dylib */; 148 | productType = "com.apple.product-type.library.dynamic"; 149 | }; 150 | /* End PBXNativeTarget section */ 151 | 152 | /* Begin PBXProject section */ 153 | 86C39C572043C9CB00DD3137 /* Project object */ = { 154 | isa = PBXProject; 155 | attributes = { 156 | LastUpgradeCheck = 0900; 157 | TargetAttributes = { 158 | 86C39C5F2043C9CB00DD3137 = { 159 | CreatedOnToolsVersion = 9.0; 160 | ProvisioningStyle = Automatic; 161 | }; 162 | }; 163 | }; 164 | buildConfigurationList = 86C39C5A2043C9CB00DD3137 /* Build configuration list for PBXProject "StoneTweak" */; 165 | compatibilityVersion = "Xcode 8.0"; 166 | developmentRegion = en; 167 | hasScannedForEncodings = 0; 168 | knownRegions = ( 169 | en, 170 | ); 171 | mainGroup = 86C39C562043C9CB00DD3137; 172 | productRefGroup = 86C39C612043C9CC00DD3137 /* Products */; 173 | projectDirPath = ""; 174 | projectRoot = ""; 175 | targets = ( 176 | 86C39C5F2043C9CB00DD3137 /* StoneTweak */, 177 | ); 178 | }; 179 | /* End PBXProject section */ 180 | 181 | /* Begin PBXShellScriptBuildPhase section */ 182 | 86C39C5E2043C9CB00DD3137 /* ShellScript */ = { 183 | isa = PBXShellScriptBuildPhase; 184 | buildActionMask = 2147483647; 185 | files = ( 186 | ); 187 | inputPaths = ( 188 | ); 189 | outputPaths = ( 190 | ); 191 | runOnlyForDeploymentPostprocessing = 0; 192 | shellPath = /bin/sh; 193 | shellScript = "/opt/MonkeyDev/bin/md --xcbp"; 194 | }; 195 | /* End PBXShellScriptBuildPhase section */ 196 | 197 | /* Begin PBXSourcesBuildPhase section */ 198 | 86C39C5B2043C9CB00DD3137 /* Sources */ = { 199 | isa = PBXSourcesBuildPhase; 200 | buildActionMask = 2147483647; 201 | files = ( 202 | 86C39C6C2043C9CC00DD3137 /* StoneTweak.mm in Sources */, 203 | ); 204 | runOnlyForDeploymentPostprocessing = 0; 205 | }; 206 | /* End PBXSourcesBuildPhase section */ 207 | 208 | /* Begin XCBuildConfiguration section */ 209 | 86C39C712043C9CC00DD3137 /* Release */ = { 210 | isa = XCBuildConfiguration; 211 | buildSettings = { 212 | CODE_SIGN_IDENTITY = "iPhone Developer"; 213 | COPY_PHASE_STRIP = YES; 214 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 215 | FRAMEWORK_SEARCH_PATHS = ( 216 | "$(MonkeyDevPath)/frameworks/**", 217 | "$(MonkeyDevTheosPath)/vendor/lib", 218 | ); 219 | GCC_C_LANGUAGE_STANDARD = gnu99; 220 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 221 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 222 | GCC_WARN_UNUSED_VARIABLE = YES; 223 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 224 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 225 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 226 | MonkeyDevPath = /opt/MonkeyDev; 227 | MonkeyDevTheosPath = /opt/theos; 228 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"StoneTweak\\\"\""; 229 | SDKROOT = iphoneos; 230 | TARGETED_DEVICE_FAMILY = "1,2"; 231 | VALIDATE_PRODUCT = YES; 232 | }; 233 | name = Release; 234 | }; 235 | 86C39C722043C9CC00DD3137 /* Debug */ = { 236 | isa = XCBuildConfiguration; 237 | buildSettings = { 238 | CODE_SIGN_IDENTITY = "iPhone Developer"; 239 | COPY_PHASE_STRIP = NO; 240 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 241 | FRAMEWORK_SEARCH_PATHS = ( 242 | "$(MonkeyDevPath)/frameworks/**", 243 | "$(MonkeyDevTheosPath)/vendor/lib", 244 | ); 245 | GCC_C_LANGUAGE_STANDARD = gnu99; 246 | GCC_DYNAMIC_NO_PIC = NO; 247 | GCC_OPTIMIZATION_LEVEL = 0; 248 | GCC_PREPROCESSOR_DEFINITIONS = ( 249 | "DEBUG=1", 250 | "$(inherited)", 251 | ); 252 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 253 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 254 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 255 | GCC_WARN_UNUSED_VARIABLE = YES; 256 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 257 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 258 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 259 | MonkeyDevPath = /opt/MonkeyDev; 260 | MonkeyDevTheosPath = /opt/theos; 261 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"StoneTweak\\\"\""; 262 | SDKROOT = iphoneos; 263 | TARGETED_DEVICE_FAMILY = "1,2"; 264 | VALIDATE_PRODUCT = NO; 265 | }; 266 | name = Debug; 267 | }; 268 | 86C39C742043C9CC00DD3137 /* Release */ = { 269 | isa = XCBuildConfiguration; 270 | buildSettings = { 271 | CODE_SIGN_IDENTITY = ""; 272 | CODE_SIGN_STYLE = Automatic; 273 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 274 | DYLIB_COMPATIBILITY_VERSION = 1; 275 | DYLIB_CURRENT_VERSION = 1; 276 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 277 | GCC_PREFIX_HEADER = "StoneTweak/StoneTweak-Prefix.pch"; 278 | HEADER_SEARCH_PATHS = ( 279 | "$(MonkeyDevPath)/include", 280 | "$(MonkeyDevTheosPath)/vendor/include/**", 281 | ); 282 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 283 | MonkeyDevBuildPackageOnAnyBuild = NO; 284 | MonkeyDevClearUiCacheOnInstall = NO; 285 | MonkeyDevCopyOnBuild = NO; 286 | MonkeyDevDeviceIP = ""; 287 | MonkeyDevDevicePassword = alpine; 288 | MonkeyDevDevicePort = ""; 289 | MonkeyDevInstallOnAnyBuild = YES; 290 | MonkeyDevInstallOnProfiling = YES; 291 | MonkeyDevkillProcessOnInstall = Stone; 292 | PRODUCT_NAME = "$(TARGET_NAME)"; 293 | TARGETED_DEVICE_FAMILY = "1,2"; 294 | }; 295 | name = Release; 296 | }; 297 | 86C39C752043C9CC00DD3137 /* Debug */ = { 298 | isa = XCBuildConfiguration; 299 | buildSettings = { 300 | CODE_SIGN_IDENTITY = ""; 301 | CODE_SIGN_STYLE = Automatic; 302 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 303 | DYLIB_COMPATIBILITY_VERSION = 1; 304 | DYLIB_CURRENT_VERSION = 1; 305 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 306 | GCC_PREFIX_HEADER = "StoneTweak/StoneTweak-Prefix.pch"; 307 | HEADER_SEARCH_PATHS = ( 308 | "$(MonkeyDevPath)/include", 309 | "$(MonkeyDevTheosPath)/vendor/include/**", 310 | ); 311 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 312 | MonkeyDevBuildPackageOnAnyBuild = NO; 313 | MonkeyDevClearUiCacheOnInstall = NO; 314 | MonkeyDevCopyOnBuild = NO; 315 | MonkeyDevDeviceIP = ""; 316 | MonkeyDevDevicePassword = alpine; 317 | MonkeyDevDevicePort = ""; 318 | MonkeyDevInstallOnAnyBuild = YES; 319 | MonkeyDevInstallOnProfiling = YES; 320 | MonkeyDevkillProcessOnInstall = Stone; 321 | PRODUCT_NAME = "$(TARGET_NAME)"; 322 | TARGETED_DEVICE_FAMILY = "1,2"; 323 | }; 324 | name = Debug; 325 | }; 326 | /* End XCBuildConfiguration section */ 327 | 328 | /* Begin XCConfigurationList section */ 329 | 86C39C5A2043C9CB00DD3137 /* Build configuration list for PBXProject "StoneTweak" */ = { 330 | isa = XCConfigurationList; 331 | buildConfigurations = ( 332 | 86C39C712043C9CC00DD3137 /* Release */, 333 | 86C39C722043C9CC00DD3137 /* Debug */, 334 | ); 335 | defaultConfigurationIsVisible = 0; 336 | defaultConfigurationName = Release; 337 | }; 338 | 86C39C732043C9CC00DD3137 /* Build configuration list for PBXNativeTarget "StoneTweak" */ = { 339 | isa = XCConfigurationList; 340 | buildConfigurations = ( 341 | 86C39C742043C9CC00DD3137 /* Release */, 342 | 86C39C752043C9CC00DD3137 /* Debug */, 343 | ); 344 | defaultConfigurationIsVisible = 0; 345 | defaultConfigurationName = Release; 346 | }; 347 | /* End XCConfigurationList section */ 348 | }; 349 | rootObject = 86C39C572043C9CB00DD3137 /* Project object */; 350 | } 351 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak.xcodeproj/project.xcworkspace/xcuserdata/alonemonkey.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/StoneTweak/StoneTweak.xcodeproj/project.xcworkspace/xcuserdata/alonemonkey.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak.xcodeproj/xcuserdata/alonemonkey.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | StoneTweak.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak/Package/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.alonemonkey.stonetweak 2 | Name: StoneTweak 3 | Version: 1.0 4 | Installed-Size: 24 5 | Description: 去掉Stone越狱检测 6 | Section: Tweaks 7 | Priority: optional 8 | Architecture: iphoneos-arm 9 | Maintainer: AloneMonkey 10 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak/Package/Library/MobileSubstrate/DynamicLibraries/StoneTweak.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/StoneTweak/StoneTweak/Package/Library/MobileSubstrate/DynamicLibraries/StoneTweak.dylib -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak/Package/Library/MobileSubstrate/DynamicLibraries/StoneTweak.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.ntes.stone 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak/StoneTweak-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'StoneTweak' target in the 'StoneTweak' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /source/StoneTweak/StoneTweak/StoneTweak.mm: -------------------------------------------------------------------------------- 1 | // 2 | // StoneTweak.mm 3 | // StoneTweak 4 | // 5 | // Created by AloneMonkey on 2018/2/26. 6 | // Copyright (c) 2018年 ___ORGANIZATIONNAME___. All rights reserved. 7 | // 8 | 9 | // CaptainHook by Ryan Petrich 10 | // see https://github.com/rpetrich/CaptainHook/ 11 | 12 | #import 13 | #import "CaptainHook/CaptainHook.h" 14 | 15 | CHDeclareClass(YWSDevice); 16 | 17 | CHOptimizedMethod0(self, BOOL, YWSDevice, isJailbrokenDevice){ 18 | return NO; 19 | } 20 | 21 | CHConstructor{ 22 | @autoreleasepool{ 23 | CHLoadLateClass(YWSDevice); 24 | CHHook0(YWSDevice, isJailbrokenDevice); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 48; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 8C565B6E2041BC26002129C0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C565B6D2041BC26002129C0 /* Foundation.framework */; }; 11 | 8C565B8B2041BC36002129C0 /* WeChatServiceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B802041BC35002129C0 /* WeChatServiceManager.h */; }; 12 | 8C565B8C2041BC36002129C0 /* WeChatHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B812041BC35002129C0 /* WeChatHeader.h */; }; 13 | 8C565B8D2041BC36002129C0 /* WechatMapViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B822041BC35002129C0 /* WechatMapViewController.h */; }; 14 | 8C565B8E2041BC36002129C0 /* WechatPodForm.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B832041BC35002129C0 /* WechatPodForm.m */; }; 15 | 8C565B8F2041BC36002129C0 /* WeChatServiceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B842041BC35002129C0 /* WeChatServiceManager.m */; }; 16 | 8C565B902041BC36002129C0 /* WeChatStepHook.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B852041BC35002129C0 /* WeChatStepHook.m */; }; 17 | 8C565B912041BC36002129C0 /* WechatPodForm.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B862041BC35002129C0 /* WechatPodForm.h */; }; 18 | 8C565B922041BC36002129C0 /* WeChatMessageHook.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B872041BC35002129C0 /* WeChatMessageHook.m */; }; 19 | 8C565B932041BC36002129C0 /* WeChatLocationHook.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B882041BC36002129C0 /* WeChatLocationHook.m */; }; 20 | 8C565B942041BC36002129C0 /* WechatMapViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B892041BC36002129C0 /* WechatMapViewController.m */; }; 21 | 8C565B952041BC36002129C0 /* WeChatRequestHook.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B8A2041BC36002129C0 /* WeChatRequestHook.m */; }; 22 | 8C565BA62041BC40002129C0 /* FXForms.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B962041BC3D002129C0 /* FXForms.h */; }; 23 | 8C565BA72041BC40002129C0 /* MDConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B972041BC3E002129C0 /* MDConstants.m */; }; 24 | 8C565BA82041BC40002129C0 /* FXForms.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B982041BC3E002129C0 /* FXForms.m */; }; 25 | 8C565BA92041BC40002129C0 /* UIView+Frame.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B992041BC3E002129C0 /* UIView+Frame.h */; }; 26 | 8C565BAA2041BC40002129C0 /* UIColor+ColorUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B9A2041BC3E002129C0 /* UIColor+ColorUtils.h */; }; 27 | 8C565BAB2041BC40002129C0 /* MDSettingsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B9B2041BC3E002129C0 /* MDSettingsViewController.h */; }; 28 | 8C565BAC2041BC40002129C0 /* MDSettingCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B9C2041BC3E002129C0 /* MDSettingCenter.h */; }; 29 | 8C565BAD2041BC40002129C0 /* MDColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B9D2041BC3E002129C0 /* MDColor.h */; }; 30 | 8C565BAE2041BC40002129C0 /* SettingForm.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565B9E2041BC3E002129C0 /* SettingForm.h */; }; 31 | 8C565BAF2041BC40002129C0 /* UIColor+ColorUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565B9F2041BC3E002129C0 /* UIColor+ColorUtils.m */; }; 32 | 8C565BB02041BC40002129C0 /* UIView+Frame.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565BA02041BC3F002129C0 /* UIView+Frame.m */; }; 33 | 8C565BB12041BC40002129C0 /* MDConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565BA12041BC3F002129C0 /* MDConstants.h */; }; 34 | 8C565BB22041BC40002129C0 /* SettingForm.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565BA22041BC3F002129C0 /* SettingForm.m */; }; 35 | 8C565BB32041BC40002129C0 /* MDSuspendBall.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C565BA32041BC3F002129C0 /* MDSuspendBall.h */; }; 36 | 8C565BB42041BC40002129C0 /* MDSuspendBall.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565BA42041BC40002129C0 /* MDSuspendBall.m */; }; 37 | 8C565BB52041BC40002129C0 /* MDSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C565BA52041BC40002129C0 /* MDSettingsViewController.m */; }; 38 | 8C565BB72041BC9E002129C0 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C565BB62041BC9D002129C0 /* CoreLocation.framework */; }; 39 | 8C565BB92041BCA9002129C0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C565BB82041BCA9002129C0 /* UIKit.framework */; }; 40 | 8C565BBB2041BCB7002129C0 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C565BBA2041BCB7002129C0 /* MapKit.framework */; }; 41 | 8C565BBD2041BCC1002129C0 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C565BBC2041BCC1002129C0 /* CoreGraphics.framework */; }; 42 | /* End PBXBuildFile section */ 43 | 44 | /* Begin PBXFileReference section */ 45 | 8C565B6A2041BC26002129C0 /* WechatPod.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = WechatPod.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 46 | 8C565B6D2041BC26002129C0 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 47 | 8C565B722041BC26002129C0 /* control */ = {isa = PBXFileReference; lastKnownFileType = text; name = control; path = Package/DEBIAN/control; sourceTree = ""; }; 48 | 8C565B742041BC26002129C0 /* WechatPod-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WechatPod-Prefix.pch"; sourceTree = ""; }; 49 | 8C565B7A2041BC26002129C0 /* WechatPod.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = WechatPod.plist; path = Package/Library/MobileSubstrate/DynamicLibraries/WechatPod.plist; sourceTree = ""; }; 50 | 8C565B802041BC35002129C0 /* WeChatServiceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeChatServiceManager.h; sourceTree = ""; }; 51 | 8C565B812041BC35002129C0 /* WeChatHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeChatHeader.h; sourceTree = ""; }; 52 | 8C565B822041BC35002129C0 /* WechatMapViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WechatMapViewController.h; sourceTree = ""; }; 53 | 8C565B832041BC35002129C0 /* WechatPodForm.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WechatPodForm.m; sourceTree = ""; }; 54 | 8C565B842041BC35002129C0 /* WeChatServiceManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeChatServiceManager.m; sourceTree = ""; }; 55 | 8C565B852041BC35002129C0 /* WeChatStepHook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeChatStepHook.m; sourceTree = ""; }; 56 | 8C565B862041BC35002129C0 /* WechatPodForm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WechatPodForm.h; sourceTree = ""; }; 57 | 8C565B872041BC35002129C0 /* WeChatMessageHook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeChatMessageHook.m; sourceTree = ""; }; 58 | 8C565B882041BC36002129C0 /* WeChatLocationHook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeChatLocationHook.m; sourceTree = ""; }; 59 | 8C565B892041BC36002129C0 /* WechatMapViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WechatMapViewController.m; sourceTree = ""; }; 60 | 8C565B8A2041BC36002129C0 /* WeChatRequestHook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeChatRequestHook.m; sourceTree = ""; }; 61 | 8C565B962041BC3D002129C0 /* FXForms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FXForms.h; sourceTree = ""; }; 62 | 8C565B972041BC3E002129C0 /* MDConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDConstants.m; sourceTree = ""; }; 63 | 8C565B982041BC3E002129C0 /* FXForms.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FXForms.m; sourceTree = ""; }; 64 | 8C565B992041BC3E002129C0 /* UIView+Frame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Frame.h"; sourceTree = ""; }; 65 | 8C565B9A2041BC3E002129C0 /* UIColor+ColorUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+ColorUtils.h"; sourceTree = ""; }; 66 | 8C565B9B2041BC3E002129C0 /* MDSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDSettingsViewController.h; sourceTree = ""; }; 67 | 8C565B9C2041BC3E002129C0 /* MDSettingCenter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDSettingCenter.h; sourceTree = ""; }; 68 | 8C565B9D2041BC3E002129C0 /* MDColor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDColor.h; sourceTree = ""; }; 69 | 8C565B9E2041BC3E002129C0 /* SettingForm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingForm.h; sourceTree = ""; }; 70 | 8C565B9F2041BC3E002129C0 /* UIColor+ColorUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIColor+ColorUtils.m"; sourceTree = ""; }; 71 | 8C565BA02041BC3F002129C0 /* UIView+Frame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Frame.m"; sourceTree = ""; }; 72 | 8C565BA12041BC3F002129C0 /* MDConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDConstants.h; sourceTree = ""; }; 73 | 8C565BA22041BC3F002129C0 /* SettingForm.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingForm.m; sourceTree = ""; }; 74 | 8C565BA32041BC3F002129C0 /* MDSuspendBall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MDSuspendBall.h; sourceTree = ""; }; 75 | 8C565BA42041BC40002129C0 /* MDSuspendBall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDSuspendBall.m; sourceTree = ""; }; 76 | 8C565BA52041BC40002129C0 /* MDSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MDSettingsViewController.m; sourceTree = ""; }; 77 | 8C565BB62041BC9D002129C0 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; 78 | 8C565BB82041BCA9002129C0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 79 | 8C565BBA2041BCB7002129C0 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; }; 80 | 8C565BBC2041BCC1002129C0 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 81 | /* End PBXFileReference section */ 82 | 83 | /* Begin PBXFrameworksBuildPhase section */ 84 | 8C565B662041BC26002129C0 /* Frameworks */ = { 85 | isa = PBXFrameworksBuildPhase; 86 | buildActionMask = 2147483647; 87 | files = ( 88 | 8C565BBD2041BCC1002129C0 /* CoreGraphics.framework in Frameworks */, 89 | 8C565BBB2041BCB7002129C0 /* MapKit.framework in Frameworks */, 90 | 8C565BB92041BCA9002129C0 /* UIKit.framework in Frameworks */, 91 | 8C565BB72041BC9E002129C0 /* CoreLocation.framework in Frameworks */, 92 | 8C565B6E2041BC26002129C0 /* Foundation.framework in Frameworks */, 93 | ); 94 | runOnlyForDeploymentPostprocessing = 0; 95 | }; 96 | /* End PBXFrameworksBuildPhase section */ 97 | 98 | /* Begin PBXGroup section */ 99 | 8C565B602041BC26002129C0 = { 100 | isa = PBXGroup; 101 | children = ( 102 | 8C565B6F2041BC26002129C0 /* WechatPod */, 103 | 8C565B6C2041BC26002129C0 /* Frameworks */, 104 | 8C565B6B2041BC26002129C0 /* Products */, 105 | ); 106 | sourceTree = ""; 107 | }; 108 | 8C565B6B2041BC26002129C0 /* Products */ = { 109 | isa = PBXGroup; 110 | children = ( 111 | 8C565B6A2041BC26002129C0 /* WechatPod.dylib */, 112 | ); 113 | name = Products; 114 | sourceTree = ""; 115 | }; 116 | 8C565B6C2041BC26002129C0 /* Frameworks */ = { 117 | isa = PBXGroup; 118 | children = ( 119 | 8C565BBC2041BCC1002129C0 /* CoreGraphics.framework */, 120 | 8C565BBA2041BCB7002129C0 /* MapKit.framework */, 121 | 8C565BB82041BCA9002129C0 /* UIKit.framework */, 122 | 8C565BB62041BC9D002129C0 /* CoreLocation.framework */, 123 | 8C565B6D2041BC26002129C0 /* Foundation.framework */, 124 | ); 125 | name = Frameworks; 126 | sourceTree = ""; 127 | }; 128 | 8C565B6F2041BC26002129C0 /* WechatPod */ = { 129 | isa = PBXGroup; 130 | children = ( 131 | 8C565B962041BC3D002129C0 /* FXForms.h */, 132 | 8C565B982041BC3E002129C0 /* FXForms.m */, 133 | 8C565B9D2041BC3E002129C0 /* MDColor.h */, 134 | 8C565BA12041BC3F002129C0 /* MDConstants.h */, 135 | 8C565B972041BC3E002129C0 /* MDConstants.m */, 136 | 8C565B9C2041BC3E002129C0 /* MDSettingCenter.h */, 137 | 8C565B9B2041BC3E002129C0 /* MDSettingsViewController.h */, 138 | 8C565BA52041BC40002129C0 /* MDSettingsViewController.m */, 139 | 8C565BA32041BC3F002129C0 /* MDSuspendBall.h */, 140 | 8C565BA42041BC40002129C0 /* MDSuspendBall.m */, 141 | 8C565B9E2041BC3E002129C0 /* SettingForm.h */, 142 | 8C565BA22041BC3F002129C0 /* SettingForm.m */, 143 | 8C565B9A2041BC3E002129C0 /* UIColor+ColorUtils.h */, 144 | 8C565B9F2041BC3E002129C0 /* UIColor+ColorUtils.m */, 145 | 8C565B992041BC3E002129C0 /* UIView+Frame.h */, 146 | 8C565BA02041BC3F002129C0 /* UIView+Frame.m */, 147 | 8C565B812041BC35002129C0 /* WeChatHeader.h */, 148 | 8C565B882041BC36002129C0 /* WeChatLocationHook.m */, 149 | 8C565B822041BC35002129C0 /* WechatMapViewController.h */, 150 | 8C565B892041BC36002129C0 /* WechatMapViewController.m */, 151 | 8C565B872041BC35002129C0 /* WeChatMessageHook.m */, 152 | 8C565B862041BC35002129C0 /* WechatPodForm.h */, 153 | 8C565B832041BC35002129C0 /* WechatPodForm.m */, 154 | 8C565B8A2041BC36002129C0 /* WeChatRequestHook.m */, 155 | 8C565B802041BC35002129C0 /* WeChatServiceManager.h */, 156 | 8C565B842041BC35002129C0 /* WeChatServiceManager.m */, 157 | 8C565B852041BC35002129C0 /* WeChatStepHook.m */, 158 | 8C565B702041BC26002129C0 /* Package */, 159 | 8C565B732041BC26002129C0 /* Supporting Files */, 160 | ); 161 | path = WechatPod; 162 | sourceTree = ""; 163 | }; 164 | 8C565B702041BC26002129C0 /* Package */ = { 165 | isa = PBXGroup; 166 | children = ( 167 | 8C565B712041BC26002129C0 /* DEBIAN */, 168 | 8C565B772041BC26002129C0 /* Library */, 169 | ); 170 | name = Package; 171 | sourceTree = ""; 172 | }; 173 | 8C565B712041BC26002129C0 /* DEBIAN */ = { 174 | isa = PBXGroup; 175 | children = ( 176 | 8C565B722041BC26002129C0 /* control */, 177 | ); 178 | name = DEBIAN; 179 | sourceTree = ""; 180 | }; 181 | 8C565B732041BC26002129C0 /* Supporting Files */ = { 182 | isa = PBXGroup; 183 | children = ( 184 | 8C565B742041BC26002129C0 /* WechatPod-Prefix.pch */, 185 | ); 186 | name = "Supporting Files"; 187 | sourceTree = ""; 188 | }; 189 | 8C565B772041BC26002129C0 /* Library */ = { 190 | isa = PBXGroup; 191 | children = ( 192 | 8C565B782041BC26002129C0 /* MobileSubstrate */, 193 | ); 194 | name = Library; 195 | sourceTree = ""; 196 | }; 197 | 8C565B782041BC26002129C0 /* MobileSubstrate */ = { 198 | isa = PBXGroup; 199 | children = ( 200 | 8C565B792041BC26002129C0 /* DynamicLibraries */, 201 | ); 202 | name = MobileSubstrate; 203 | sourceTree = ""; 204 | }; 205 | 8C565B792041BC26002129C0 /* DynamicLibraries */ = { 206 | isa = PBXGroup; 207 | children = ( 208 | 8C565B7A2041BC26002129C0 /* WechatPod.plist */, 209 | ); 210 | name = DynamicLibraries; 211 | sourceTree = ""; 212 | }; 213 | /* End PBXGroup section */ 214 | 215 | /* Begin PBXHeadersBuildPhase section */ 216 | 8C565B672041BC26002129C0 /* Headers */ = { 217 | isa = PBXHeadersBuildPhase; 218 | buildActionMask = 2147483647; 219 | files = ( 220 | 8C565BAA2041BC40002129C0 /* UIColor+ColorUtils.h in Headers */, 221 | 8C565BAB2041BC40002129C0 /* MDSettingsViewController.h in Headers */, 222 | 8C565B912041BC36002129C0 /* WechatPodForm.h in Headers */, 223 | 8C565B8B2041BC36002129C0 /* WeChatServiceManager.h in Headers */, 224 | 8C565BA62041BC40002129C0 /* FXForms.h in Headers */, 225 | 8C565BB12041BC40002129C0 /* MDConstants.h in Headers */, 226 | 8C565B8C2041BC36002129C0 /* WeChatHeader.h in Headers */, 227 | 8C565BB32041BC40002129C0 /* MDSuspendBall.h in Headers */, 228 | 8C565B8D2041BC36002129C0 /* WechatMapViewController.h in Headers */, 229 | 8C565BAE2041BC40002129C0 /* SettingForm.h in Headers */, 230 | 8C565BA92041BC40002129C0 /* UIView+Frame.h in Headers */, 231 | 8C565BAC2041BC40002129C0 /* MDSettingCenter.h in Headers */, 232 | 8C565BAD2041BC40002129C0 /* MDColor.h in Headers */, 233 | ); 234 | runOnlyForDeploymentPostprocessing = 0; 235 | }; 236 | /* End PBXHeadersBuildPhase section */ 237 | 238 | /* Begin PBXNativeTarget section */ 239 | 8C565B692041BC26002129C0 /* WechatPod */ = { 240 | isa = PBXNativeTarget; 241 | buildConfigurationList = 8C565B7D2041BC26002129C0 /* Build configuration list for PBXNativeTarget "WechatPod" */; 242 | buildPhases = ( 243 | 8C565B652041BC26002129C0 /* Sources */, 244 | 8C565B662041BC26002129C0 /* Frameworks */, 245 | 8C565B672041BC26002129C0 /* Headers */, 246 | 8C565B682041BC26002129C0 /* ShellScript */, 247 | ); 248 | buildRules = ( 249 | ); 250 | dependencies = ( 251 | ); 252 | name = WechatPod; 253 | productName = WechatPod; 254 | productReference = 8C565B6A2041BC26002129C0 /* WechatPod.dylib */; 255 | productType = "com.apple.product-type.library.dynamic"; 256 | }; 257 | /* End PBXNativeTarget section */ 258 | 259 | /* Begin PBXProject section */ 260 | 8C565B612041BC26002129C0 /* Project object */ = { 261 | isa = PBXProject; 262 | attributes = { 263 | LastUpgradeCheck = 0920; 264 | TargetAttributes = { 265 | 8C565B692041BC26002129C0 = { 266 | CreatedOnToolsVersion = 9.2; 267 | ProvisioningStyle = Automatic; 268 | }; 269 | }; 270 | }; 271 | buildConfigurationList = 8C565B642041BC26002129C0 /* Build configuration list for PBXProject "WechatPod" */; 272 | compatibilityVersion = "Xcode 8.0"; 273 | developmentRegion = en; 274 | hasScannedForEncodings = 0; 275 | knownRegions = ( 276 | en, 277 | ); 278 | mainGroup = 8C565B602041BC26002129C0; 279 | productRefGroup = 8C565B6B2041BC26002129C0 /* Products */; 280 | projectDirPath = ""; 281 | projectRoot = ""; 282 | targets = ( 283 | 8C565B692041BC26002129C0 /* WechatPod */, 284 | ); 285 | }; 286 | /* End PBXProject section */ 287 | 288 | /* Begin PBXShellScriptBuildPhase section */ 289 | 8C565B682041BC26002129C0 /* ShellScript */ = { 290 | isa = PBXShellScriptBuildPhase; 291 | buildActionMask = 2147483647; 292 | files = ( 293 | ); 294 | inputPaths = ( 295 | ); 296 | outputPaths = ( 297 | ); 298 | runOnlyForDeploymentPostprocessing = 0; 299 | shellPath = /bin/sh; 300 | shellScript = "/opt/MonkeyDev/bin/md --xcbp"; 301 | }; 302 | /* End PBXShellScriptBuildPhase section */ 303 | 304 | /* Begin PBXSourcesBuildPhase section */ 305 | 8C565B652041BC26002129C0 /* Sources */ = { 306 | isa = PBXSourcesBuildPhase; 307 | buildActionMask = 2147483647; 308 | files = ( 309 | 8C565BB42041BC40002129C0 /* MDSuspendBall.m in Sources */, 310 | 8C565BB02041BC40002129C0 /* UIView+Frame.m in Sources */, 311 | 8C565B922041BC36002129C0 /* WeChatMessageHook.m in Sources */, 312 | 8C565B902041BC36002129C0 /* WeChatStepHook.m in Sources */, 313 | 8C565B932041BC36002129C0 /* WeChatLocationHook.m in Sources */, 314 | 8C565B952041BC36002129C0 /* WeChatRequestHook.m in Sources */, 315 | 8C565BA72041BC40002129C0 /* MDConstants.m in Sources */, 316 | 8C565B942041BC36002129C0 /* WechatMapViewController.m in Sources */, 317 | 8C565BB52041BC40002129C0 /* MDSettingsViewController.m in Sources */, 318 | 8C565BA82041BC40002129C0 /* FXForms.m in Sources */, 319 | 8C565B8E2041BC36002129C0 /* WechatPodForm.m in Sources */, 320 | 8C565BAF2041BC40002129C0 /* UIColor+ColorUtils.m in Sources */, 321 | 8C565BB22041BC40002129C0 /* SettingForm.m in Sources */, 322 | 8C565B8F2041BC36002129C0 /* WeChatServiceManager.m in Sources */, 323 | ); 324 | runOnlyForDeploymentPostprocessing = 0; 325 | }; 326 | /* End PBXSourcesBuildPhase section */ 327 | 328 | /* Begin XCBuildConfiguration section */ 329 | 8C565B7B2041BC26002129C0 /* Release */ = { 330 | isa = XCBuildConfiguration; 331 | buildSettings = { 332 | CODE_SIGN_IDENTITY = "iPhone Developer"; 333 | COPY_PHASE_STRIP = YES; 334 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 335 | FRAMEWORK_SEARCH_PATHS = ( 336 | "$(MonkeyDevPath)/frameworks/**", 337 | "$(MonkeyDevTheosPath)/vendor/lib", 338 | ); 339 | GCC_C_LANGUAGE_STANDARD = gnu99; 340 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 341 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 342 | GCC_WARN_UNUSED_VARIABLE = YES; 343 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 344 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 345 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 346 | MonkeyDevPath = /opt/MonkeyDev; 347 | MonkeyDevTheosPath = /opt/theos; 348 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"WechatPod\\\"\""; 349 | SDKROOT = iphoneos; 350 | TARGETED_DEVICE_FAMILY = "1,2"; 351 | VALIDATE_PRODUCT = YES; 352 | }; 353 | name = Release; 354 | }; 355 | 8C565B7C2041BC26002129C0 /* Debug */ = { 356 | isa = XCBuildConfiguration; 357 | buildSettings = { 358 | CODE_SIGN_IDENTITY = "iPhone Developer"; 359 | COPY_PHASE_STRIP = NO; 360 | EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES = "*.nib *.lproj *.gch (*) .DS_Store CVS .svn .git .hg *.xcodeproj *.xcode *.pbproj *.pbxproj"; 361 | FRAMEWORK_SEARCH_PATHS = ( 362 | "$(MonkeyDevPath)/frameworks/**", 363 | "$(MonkeyDevTheosPath)/vendor/lib", 364 | ); 365 | GCC_C_LANGUAGE_STANDARD = gnu99; 366 | GCC_DYNAMIC_NO_PIC = NO; 367 | GCC_OPTIMIZATION_LEVEL = 0; 368 | GCC_PREPROCESSOR_DEFINITIONS = ( 369 | "DEBUG=1", 370 | "$(inherited)", 371 | ); 372 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 373 | GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; 374 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 375 | GCC_WARN_UNUSED_VARIABLE = YES; 376 | HEADER_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/include/**"; 377 | IPHONEOS_DEPLOYMENT_TARGET = 8.0; 378 | LIBRARY_SEARCH_PATHS = "$(MonkeyDevTheosPath)/vendor/lib/**"; 379 | MonkeyDevPath = /opt/MonkeyDev; 380 | MonkeyDevTheosPath = /opt/theos; 381 | OTHER_CFLAGS = "-DTHEOS_INSTANCE_NAME=\"\\\"WechatPod\\\"\""; 382 | SDKROOT = iphoneos; 383 | TARGETED_DEVICE_FAMILY = "1,2"; 384 | VALIDATE_PRODUCT = NO; 385 | }; 386 | name = Debug; 387 | }; 388 | 8C565B7E2041BC26002129C0 /* Release */ = { 389 | isa = XCBuildConfiguration; 390 | buildSettings = { 391 | CLANG_ENABLE_OBJC_ARC = YES; 392 | CODE_SIGN_IDENTITY = ""; 393 | CODE_SIGN_STYLE = Automatic; 394 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 395 | DYLIB_COMPATIBILITY_VERSION = 1; 396 | DYLIB_CURRENT_VERSION = 1; 397 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 398 | GCC_PREFIX_HEADER = "WechatPod/WechatPod-Prefix.pch"; 399 | HEADER_SEARCH_PATHS = ( 400 | "$(MonkeyDevPath)/include", 401 | "$(MonkeyDevTheosPath)/vendor/include/**", 402 | ); 403 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 404 | MonkeyDevBuildPackageOnAnyBuild = NO; 405 | MonkeyDevClearUiCacheOnInstall = NO; 406 | MonkeyDevCopyOnBuild = NO; 407 | MonkeyDevDeviceIP = ""; 408 | MonkeyDevDevicePassword = alpine; 409 | MonkeyDevDevicePort = 2222; 410 | MonkeyDevInstallOnAnyBuild = NO; 411 | MonkeyDevInstallOnProfiling = YES; 412 | MonkeyDevkillProcessOnInstall = WeChat; 413 | PRODUCT_NAME = "$(TARGET_NAME)"; 414 | TARGETED_DEVICE_FAMILY = "1,2"; 415 | }; 416 | name = Release; 417 | }; 418 | 8C565B7F2041BC26002129C0 /* Debug */ = { 419 | isa = XCBuildConfiguration; 420 | buildSettings = { 421 | CLANG_ENABLE_OBJC_ARC = YES; 422 | CODE_SIGN_IDENTITY = ""; 423 | CODE_SIGN_STYLE = Automatic; 424 | DEVELOPMENT_TEAM = 9XQEPG2J2J; 425 | DYLIB_COMPATIBILITY_VERSION = 1; 426 | DYLIB_CURRENT_VERSION = 1; 427 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 428 | GCC_PREFIX_HEADER = "WechatPod/WechatPod-Prefix.pch"; 429 | HEADER_SEARCH_PATHS = ( 430 | "$(MonkeyDevPath)/include", 431 | "$(MonkeyDevTheosPath)/vendor/include/**", 432 | ); 433 | INSTALL_PATH = /Library/MobileSubstrate/DynamicLibraries; 434 | MonkeyDevBuildPackageOnAnyBuild = NO; 435 | MonkeyDevClearUiCacheOnInstall = NO; 436 | MonkeyDevCopyOnBuild = NO; 437 | MonkeyDevDeviceIP = ""; 438 | MonkeyDevDevicePassword = alpine; 439 | MonkeyDevDevicePort = 2222; 440 | MonkeyDevInstallOnAnyBuild = NO; 441 | MonkeyDevInstallOnProfiling = YES; 442 | MonkeyDevkillProcessOnInstall = WeChat; 443 | PRODUCT_NAME = "$(TARGET_NAME)"; 444 | TARGETED_DEVICE_FAMILY = "1,2"; 445 | }; 446 | name = Debug; 447 | }; 448 | /* End XCBuildConfiguration section */ 449 | 450 | /* Begin XCConfigurationList section */ 451 | 8C565B642041BC26002129C0 /* Build configuration list for PBXProject "WechatPod" */ = { 452 | isa = XCConfigurationList; 453 | buildConfigurations = ( 454 | 8C565B7B2041BC26002129C0 /* Release */, 455 | 8C565B7C2041BC26002129C0 /* Debug */, 456 | ); 457 | defaultConfigurationIsVisible = 0; 458 | defaultConfigurationName = Release; 459 | }; 460 | 8C565B7D2041BC26002129C0 /* Build configuration list for PBXNativeTarget "WechatPod" */ = { 461 | isa = XCConfigurationList; 462 | buildConfigurations = ( 463 | 8C565B7E2041BC26002129C0 /* Release */, 464 | 8C565B7F2041BC26002129C0 /* Debug */, 465 | ); 466 | defaultConfigurationIsVisible = 0; 467 | defaultConfigurationName = Release; 468 | }; 469 | /* End XCConfigurationList section */ 470 | }; 471 | rootObject = 8C565B612041BC26002129C0 /* Project object */; 472 | } 473 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod.xcodeproj/project.xcworkspace/xcuserdata/monkey.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/WechatPod/WechatPod.xcodeproj/project.xcworkspace/xcuserdata/monkey.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /source/WechatPod/WechatPod.xcodeproj/xcuserdata/monkey.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 8 | 20 | 21 | 22 | 24 | 36 | 37 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod.xcodeproj/xcuserdata/monkey.xcuserdatad/xcschemes/WechatPod.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 31 | 32 | 33 | 34 | 35 | 36 | 48 | 51 | 52 | 53 | 59 | 60 | 61 | 62 | 63 | 64 | 70 | 71 | 77 | 78 | 79 | 80 | 82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod.xcodeproj/xcuserdata/monkey.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | WechatPod.xcscheme 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | 8C565B692041BC26002129C0 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/FXForms.h: -------------------------------------------------------------------------------- 1 | // 2 | // FXForms.h 3 | // 4 | // Version 1.2.14 5 | // 6 | // Created by Nick Lockwood on 13/02/2014. 7 | // Copyright (c) 2014 Charcoal Design. All rights reserved. 8 | // 9 | // Distributed under the permissive zlib License 10 | // Get the latest version from here: 11 | // 12 | // https://github.com/nicklockwood/FXForms 13 | // 14 | // This software is provided 'as-is', without any express or implied 15 | // warranty. In no event will the authors be held liable for any damages 16 | // arising from the use of this software. 17 | // 18 | // Permission is granted to anyone to use this software for any purpose, 19 | // including commercial applications, and to alter it and redistribute it 20 | // freely, subject to the following restrictions: 21 | // 22 | // 1. The origin of this software must not be misrepresented; you must not 23 | // claim that you wrote the original software. If you use this software 24 | // in a product, an acknowledgment in the product documentation would be 25 | // appreciated but is not required. 26 | // 27 | // 2. Altered source versions must be plainly marked as such, and must not be 28 | // misrepresented as being the original software. 29 | // 30 | // 3. This notice may not be removed or altered from any source distribution. 31 | // 32 | 33 | #pragma clang diagnostic push 34 | #pragma clang diagnostic ignored "-Wobjc-missing-property-synthesis" 35 | #pragma clang diagnostic ignored "-Wmissing-variable-declarations" 36 | 37 | 38 | #import 39 | 40 | 41 | UIKIT_EXTERN NSString *const FXFormFieldKey; //key 42 | UIKIT_EXTERN NSString *const FXFormFieldType; //type 43 | UIKIT_EXTERN NSString *const FXFormFieldClass; //class 44 | UIKIT_EXTERN NSString *const FXFormFieldCell; //cell 45 | UIKIT_EXTERN NSString *const FXFormFieldTitle; //title 46 | UIKIT_EXTERN NSString *const FXFormFieldPlaceholder; //placeholder 47 | UIKIT_EXTERN NSString *const FXFormFieldDefaultValue; //default 48 | UIKIT_EXTERN NSString *const FXFormFieldOptions; //options 49 | UIKIT_EXTERN NSString *const FXFormFieldTemplate; //template 50 | UIKIT_EXTERN NSString *const FXFormFieldValueTransformer; //valueTransformer 51 | UIKIT_EXTERN NSString *const FXFormFieldAction; //action 52 | UIKIT_EXTERN NSString *const FXFormFieldSegue; //segue 53 | UIKIT_EXTERN NSString *const FXFormFieldHeader; //header 54 | UIKIT_EXTERN NSString *const FXFormFieldFooter; //footer 55 | UIKIT_EXTERN NSString *const FXFormFieldInline; //inline 56 | UIKIT_EXTERN NSString *const FXFormFieldSortable; //sortable 57 | UIKIT_EXTERN NSString *const FXFormFieldViewController; //viewController 58 | 59 | UIKIT_EXTERN NSString *const FXFormFieldTypeDefault; //default 60 | UIKIT_EXTERN NSString *const FXFormFieldTypeLabel; //label 61 | UIKIT_EXTERN NSString *const FXFormFieldTypeText; //text 62 | UIKIT_EXTERN NSString *const FXFormFieldTypeLongText; //longtext 63 | UIKIT_EXTERN NSString *const FXFormFieldTypeURL; //url 64 | UIKIT_EXTERN NSString *const FXFormFieldTypeEmail; //email 65 | UIKIT_EXTERN NSString *const FXFormFieldTypePhone; //phone 66 | UIKIT_EXTERN NSString *const FXFormFieldTypePassword; //password 67 | UIKIT_EXTERN NSString *const FXFormFieldTypeNumber; //number 68 | UIKIT_EXTERN NSString *const FXFormFieldTypeInteger; //integer 69 | UIKIT_EXTERN NSString *const FXFormFieldTypeUnsigned; //unsigned 70 | UIKIT_EXTERN NSString *const FXFormFieldTypeFloat; //float 71 | UIKIT_EXTERN NSString *const FXFormFieldTypeBitfield; //bitfield 72 | UIKIT_EXTERN NSString *const FXFormFieldTypeBoolean; //boolean 73 | UIKIT_EXTERN NSString *const FXFormFieldTypeOption; //option 74 | UIKIT_EXTERN NSString *const FXFormFieldTypeDate; //date 75 | UIKIT_EXTERN NSString *const FXFormFieldTypeTime; //time 76 | UIKIT_EXTERN NSString *const FXFormFieldTypeDateTime; //datetime 77 | UIKIT_EXTERN NSString *const FXFormFieldTypeImage; //image 78 | 79 | 80 | #pragma mark - 81 | #pragma mark Models 82 | 83 | 84 | @interface NSObject (FXForms) 85 | 86 | - (NSString *)fieldDescription; 87 | 88 | @end 89 | 90 | 91 | @protocol FXForm 92 | @optional 93 | 94 | - (NSArray *)fields; 95 | - (NSArray *)extraFields; 96 | - (NSArray *)excludedFields; 97 | 98 | // informal protocol: 99 | 100 | // - (NSDictionary *)Field 101 | // - (NSString *)FieldDescription 102 | 103 | @end 104 | 105 | 106 | @interface FXFormField : NSObject 107 | 108 | @property (nonatomic, readonly) id form; 109 | @property (nonatomic, readonly) NSString *key; 110 | @property (nonatomic, readonly) NSString *type; 111 | @property (nonatomic, readonly) NSString *title; 112 | @property (nonatomic, readonly) id placeholder; 113 | @property (nonatomic, readonly) NSDictionary *fieldTemplate; 114 | @property (nonatomic, readonly) BOOL isSortable; 115 | @property (nonatomic, readonly) BOOL isInline; 116 | @property (nonatomic, readonly) Class valueClass; 117 | @property (nonatomic, readonly) id viewController; 118 | @property (nonatomic, readonly) void (^action)(id sender); 119 | @property (nonatomic, readonly) id segue; 120 | @property (nonatomic, strong) id value; 121 | 122 | - (NSUInteger)optionCount; 123 | - (id)optionAtIndex:(NSUInteger)index; 124 | - (NSUInteger)indexOfOption:(id)option; 125 | - (NSString *)optionDescriptionAtIndex:(NSUInteger)index; 126 | - (void)setOptionSelected:(BOOL)selected atIndex:(NSUInteger)index; 127 | - (BOOL)isOptionSelectedAtIndex:(NSUInteger)index; 128 | 129 | @end 130 | 131 | 132 | #pragma mark - 133 | #pragma mark Controllers 134 | 135 | 136 | @protocol FXFormControllerDelegate 137 | 138 | @end 139 | 140 | 141 | @interface FXFormController : NSObject 142 | 143 | @property (nonatomic, strong) IBOutlet UITableView *tableView; 144 | @property (nonatomic, strong) FXFormController *parentFormController; 145 | @property (nonatomic, weak) id delegate; 146 | @property (nonatomic, strong) id form; 147 | 148 | - (NSUInteger)numberOfSections; 149 | - (NSUInteger)numberOfFieldsInSection:(NSUInteger)section; 150 | - (FXFormField *)fieldForIndexPath:(NSIndexPath *)indexPath; 151 | - (NSIndexPath *)indexPathForField:(FXFormField *)field; 152 | - (void)enumerateFieldsWithBlock:(void (^)(FXFormField *field, NSIndexPath *indexPath))block; 153 | 154 | - (Class)cellClassForField:(FXFormField *)field; 155 | - (void)registerDefaultFieldCellClass:(Class)cellClass; 156 | - (void)registerCellClass:(Class)cellClass forFieldType:(NSString *)fieldType; 157 | - (void)registerCellClass:(Class)cellClass forFieldClass:(Class)fieldClass; 158 | 159 | - (Class)viewControllerClassForField:(FXFormField *)field; 160 | - (void)registerDefaultViewControllerClass:(Class)controllerClass; 161 | - (void)registerViewControllerClass:(Class)controllerClass forFieldType:(NSString *)fieldType; 162 | - (void)registerViewControllerClass:(Class)controllerClass forFieldClass:(Class)fieldClass; 163 | 164 | 165 | @end 166 | 167 | 168 | @protocol FXFormFieldViewController 169 | 170 | @property (nonatomic, strong) FXFormField *field; 171 | 172 | @end 173 | 174 | 175 | @interface FXFormViewController : UIViewController 176 | 177 | @property (nonatomic, readonly) FXFormController *formController; 178 | @property (nonatomic, strong) IBOutlet UITableView *tableView; 179 | 180 | @end 181 | 182 | 183 | #pragma mark - 184 | #pragma mark Views 185 | 186 | 187 | @protocol FXFormFieldCell 188 | 189 | @property (nonatomic, strong) FXFormField *field; 190 | 191 | @optional 192 | 193 | + (CGFloat)heightForField:(FXFormField *)field width:(CGFloat)width; 194 | - (void)didSelectWithTableView:(UITableView *)tableView 195 | controller:(UIViewController *)controller; 196 | @end 197 | 198 | 199 | @interface FXFormBaseCell : UITableViewCell 200 | 201 | @property (nonatomic, readonly) UITableViewCell *nextCell; 202 | 203 | - (void)setUp; 204 | - (void)update; 205 | - (void)didSelectWithTableView:(UITableView *)tableView 206 | controller:(UIViewController *)controller; 207 | 208 | @end 209 | 210 | 211 | @interface FXFormDefaultCell : FXFormBaseCell 212 | 213 | @end 214 | 215 | 216 | @interface FXFormTextFieldCell : FXFormBaseCell 217 | 218 | @property (nonatomic, readonly) UITextField *textField; 219 | 220 | @end 221 | 222 | 223 | @interface FXFormTextViewCell : FXFormBaseCell 224 | 225 | @property (nonatomic, readonly) UITextView *textView; 226 | 227 | @end 228 | 229 | 230 | @interface FXFormSwitchCell : FXFormBaseCell 231 | 232 | @property (nonatomic, readonly) UISwitch *switchControl; 233 | 234 | @end 235 | 236 | 237 | @interface FXFormStepperCell : FXFormBaseCell 238 | 239 | @property (nonatomic, readonly) UIStepper *stepper; 240 | 241 | @end 242 | 243 | 244 | @interface FXFormSliderCell : FXFormBaseCell 245 | 246 | @property (nonatomic, readonly) UISlider *slider; 247 | 248 | @end 249 | 250 | 251 | @interface FXFormDatePickerCell : FXFormBaseCell 252 | 253 | @property (nonatomic, readonly) UIDatePicker *datePicker; 254 | 255 | @end 256 | 257 | 258 | @interface FXFormImagePickerCell : FXFormBaseCell 259 | 260 | @property (nonatomic, readonly) UIImageView *imagePickerView; 261 | @property (nonatomic, readonly) UIImagePickerController *imagePickerController; 262 | 263 | @end 264 | 265 | 266 | @interface FXFormOptionPickerCell : FXFormBaseCell 267 | 268 | @property (nonatomic, readonly) UIPickerView *pickerView; 269 | 270 | @end 271 | 272 | 273 | @interface FXFormOptionSegmentsCell : FXFormBaseCell 274 | 275 | @property (nonatomic, readonly) UISegmentedControl *segmentedControl; 276 | 277 | @end 278 | 279 | 280 | #pragma clang diagnostic pop 281 | 282 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDColor.h: -------------------------------------------------------------------------------- 1 | // 2 | // MDColor.h 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/26. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #ifndef PluginColor_h 10 | #define PluginColor_h 11 | #import "UIColor+ColorUtils.h" 12 | 13 | #define MDColorWhite [UIColor colorWithRGBValue:0xFFFFFF] 14 | #define MDColorBlack [UIColor colorWithRGBValue:0x000000] 15 | #define MDColorGray [UIColor grayColor] 16 | #define MDColorClear [UIColor clearColor] 17 | #define MDColorBlue [UIColor blueColor] 18 | #define MDColorYellow [UIColor yellowColor] 19 | #define MDColorRed [UIColor redColor] 20 | 21 | #define MDColorBackGround [UIColor colorWithRGBValue:0xEFEFF4] 22 | 23 | #define MDColorSeparatorColor [UIColor colorWithRGBValue:0xE2E2E2] 24 | #define MDColorDeepLine [UIColor colorWithRGBValue:0x4384d9] 25 | 26 | #define MDColorCellTitle [UIColor colorWithRGBValue:0x333333] 27 | #define MDColorCopyRight [UIColor colorWithRGBValue:0x747474] 28 | 29 | #endif /* PluginColor_h */ 30 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDConstants.h: -------------------------------------------------------------------------------- 1 | // 2 | // MDConstants.h 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/26. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #ifndef MDConstants_h 10 | #define MDConstants_h 11 | 12 | #import 13 | 14 | #define MDWeakSelf(self) autoreleasepool{} __weak typeof(self) weakSelf = self; 15 | 16 | #define MDScreenHeight UIScreen.mainScreen.bounds.size.height 17 | #define MDScreenWidth UIScreen.mainScreen.bounds.size.width 18 | #define MDScreenSize UIScreen.mainScreen.bounds.size 19 | 20 | #define MD_SINGLE_LINE_WIDTH (1.0/[UIScreen mainScreen].scale) 21 | 22 | #define MDFont9 [UIFont systemFontOfSize:9] 23 | #define MDFont10 [UIFont systemFontOfSize:10] 24 | #define MDFont11 [UIFont systemFontOfSize:11] 25 | #define MDFont12 [UIFont systemFontOfSize:12] 26 | #define MDFont13 [UIFont systemFontOfSize:13] 27 | #define MDFont14 [UIFont systemFontOfSize:14] 28 | #define MDFont15 [UIFont systemFontOfSize:15] 29 | #define MDFont16 [UIFont systemFontOfSize:16] 30 | #define MDFont17 [UIFont systemFontOfSize:17] 31 | #define MDFont18 [UIFont systemFontOfSize:18] 32 | #define MDFont19 [UIFont systemFontOfSize:19] 33 | #define MDFont21 [UIFont systemFontOfSize:21] 34 | #define MDFont24 [UIFont systemFontOfSize:24] 35 | #define MDFont25 [UIFont systemFontOfSize:25] 36 | 37 | extern CGFloat const kLeftMargin; 38 | extern CGFloat const kRightMargin; 39 | 40 | #define MD_COPYRIGHT @"MSSettingCenter For MonkeyDev" 41 | #define MD_DONE @"完成" 42 | 43 | #endif /* MDConstants_h */ 44 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDConstants.m: -------------------------------------------------------------------------------- 1 | // 2 | // MDConstants.m 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/26. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "MDConstants.h" 10 | 11 | CGFloat const kLeftMargin = 12; 12 | CGFloat const kRightMargin = 12; 13 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDSettingCenter.h: -------------------------------------------------------------------------------- 1 | // 2 | // MDSettingCenter.h 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/26. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "SettingForm.h" 10 | #import "FXForms.h" 11 | #import "MDSuspendBall.h" 12 | 13 | 14 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDSettingsViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsViewController.h 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/26. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MDSuspendBall.h" 11 | 12 | @interface MDSettingsViewController : UIViewController 13 | 14 | + (instancetype)sharedInstance; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDSettingsViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // SettingsViewController.m 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/26. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "MDSettingsViewController.h" 10 | #import "MDConstants.h" 11 | #import "MDColor.h" 12 | #import "MDSuspendBall.h" 13 | #import "FXForms.h" 14 | #import "SettingForm.h" 15 | 16 | @interface MDSettingsViewController () 17 | 18 | @property (nonatomic, strong) MDSuspendBall* suspendBall; 19 | 20 | @property (nonatomic, strong) UITableView* tableview; 21 | 22 | @property (nonatomic, strong) UILabel* copyright; 23 | 24 | @property (nonatomic, strong) UIBarButtonItem *closeButtonItem; 25 | 26 | @property (nonatomic, strong) FXFormController *formController; 27 | 28 | @end 29 | 30 | @implementation MDSettingsViewController 31 | 32 | + (instancetype)sharedInstance { 33 | static MDSettingsViewController *instance = nil; 34 | static dispatch_once_t onceToken; 35 | dispatch_once(&onceToken, ^{ 36 | instance = [[MDSettingsViewController alloc] init]; 37 | }); 38 | return instance; 39 | } 40 | 41 | #pragma mark - Life cycle 42 | 43 | - (void)viewDidLoad { 44 | [super viewDidLoad]; 45 | 46 | self.title = @"插件配置"; 47 | 48 | self.view.backgroundColor = MDColorBackGround; 49 | 50 | [self setupSubViews]; 51 | } 52 | 53 | -(void)viewWillAppear:(BOOL)animated{ 54 | [super viewWillAppear:animated]; 55 | 56 | self.suspendBall.hidden = YES; 57 | 58 | [self.tableview reloadData]; 59 | } 60 | 61 | #pragma mark - setup view 62 | 63 | -(void)setupSubViews{ 64 | _tableview = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped]; 65 | _tableview.backgroundColor = MDColorBackGround; 66 | _tableview.scrollEnabled = YES; 67 | _tableview.rowHeight = 50; 68 | _tableview.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag; 69 | [self.view addSubview:_tableview]; 70 | 71 | _copyright = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, MDScreenWidth, 30)]; 72 | _copyright.text = MD_COPYRIGHT; 73 | _copyright.textColor = MDColorCopyRight; 74 | _copyright.font = MDFont12; 75 | _copyright.textAlignment = NSTextAlignmentCenter; 76 | _tableview.tableFooterView = _copyright; 77 | 78 | [self.navigationItem setRightBarButtonItem:[self closeButtonItem]]; 79 | 80 | self.formController = [[FXFormController alloc] init]; 81 | self.formController.tableView = self.tableview; 82 | self.formController.delegate = self; 83 | self.formController.form = [SettingForm sharedInstance]; 84 | } 85 | 86 | - (UIBarButtonItem *)closeButtonItem { 87 | if (!_closeButtonItem) { 88 | UIBarButtonItem *closeButtonItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(MD_DONE, nil) style:UIBarButtonItemStylePlain target:self action:@selector(exit)]; 89 | _closeButtonItem = closeButtonItem; 90 | } 91 | return _closeButtonItem; 92 | } 93 | 94 | #pragma mark - Getter & Setter 95 | 96 | -(MDSuspendBall *)suspendBall{ 97 | if(_suspendBall){ 98 | return _suspendBall; 99 | }else{ 100 | return [MDSuspendBall sharedInstance]; 101 | } 102 | } 103 | 104 | -(UIInterfaceOrientationMask)supportedInterfaceOrientations{ 105 | return UIInterfaceOrientationMaskPortrait; 106 | } 107 | 108 | #pragma mark - private 109 | 110 | -(void)exit{ 111 | self.suspendBall.hidden = NO; 112 | [self dismissViewControllerAnimated:YES completion:nil]; 113 | } 114 | 115 | @end 116 | 117 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDSuspendBall.h: -------------------------------------------------------------------------------- 1 | // 2 | // SuspendBall.h 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/25. 6 | // Copyright (c) 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | 10 | #import 11 | 12 | @interface MDSuspendBall : UIButton 13 | 14 | /** 15 | 悬浮球的颜色 16 | */ 17 | @property (nonatomic, strong) UIColor* bgColor; 18 | 19 | + (instancetype)sharedInstance; 20 | 21 | -(void)addToWindow:(UIWindow*) window; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/MDSuspendBall.m: -------------------------------------------------------------------------------- 1 | // 2 | // SuspendBall.m 3 | // MDSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/25. 6 | // Copyright (c) 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "UIView+Frame.h" 10 | #import "MDSuspendBall.h" 11 | #import "MDConstants.h" 12 | #import "MDSettingsViewController.h" 13 | 14 | @implementation MDSuspendBall 15 | 16 | + (instancetype)sharedInstance { 17 | static MDSuspendBall *instance = nil; 18 | static dispatch_once_t onceToken; 19 | dispatch_once(&onceToken, ^{ 20 | instance = [[MDSuspendBall alloc] initWithFrame:CGRectMake(0, 64, 40, 40)]; 21 | }); 22 | return instance; 23 | } 24 | 25 | //初始化 26 | - (instancetype)initWithFrame:(CGRect)frame{ 27 | if (self = [super initWithFrame:frame]) { 28 | self.layer.cornerRadius = self.width / 2; 29 | self.bgColor = [UIColor grayColor]; 30 | //背景颜色 31 | self.backgroundColor = [self.bgColor colorWithAlphaComponent:0.6]; 32 | 33 | //点击事件 34 | [self addTarget:self action:@selector(showSetting) forControlEvents:UIControlEventTouchUpInside]; 35 | 36 | //移动事件 37 | UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(gestureMove:)]; 38 | [self addGestureRecognizer:pan]; 39 | 40 | } 41 | return self; 42 | } 43 | 44 | -(void)setBgColor:(UIColor *)bgColor{ 45 | _bgColor = bgColor; 46 | self.backgroundColor = [bgColor colorWithAlphaComponent:0.6]; 47 | } 48 | 49 | -(void)addToWindow:(UIWindow*) window{ 50 | if(!window){ 51 | window = [[UIApplication sharedApplication].windows firstObject]; 52 | } 53 | MDSuspendBall *suspendBall = [MDSuspendBall sharedInstance]; 54 | [suspendBall removeFromSuperview]; 55 | [window addSubview:suspendBall]; 56 | [window bringSubviewToFront:suspendBall]; 57 | } 58 | 59 | //点击悬浮球事件 60 | - (void)showSetting{ 61 | UIViewController *topController = [UIApplication sharedApplication].windows[0].rootViewController; 62 | 63 | while (topController.presentedViewController) { 64 | topController = topController.presentedViewController; 65 | } 66 | 67 | MDSettingsViewController* settingViewController = [MDSettingsViewController sharedInstance]; 68 | UINavigationController *navigationViewController = [[UINavigationController alloc] initWithRootViewController:settingViewController]; 69 | 70 | [topController presentViewController:navigationViewController animated:YES completion:^{ 71 | 72 | }]; 73 | } 74 | 75 | //限制悬浮球的位置并自动贴左右两边 76 | - (void)gestureMove:(UIPanGestureRecognizer *)pan{ 77 | 78 | self.backgroundColor = [self.bgColor colorWithAlphaComponent:1]; 79 | 80 | CGPoint point = [pan locationInView:self.superview]; 81 | self.middleX = point.x; 82 | self.middleY = point.y; 83 | 84 | if(pan.state == UIGestureRecognizerStateEnded){ 85 | if (point.x < 0) { 86 | [UIView animateWithDuration:0.5 animations:^{ 87 | self.x = 0; 88 | }]; 89 | } 90 | 91 | if ( point.x > MDScreenWidth) { 92 | [UIView animateWithDuration:0.5 animations:^{ 93 | self.x = MDScreenWidth - self.width; 94 | }]; 95 | } 96 | 97 | if (point.y > MDScreenHeight) { 98 | [UIView animateWithDuration:0.5 animations:^{ 99 | self.y = MDScreenHeight - self.width; 100 | }]; 101 | } 102 | 103 | if (point.y < 64) { 104 | [UIView animateWithDuration:0.5 animations:^{ 105 | self.y = 64; 106 | }]; 107 | } 108 | 109 | CGPoint endPoint = [pan locationInView:self.superview]; 110 | 111 | if (endPoint.x <= MDScreenWidth / 2) { 112 | [UIView animateWithDuration:0.5 animations:^{ 113 | self.x = 0; 114 | }]; 115 | } 116 | 117 | if (endPoint.x > MDScreenWidth / 2) { 118 | [UIView animateWithDuration:0.3 animations:^{ 119 | self.x = MDScreenWidth - self.width; 120 | }]; 121 | } 122 | 123 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 124 | [UIView animateWithDuration:1 animations:^{ 125 | self.backgroundColor = [self.bgColor colorWithAlphaComponent:0.6]; 126 | }]; 127 | }); 128 | } 129 | } 130 | 131 | @end 132 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/Package/DEBIAN/control: -------------------------------------------------------------------------------- 1 | Package: com.alonemonkey.wechatpod 2 | Name: WechatPod 3 | Version: 2.0 4 | Installed-Size: 270 5 | Description: 防撤回、修改步数、游戏作弊、修改定位 6 | Section: Tweaks 7 | Priority: optional 8 | Architecture: iphoneos-arm 9 | Maintainer: AloneMonkey 10 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/Package/Library/MobileSubstrate/DynamicLibraries/WechatPod.dylib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AloneMonkey/cydiarepo/83da8c90391d1b7b503eddbf0f9b1c4337015d1d/source/WechatPod/WechatPod/Package/Library/MobileSubstrate/DynamicLibraries/WechatPod.dylib -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/Package/Library/MobileSubstrate/DynamicLibraries/WechatPod.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Filter 6 | 7 | Bundles 8 | 9 | com.tencent.xin 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/SettingForm.h: -------------------------------------------------------------------------------- 1 | // 2 | // SettingForm.h 3 | // MDSettingCenter 4 | // 5 | // Created by monkey on 2017/11/5. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "FXForms.h" 11 | 12 | @interface SettingForm : NSObject 13 | 14 | +(SettingForm*)sharedInstance; 15 | 16 | -(void)registerForm:(id) formClass; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/SettingForm.m: -------------------------------------------------------------------------------- 1 | // 2 | // SettingForm.m 3 | // MDSettingCenter 4 | // 5 | // Created by monkey on 2017/11/5. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #import "SettingForm.h" 10 | #import 11 | 12 | @implementation SettingForm{ 13 | NSMutableDictionary *_valuesByKey; 14 | NSMutableArray *_fieldsArr; 15 | } 16 | 17 | +(SettingForm *)sharedInstance{ 18 | static id sharedInstance; 19 | static dispatch_once_t onceToken; 20 | dispatch_once(&onceToken, ^{ 21 | sharedInstance = [self new]; 22 | }); 23 | return sharedInstance; 24 | } 25 | 26 | - (instancetype)init{ 27 | self = [super init]; 28 | if (self) { 29 | _valuesByKey = [NSMutableDictionary dictionary]; 30 | _fieldsArr = [NSMutableArray array]; 31 | } 32 | return self; 33 | } 34 | 35 | -(void)registerForm:(id) formClass{ 36 | NSString* className = NSStringFromClass([formClass class]); 37 | if(![className hasSuffix:@"Form"]){ 38 | NSLog(@"register class name must endwith Form"); 39 | return; 40 | } 41 | NSString* key = [className substringToIndex:className.length-4]; 42 | 43 | objc_property_t property = class_getProperty([SettingForm class], [key UTF8String]); 44 | if(property){ 45 | NSLog(@"class name exists, please change another name"); 46 | return; 47 | } 48 | 49 | objc_property_attribute_t attribute1 = {"T", [[NSString stringWithFormat:@"@\"%@Form\"", key] UTF8String]}; 50 | objc_property_attribute_t attribute2 = {"S", ""}; 51 | objc_property_attribute_t attribute3 = {"N", ""}; 52 | objc_property_attribute_t attribute4 = {"V", [[NSString stringWithFormat:@"_%@", key] UTF8String]}; 53 | objc_property_attribute_t attributesList[] = {attribute1, attribute2, attribute3, attribute4}; 54 | class_addProperty([SettingForm class], [key UTF8String], attributesList, 4); 55 | 56 | if([formClass respondsToSelector:@selector(setting)]){ 57 | NSMutableDictionary* settings = [[formClass performSelector:@selector(setting)] mutableCopy]; 58 | [settings setValue:key forKey:FXFormFieldKey]; 59 | [_fieldsArr addObject:settings]; 60 | } 61 | 62 | [self setValue:formClass forKey:key]; 63 | } 64 | 65 | - (void)setValue:(id)value forUndefinedKey:(NSString *)key{ 66 | if (value){ 67 | _valuesByKey[key] = value; 68 | }else{ 69 | [_valuesByKey removeObjectForKey:key]; 70 | } 71 | } 72 | 73 | - (id)valueForUndefinedKey:(NSString *)key{ 74 | return _valuesByKey[key]; 75 | } 76 | 77 | - (NSArray *)fields{ 78 | return _fieldsArr; 79 | } 80 | 81 | @end 82 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/UIColor+ColorUtils.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+ColorUtils.h 3 | // MSSettingCenter 4 | // 5 | // Created by AloneMonkey on 16/10/18. 6 | // Copyright © 2016年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #pragma GCC diagnostic push 10 | #pragma GCC diagnostic ignored "-Wauto-import" 11 | #pragma GCC diagnostic ignored "-Wobjc-missing-property-synthesis" 12 | 13 | 14 | #import 15 | 16 | 17 | @interface UIColor (ColorUtils) 18 | 19 | @property (nonatomic, readonly) CGFloat red; 20 | @property (nonatomic, readonly) CGFloat green; 21 | @property (nonatomic, readonly) CGFloat blue; 22 | @property (nonatomic, readonly) CGFloat alpha; 23 | 24 | + (instancetype)randomRGBColor; 25 | + (instancetype)randomRGBAColor; 26 | 27 | + (instancetype)colorWithString:(NSString *)string; 28 | + (instancetype)colorWithRGBValue:(uint32_t)rgb; 29 | + (instancetype)colorWithRGBValue:(uint32_t)rgb alpha:(CGFloat)alpha; 30 | + (instancetype)colorWithRGBAValue:(uint32_t)rgba; 31 | - (instancetype)initWithString:(NSString *)string; 32 | - (instancetype)initWithRGBValue:(uint32_t)rgb; 33 | - (instancetype)initWithRGBAValue:(uint32_t)rgba; 34 | 35 | - (uint32_t)RGBValue; 36 | - (uint32_t)RGBAValue; 37 | - (NSString *)stringValue; 38 | 39 | - (BOOL)isMonochromeOrRGB; 40 | - (BOOL)isEquivalent:(id)object; 41 | - (BOOL)isEquivalentToColor:(UIColor *)color; 42 | 43 | - (instancetype)colorWithBrightness:(CGFloat)brightness; 44 | - (instancetype)colorBlendedWithColor:(UIColor *)color factor:(CGFloat)factor; 45 | 46 | @end 47 | 48 | 49 | #pragma GCC diagnostic pop 50 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/UIColor+ColorUtils.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+ColorUtils.m 3 | // MSSettingCenter 4 | // 5 | // Created by AloneMonkey on 16/10/18. 6 | // Copyright © 2016年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "UIColor+ColorUtils.h" 10 | 11 | #pragma GCC diagnostic ignored "-Wformat-non-iso" 12 | #pragma GCC diagnostic ignored "-Wconversion" 13 | #pragma GCC diagnostic ignored "-Wgnu" 14 | 15 | 16 | #import 17 | #if !__has_feature(objc_arc) 18 | #error This class requires automatic reference counting 19 | #endif 20 | 21 | 22 | @implementation UIColor (ColorUtils) 23 | 24 | 25 | - (void)getRGBAComponents:(CGFloat[4])rgba 26 | { 27 | CGColorSpaceModel model = CGColorSpaceGetModel(CGColorGetColorSpace(self.CGColor)); 28 | const CGFloat *components = CGColorGetComponents(self.CGColor); 29 | switch (model) 30 | { 31 | case kCGColorSpaceModelMonochrome: 32 | { 33 | rgba[0] = components[0]; 34 | rgba[1] = components[0]; 35 | rgba[2] = components[0]; 36 | rgba[3] = components[1]; 37 | break; 38 | } 39 | case kCGColorSpaceModelRGB: 40 | { 41 | rgba[0] = components[0]; 42 | rgba[1] = components[1]; 43 | rgba[2] = components[2]; 44 | rgba[3] = components[3]; 45 | break; 46 | } 47 | case kCGColorSpaceModelCMYK: 48 | case kCGColorSpaceModelDeviceN: 49 | case kCGColorSpaceModelIndexed: 50 | case kCGColorSpaceModelLab: 51 | case kCGColorSpaceModelPattern: 52 | case kCGColorSpaceModelUnknown: 53 | { 54 | 55 | #ifdef DEBUG 56 | 57 | //unsupported format 58 | NSLog(@"Unsupported color model: %i", model); 59 | #endif 60 | rgba[0] = 0.0f; 61 | rgba[1] = 0.0f; 62 | rgba[2] = 0.0f; 63 | rgba[3] = 1.0f; 64 | break; 65 | } 66 | } 67 | } 68 | 69 | 70 | + (instancetype)randomRGBColor 71 | { 72 | 73 | return [[self alloc] initWithRGBValue:arc4random()]; 74 | } 75 | 76 | + (instancetype)randomRGBAColor 77 | { 78 | return [[self alloc] initWithRGBAValue:arc4random()]; 79 | } 80 | 81 | + (instancetype)colorWithString:(NSString *)string 82 | { 83 | //convert to lowercase 84 | string = [string lowercaseString]; 85 | 86 | 87 | //create new instance 88 | return [[self alloc] initWithString:string useLookup:NO]; 89 | } 90 | 91 | + (instancetype)colorWithRGBValue:(uint32_t)rgb 92 | { 93 | return [[self alloc] initWithRGBValue:rgb]; 94 | } 95 | 96 | + (instancetype)colorWithRGBAValue:(uint32_t)rgba 97 | { 98 | return [[self alloc] initWithRGBAValue:rgba]; 99 | } 100 | 101 | + (instancetype)colorWithRGBValue:(uint32_t)rgb alpha:(CGFloat)alpha 102 | { 103 | return [[self alloc] initWithRGBValue:rgb alpha:alpha]; 104 | } 105 | 106 | - (instancetype)initWithString:(NSString *)string 107 | { 108 | return [self initWithString:string useLookup:YES]; 109 | } 110 | 111 | - (instancetype)initWithString:(NSString *)string useLookup:(BOOL)lookup 112 | { 113 | //convert to lowercase 114 | string = [string lowercaseString]; 115 | 116 | //try hex 117 | string = [string stringByReplacingOccurrencesOfString:@"#" withString:@""]; 118 | string = [string stringByReplacingOccurrencesOfString:@"0x" withString:@""]; 119 | switch ([string length]) 120 | { 121 | case 0: 122 | { 123 | string = @"00000000"; 124 | break; 125 | } 126 | case 3: 127 | { 128 | NSString *red = [string substringWithRange:NSMakeRange(0, 1)]; 129 | NSString *green = [string substringWithRange:NSMakeRange(1, 1)]; 130 | NSString *blue = [string substringWithRange:NSMakeRange(2, 1)]; 131 | string = [NSString stringWithFormat:@"%1$@%1$@%2$@%2$@%3$@%3$@ff", red, green, blue]; 132 | break; 133 | } 134 | case 6: 135 | { 136 | string = [string stringByAppendingString:@"ff"]; 137 | break; 138 | } 139 | case 8: 140 | { 141 | //do nothing 142 | break; 143 | } 144 | default: 145 | { 146 | 147 | #ifdef DEBUG 148 | 149 | //unsupported format 150 | NSLog(@"Unsupported color string format: %@", string); 151 | #endif 152 | return nil; 153 | } 154 | } 155 | uint32_t rgba; 156 | NSScanner *scanner = [NSScanner scannerWithString:string]; 157 | [scanner scanHexInt:&rgba]; 158 | return [self initWithRGBAValue:rgba]; 159 | } 160 | 161 | - (instancetype)initWithRGBValue:(uint32_t)rgb 162 | { 163 | CGFloat red = ((rgb & 0xFF0000) >> 16) / 255.0f; 164 | CGFloat green = ((rgb & 0x00FF00) >> 8) / 255.0f; 165 | CGFloat blue = (rgb & 0x0000FF) / 255.0f; 166 | return [self initWithRed:red green:green blue:blue alpha:1.0f]; 167 | } 168 | 169 | - (instancetype)initWithRGBValue:(uint32_t)rgb alpha:(CGFloat)alpha 170 | { 171 | CGFloat red = ((rgb & 0xFF0000) >> 16) / 255.0f; 172 | CGFloat green = ((rgb & 0x00FF00) >> 8) / 255.0f; 173 | CGFloat blue = (rgb & 0x0000FF) / 255.0f; 174 | return [self initWithRed:red green:green blue:blue alpha:alpha]; 175 | } 176 | 177 | - (instancetype)initWithRGBAValue:(uint32_t)rgba 178 | { 179 | CGFloat red = ((rgba & 0xFF000000) >> 24) / 255.0f; 180 | CGFloat green = ((rgba & 0x00FF0000) >> 16) / 255.0f; 181 | CGFloat blue = ((rgba & 0x0000FF00) >> 8) / 255.0f; 182 | CGFloat alpha = (rgba & 0x000000FF) / 255.0f; 183 | return [self initWithRed:red green:green blue:blue alpha:alpha]; 184 | } 185 | 186 | - (uint32_t)RGBValue 187 | { 188 | CGFloat rgba[4]; 189 | [self getRGBAComponents:rgba]; 190 | uint32_t red = rgba[0]*255; 191 | uint32_t green = rgba[1]*255; 192 | uint32_t blue = rgba[2]*255; 193 | return (red << 16) + (green << 8) + blue; 194 | } 195 | 196 | - (uint32_t)RGBAValue 197 | { 198 | CGFloat rgba[4]; 199 | [self getRGBAComponents:rgba]; 200 | uint8_t red = rgba[0]*255; 201 | uint8_t green = rgba[1]*255; 202 | uint8_t blue = rgba[2]*255; 203 | uint8_t alpha = rgba[3]*255; 204 | return (red << 24) + (green << 16) + (blue << 8) + alpha; 205 | } 206 | 207 | - (NSString *)stringValue 208 | { 209 | //convert to hex 210 | if (self.alpha < 1.0f) 211 | { 212 | //include alpha component 213 | return [NSString stringWithFormat:@"#%.8x", self.RGBAValue]; 214 | } 215 | else 216 | { 217 | //don't include alpha component 218 | return [NSString stringWithFormat:@"#%.6x", self.RGBValue]; 219 | } 220 | } 221 | 222 | - (CGFloat)red 223 | { 224 | CGFloat rgba[4]; 225 | [self getRGBAComponents:rgba]; 226 | return rgba[0]; 227 | } 228 | 229 | - (CGFloat)green 230 | { 231 | CGFloat rgba[4]; 232 | [self getRGBAComponents:rgba]; 233 | return rgba[1]; 234 | } 235 | 236 | - (CGFloat)blue 237 | { 238 | CGFloat rgba[4]; 239 | [self getRGBAComponents:rgba]; 240 | return rgba[2]; 241 | } 242 | 243 | - (CGFloat)alpha 244 | { 245 | return CGColorGetAlpha(self.CGColor); 246 | } 247 | 248 | - (BOOL)isMonochromeOrRGB 249 | { 250 | CGColorSpaceModel model = CGColorSpaceGetModel(CGColorGetColorSpace(self.CGColor)); 251 | return model == kCGColorSpaceModelMonochrome || model == kCGColorSpaceModelRGB; 252 | } 253 | 254 | - (BOOL)isEquivalent:(id)object 255 | { 256 | if ([object isKindOfClass:[self class]]) 257 | { 258 | return [self isEquivalentToColor:object]; 259 | } 260 | return NO; 261 | } 262 | 263 | - (BOOL)isEquivalentToColor:(UIColor *)color 264 | { 265 | if ([self isMonochromeOrRGB] && [color isMonochromeOrRGB]) 266 | { 267 | return self.RGBAValue == color.RGBAValue; 268 | } 269 | return [self isEqual:color]; 270 | } 271 | 272 | - (instancetype)colorWithBrightness:(CGFloat)brightness 273 | { 274 | brightness = MAX(brightness, 0.0f); 275 | 276 | CGFloat rgba[4]; 277 | [self getRGBAComponents:rgba]; 278 | 279 | return [[self class] colorWithRed:rgba[0] * brightness 280 | green:rgba[1] * brightness 281 | blue:rgba[2] * brightness 282 | alpha:rgba[3]]; 283 | } 284 | 285 | - (instancetype)colorBlendedWithColor:(UIColor *)color factor:(CGFloat)factor 286 | { 287 | factor = MIN(MAX(factor, 0.0f), 1.0f); 288 | 289 | CGFloat fromRGBA[4], toRGBA[4]; 290 | [self getRGBAComponents:fromRGBA]; 291 | [color getRGBAComponents:toRGBA]; 292 | 293 | return [[self class] colorWithRed:fromRGBA[0] + (toRGBA[0] - fromRGBA[0]) * factor 294 | green:fromRGBA[1] + (toRGBA[1] - fromRGBA[1]) * factor 295 | blue:fromRGBA[2] + (toRGBA[2] - fromRGBA[2]) * factor 296 | alpha:fromRGBA[3] + (toRGBA[3] - fromRGBA[3]) * factor]; 297 | } 298 | 299 | @end 300 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/UIView+Frame.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Frame.h 3 | // MSSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/25. 6 | // Copyright (c) 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIView (Frame) 12 | 13 | @property (nonatomic, assign) CGFloat x; 14 | @property (nonatomic, assign) CGFloat y; 15 | @property (nonatomic, assign) CGFloat width; 16 | @property (nonatomic, assign) CGFloat height; 17 | @property (nonatomic, assign) CGPoint origin; 18 | @property (nonatomic, assign) CGSize size; 19 | @property (nonatomic, assign) CGFloat bottom; 20 | @property (nonatomic, assign) CGFloat tail; 21 | @property (nonatomic, assign) CGFloat middleX; 22 | @property (nonatomic, assign) CGFloat middleY; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/UIView+Frame.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+Frame.m 3 | // MSSettingCenter 4 | // 5 | // Created by AloneMonkey on 2017/10/25. 6 | // Copyright (c) 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "UIView+Frame.h" 10 | 11 | @implementation UIView (Frame) 12 | 13 | - (void)setX:(CGFloat)x 14 | { 15 | CGRect frame = self.frame; 16 | frame.origin.x = x; 17 | self.frame = frame; 18 | } 19 | 20 | - (CGFloat)x 21 | { 22 | return self.frame.origin.x; 23 | } 24 | 25 | - (void)setY:(CGFloat)y 26 | { 27 | CGRect frame = self.frame; 28 | frame.origin.y = y; 29 | self.frame = frame; 30 | } 31 | 32 | - (CGFloat)y 33 | { 34 | return self.frame.origin.y; 35 | } 36 | 37 | - (void)setOrigin:(CGPoint)origin 38 | { 39 | CGRect frame = self.frame; 40 | frame.origin = origin; 41 | self.frame = frame; 42 | } 43 | 44 | - (CGPoint)origin 45 | { 46 | return self.frame.origin; 47 | } 48 | 49 | - (void)setWidth:(CGFloat)width 50 | { 51 | CGRect frame = self.frame; 52 | frame.size.width = width; 53 | self.frame = frame; 54 | } 55 | 56 | - (CGFloat)width 57 | { 58 | return self.frame.size.width; 59 | } 60 | 61 | - (void)setHeight:(CGFloat)height 62 | { 63 | CGRect frame = self.frame; 64 | frame.size.height = height; 65 | self.frame = frame; 66 | } 67 | 68 | - (CGFloat)height 69 | { 70 | return self.frame.size.height; 71 | } 72 | 73 | - (void)setSize:(CGSize)size 74 | { 75 | CGRect frame = self.frame; 76 | frame.size = size; 77 | self.frame = frame; 78 | } 79 | 80 | - (CGSize)size 81 | { 82 | return self.frame.size; 83 | } 84 | 85 | - (void)setBottom:(CGFloat)bottom 86 | { 87 | CGRect frame = self.frame; 88 | frame.origin.y = bottom - frame.size.height; 89 | self.frame = frame; 90 | } 91 | 92 | - (CGFloat)bottom 93 | { 94 | return CGRectGetMaxY(self.frame); 95 | } 96 | 97 | - (CGFloat)tail 98 | { 99 | return CGRectGetMaxX(self.frame); 100 | } 101 | 102 | - (void)setTail:(CGFloat)tail 103 | { 104 | CGRect frame = self.frame; 105 | frame.origin.x = tail - frame.size.width; 106 | self.frame = frame; 107 | } 108 | 109 | - (void)setMiddleX:(CGFloat)middleX 110 | { 111 | CGRect frame = self.frame; 112 | frame.origin.x = middleX - frame.size.width / 2; 113 | self.frame = frame; 114 | } 115 | 116 | - (CGFloat)middleX 117 | { 118 | return CGRectGetMidX(self.frame); 119 | } 120 | 121 | - (void)setMiddleY:(CGFloat)middleY 122 | { 123 | CGRect frame = self.frame; 124 | frame.origin.y = middleY - frame.size.height / 2 ; 125 | self.frame = frame; 126 | } 127 | 128 | - (CGFloat)middleY 129 | { 130 | return CGRectGetMidY(self.frame); 131 | } 132 | 133 | 134 | @end 135 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeChatHeader.h 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/2. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #ifndef WeChatHeader_h 10 | #define WeChatHeader_h 11 | 12 | #import 13 | 14 | @interface CMessageWrap 15 | 16 | @property(nonatomic, strong) NSString* m_nsContent; //发送消息的内容 17 | @property(nonatomic, strong) NSString* m_nsToUsr; //发送人 18 | @property(nonatomic, strong) NSString* m_nsFromUsr; //接收人 19 | @property(nonatomic, assign) unsigned long m_uiStatus; 20 | @property(nonatomic, assign) unsigned long m_uiCreateTime; 21 | @property(nonatomic, assign) unsigned long m_uiMessageType; 22 | @property(nonatomic, assign) unsigned long m_uiGameType; 23 | @property(nonatomic, assign) unsigned long m_uiGameContent; 24 | @property(nonatomic, strong) NSString *m_nsEmoticonMD5; 25 | 26 | + (BOOL)isSenderFromMsgWrap:(CMessageWrap*) msgWrap; 27 | 28 | - (CMessageWrap*)initWithMsgType:(int) type; 29 | 30 | @end 31 | 32 | @interface MMServiceCenter 33 | 34 | - (id)getService:(Class) name; 35 | 36 | @end 37 | 38 | @interface CMessageMgr 39 | 40 | - (void)AddLocalMsg:(NSString*)from MsgWrap:(CMessageWrap*) msgWrap; 41 | 42 | - (void)AddEmoticonMsg:(NSString*)from MsgWrap:(CMessageWrap*) msgWrap; 43 | 44 | @end 45 | 46 | @interface GameController : NSObject 47 | 48 | + (NSString*)getMD5ByGameContent:(NSInteger) content; 49 | 50 | @end 51 | 52 | @interface ManualAuthAesReqData 53 | 54 | -(void)setBundleId:(NSString*) bundleID; 55 | 56 | @end 57 | 58 | #endif /* WeChatHeader_h */ 59 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatLocationHook.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeChatLocationHook.m 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/2. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | /** 10 | 1. 修改定位 11 | */ 12 | 13 | #import 14 | #import "WechatPodForm.h" 15 | #import 16 | 17 | CHDeclareClass(CLLocation); 18 | 19 | CHOptimizedMethod0(self, CLLocationCoordinate2D, CLLocation, coordinate){ 20 | CLLocationCoordinate2D coordinate = CHSuper(0, CLLocation, coordinate); 21 | if(pluginConfig.location.longitude || pluginConfig.location.latitude ){ 22 | coordinate = pluginConfig.location; 23 | } 24 | return coordinate; 25 | } 26 | 27 | CHConstructor{ 28 | CHLoadLateClass(CLLocation); 29 | CHClassHook(0, CLLocation, coordinate); 30 | } 31 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatMessageHook.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeChatMessageHook.m 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/2. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | /** 10 | 1. 消息防撤回 11 | 2. 游戏作弊 12 | */ 13 | 14 | #import 15 | #import "WeChatHeader.h" 16 | #import "WeChatServiceManager.h" 17 | #import "WechatPodForm.h" 18 | #import 19 | 20 | CHDeclareClass(CMessageMgr); 21 | 22 | CHOptimizedMethod1(self, void, CMessageMgr, onRevokeMsg,CMessageWrap*, msgWrap){ 23 | BOOL isSender = [objc_getClass("CMessageWrap") isSenderFromMsgWrap:msgWrap]; 24 | 25 | if(!pluginConfig.revoke || isSender){ 26 | CHSuper1(CMessageMgr, onRevokeMsg, msgWrap); 27 | return; 28 | } 29 | 30 | CMessageWrap *newMsgWrap = [[objc_getClass("CMessageWrap") alloc] initWithMsgType:0x2710]; 31 | 32 | NSString* revokePersonName = nil; 33 | 34 | //获取撤回人 35 | NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"" options:NSRegularExpressionCaseInsensitive error:nil]; 36 | NSTextCheckingResult *result = [regex matchesInString:msgWrap.m_nsContent options:0 range:NSMakeRange(0, msgWrap.m_nsContent.length)].firstObject; 37 | 38 | if (result.numberOfRanges >= 2) { 39 | revokePersonName = [msgWrap.m_nsContent substringWithRange:[result rangeAtIndex:1]]; 40 | } 41 | 42 | NSString* sendContent = [NSString stringWithFormat:@"已阻止 %@ 将消息撤回", revokePersonName ? revokePersonName : msgWrap.m_nsFromUsr]; 43 | 44 | [newMsgWrap setM_uiStatus:0x4]; 45 | [newMsgWrap setM_nsContent:sendContent]; 46 | [newMsgWrap setM_nsToUsr:msgWrap.m_nsToUsr]; 47 | [newMsgWrap setM_nsFromUsr:msgWrap.m_nsFromUsr]; 48 | [newMsgWrap setM_uiCreateTime:[msgWrap m_uiCreateTime]]; 49 | 50 | [[WeChatServiceManager sharedCMessageMgr] AddLocalMsg:msgWrap.m_nsFromUsr MsgWrap:newMsgWrap]; 51 | } 52 | 53 | CHOptimizedMethod2(self, void, CMessageMgr, AddEmoticonMsg, NSString*, msg, MsgWrap, CMessageWrap*, msgWrap){ 54 | 55 | //1 猜拳 2 骰子 0 自定义表情 56 | if([msgWrap m_uiMessageType] == 47 && ([msgWrap m_uiGameType] == 2|| [msgWrap m_uiGameType] == 1)){ 57 | 58 | NSInteger random = 0; 59 | 60 | if(([msgWrap m_uiGameType] == 1 && pluginConfig.finalMorra >= 1 && pluginConfig.finalMorra <= 3)){ 61 | random = pluginConfig.finalMorra; 62 | } 63 | 64 | if(([msgWrap m_uiGameType] == 2 && pluginConfig.finalDice >=4 && pluginConfig.finalDice <= 9)){ 65 | random = pluginConfig.finalDice; 66 | } 67 | 68 | if(random > 0 && random < 10){ 69 | [msgWrap setM_nsEmoticonMD5:[objc_getClass("GameController") getMD5ByGameContent:random]]; 70 | [msgWrap setM_uiGameContent:random]; 71 | } 72 | } 73 | 74 | CHSuper2(CMessageMgr, AddEmoticonMsg, msg, MsgWrap, msgWrap); 75 | } 76 | 77 | CHConstructor{ 78 | CHLoadLateClass(CMessageMgr); 79 | CHClassHook1(CMessageMgr, onRevokeMsg); 80 | CHClassHook2(CMessageMgr, AddEmoticonMsg, MsgWrap); 81 | } 82 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatRequestHook.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeChatRequestHook.m 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/5. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | /** 10 | 1. 修改bundle id 11 | */ 12 | 13 | #import 14 | #import 15 | 16 | #pragma mark ManualAuthAesReqData 17 | 18 | CHDeclareClass(ManualAuthAesReqData) 19 | 20 | CHOptimizedMethod1(self, void, ManualAuthAesReqData, setBundleId, NSString*, bundleId){ 21 | bundleId = @"com.tencent.xin"; 22 | CHSuper1(ManualAuthAesReqData, setBundleId, bundleId); 23 | } 24 | 25 | CHConstructor{ 26 | CHLoadLateClass(ManualAuthAesReqData); 27 | CHClassHook1(ManualAuthAesReqData, setBundleId); 28 | } 29 | 30 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatServiceManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // WeChatServiceManager.h 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/2. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "WeChatHeader.h" 11 | 12 | @interface WeChatServiceManager : NSObject 13 | 14 | +(CMessageMgr*)sharedCMessageMgr; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatServiceManager.m: -------------------------------------------------------------------------------- 1 | // 2 | // WeChatServiceManager.m 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/2. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #import "WeChatHeader.h" 10 | #import "WeChatServiceManager.h" 11 | #import 12 | 13 | @implementation WeChatServiceManager 14 | 15 | +(CMessageMgr *)sharedCMessageMgr{ 16 | MMServiceCenter* serviceCenter = [objc_getClass("MMServiceCenter") defaultCenter]; 17 | return [serviceCenter getService:[objc_getClass("CMessageMgr") class]]; 18 | } 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WeChatStepHook.m: -------------------------------------------------------------------------------- 1 | // 2 | // WechatStepHook.m 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/8/1. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | /** 10 | 1. 修改步数 11 | */ 12 | 13 | 14 | #import 15 | #import "WechatPodForm.h" 16 | #import 17 | #import 18 | 19 | typedef void (^CMStepQueryHandler)(NSInteger numberOfSteps, NSError *error); 20 | CMStepQueryHandler origHandler = nil; 21 | 22 | CMStepQueryHandler newHandler = ^(NSInteger numberSteps, NSError *error){ 23 | if(pluginConfig.step.integerValue != 0){ 24 | numberSteps = pluginConfig.step.integerValue; 25 | } 26 | origHandler(numberSteps,error); 27 | }; 28 | 29 | CHDeclareClass(CMStepCounter); 30 | 31 | CHOptimizedMethod4(self, void, CMStepCounter,queryStepCountStartingFrom, NSData*, from, to, NSData*, to, toQueue, NSOperationQueue*, queue, withHandler, CMStepQueryHandler, handler){ 32 | origHandler = [handler copy]; 33 | handler = newHandler; 34 | 35 | CHSuper4(CMStepCounter, queryStepCountStartingFrom, from, to, to, toQueue, queue, withHandler, handler); 36 | } 37 | 38 | CHConstructor{ 39 | CHLoadLateClass(CMStepCounter); 40 | CHClassHook4(CMStepCounter, queryStepCountStartingFrom, to, toQueue, withHandler); 41 | } 42 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WechatMapViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MDMapViewController.h 3 | // MDMapView 4 | // 5 | // Created by AloneMonkey on 2017/11/2. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MDSettingCenter.h" 11 | #import 12 | 13 | @interface WechatMapViewController : UIViewController 14 | 15 | @property (nonatomic, strong) FXFormField *field; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WechatMapViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MDMapViewController.m 3 | // MDMapView 4 | // 5 | // Created by AloneMonkey on 2017/11/2. 6 | // Copyright © 2017年 MonkeyDev. All rights reserved. 7 | // 8 | 9 | #import "WechatMapViewController.h" 10 | #import "WechatPodForm.h" 11 | #import 12 | 13 | @interface WechatMapViewController() 14 | 15 | @property (nonatomic, strong) MKMapView *mapView; 16 | @property (nonatomic, strong) MKPointAnnotation* mapPoint; 17 | @property (nonatomic, strong) UIBarButtonItem* backButtonItem; 18 | @property (nonatomic, strong) UIBarButtonItem* closeButtonItem; 19 | 20 | @end 21 | 22 | @implementation WechatMapViewController 23 | 24 | - (instancetype)init 25 | { 26 | self = [super init]; 27 | if (self) { 28 | _mapPoint = [[MKPointAnnotation alloc] init]; 29 | } 30 | return self; 31 | } 32 | 33 | -(void)viewDidLoad{ 34 | [super viewDidLoad]; 35 | [self setupSubviews]; 36 | } 37 | 38 | -(void)setupSubviews{ 39 | self.title = @"我的位置"; 40 | _mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds))]; 41 | _mapView.showsUserLocation = YES; 42 | _mapView.userTrackingMode = MKUserTrackingModeFollow; 43 | UITapGestureRecognizer* gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(click:)]; 44 | gesture.delegate = self; 45 | [_mapView addGestureRecognizer:gesture]; 46 | [self.view addSubview:_mapView]; 47 | 48 | self.navigationItem.leftBarButtonItem = self.backButtonItem; 49 | self.navigationItem.rightBarButtonItem = self.closeButtonItem; 50 | } 51 | 52 | - (void)click:(UITapGestureRecognizer*) gesture{ 53 | if(gesture){ 54 | [_mapView removeAnnotations:_mapView.annotations]; 55 | CGPoint point = [gesture locationInView:_mapView]; 56 | CLLocationCoordinate2D location = [_mapView convertPoint:point toCoordinateFromView:_mapView]; 57 | [_mapPoint setCoordinate:location]; 58 | [_mapView addAnnotation:_mapPoint]; 59 | 60 | // self.field.value 61 | 62 | pluginConfig.location = location; 63 | 64 | self.title = [NSString stringWithFormat:@"%0.3f, %0.3f", 65 | location.latitude, location.longitude]; 66 | } 67 | } 68 | 69 | - (UIBarButtonItem *)backButtonItem { 70 | if (!_backButtonItem) { 71 | UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:@selector(back)]; 72 | _backButtonItem = backButtonItem; 73 | } 74 | return _backButtonItem; 75 | } 76 | 77 | - (UIBarButtonItem *)closeButtonItem { 78 | if (!_closeButtonItem) { 79 | UIBarButtonItem *closeButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"清除位置" style:UIBarButtonItemStylePlain target:self action:@selector(clearAndExit)]; 80 | _closeButtonItem = closeButtonItem; 81 | } 82 | return _closeButtonItem; 83 | } 84 | 85 | -(void)back{ 86 | if(self.navigationController){ 87 | [self.navigationController popViewControllerAnimated:YES]; 88 | }else if([self presentedViewController]){ 89 | [self dismissViewControllerAnimated:YES completion:nil]; 90 | } 91 | 92 | _mapView.userTrackingMode = MKUserTrackingModeNone; 93 | _mapView.showsUserLocation = NO; 94 | [_mapView removeAnnotations:_mapView.annotations]; 95 | _mapView.delegate = nil; 96 | } 97 | 98 | -(void)clearAndExit{ 99 | pluginConfig.location = CLLocationCoordinate2DMake(0,0); 100 | [self back]; 101 | } 102 | 103 | @end 104 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WechatPod-Prefix.pch: -------------------------------------------------------------------------------- 1 | // 2 | // Prefix header for all source files of the 'WechatPod' target in the 'WechatPod' project 3 | // 4 | 5 | #ifdef __OBJC__ 6 | #import 7 | #endif 8 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WechatPodForm.h: -------------------------------------------------------------------------------- 1 | // 2 | // WechatPodForm.h 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/11/5. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "MDSettingCenter.h" 11 | #import 12 | 13 | @class WechatPodForm; 14 | 15 | extern WechatPodForm* pluginConfig; 16 | 17 | typedef NS_OPTIONS(NSInteger, MorraType) 18 | { 19 | //segment 必须0开始 20 | MorraTypeScissors = 0, 21 | MorraTypeStone, 22 | MorraTypeCloth 23 | }; 24 | 25 | //必须以Form结尾 26 | @interface WechatPodForm : NSObject 27 | 28 | +(WechatPodForm*)sharedInstance; 29 | 30 | @property (nonatomic, assign) BOOL revoke; 31 | @property (nonatomic, copy) NSString *step; 32 | @property (nonatomic, assign) MorraType morra; 33 | @property (nonatomic, assign) NSUInteger dice; 34 | @property (nonatomic, assign) CLLocationCoordinate2D location; 35 | 36 | - (NSUInteger) finalMorra; 37 | - (NSUInteger) finalDice; 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /source/WechatPod/WechatPod/WechatPodForm.m: -------------------------------------------------------------------------------- 1 | // 2 | // WechatPodForm.m 3 | // WechatPod 4 | // 5 | // Created by monkey on 2017/11/5. 6 | // Copyright © 2017年 Coder. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "WechatPodForm.h" 11 | 12 | WechatPodForm* pluginConfig = nil; 13 | 14 | @implementation WechatPodForm{ 15 | CLLocationCoordinate2D _coordinate; 16 | } 17 | 18 | +(WechatPodForm *)sharedInstance{ 19 | static id sharedInstance; 20 | static dispatch_once_t onceToken; 21 | dispatch_once(&onceToken, ^{ 22 | sharedInstance = [self new]; 23 | }); 24 | return sharedInstance; 25 | } 26 | 27 | - (instancetype)init 28 | { 29 | self = [super init]; 30 | if (self) { 31 | _step = 0; 32 | _location = CLLocationCoordinate2DMake(0,0); 33 | _revoke = YES; 34 | _morra = 0; 35 | _dice = 6; 36 | } 37 | return self; 38 | } 39 | 40 | -(NSUInteger)finalMorra{ 41 | return _morra + 1; 42 | } 43 | 44 | -(NSUInteger)finalDice{ 45 | return _dice + 3; 46 | } 47 | 48 | - (NSArray *)fields 49 | { 50 | return @[ 51 | @{FXFormFieldKey: @"revoke", 52 | FXFormFieldTitle: @"防撤回" 53 | }, 54 | @{FXFormFieldKey: @"step", 55 | FXFormFieldType: FXFormFieldTypeInteger, 56 | FXFormFieldTitle: @"微信步数" 57 | }, 58 | @{FXFormFieldKey: @"morra", 59 | FXFormFieldTitle: @"猜拳", 60 | FXFormFieldOptions: @[@"剪刀", @"石头", @"布"], 61 | FXFormFieldCell: [FXFormOptionSegmentsCell class] 62 | }, 63 | @{FXFormFieldKey: @"dice", 64 | FXFormFieldTitle: @"骰子点数", 65 | @"stepper.minimumValue": @(1), 66 | @"stepper.maximumValue": @(6), 67 | FXFormFieldCell: [FXFormStepperCell class] 68 | }, 69 | @{FXFormFieldKey: @"location", 70 | FXFormFieldTitle: @"修改定位", 71 | FXFormFieldViewController: @"WechatMapViewController" 72 | } 73 | ]; 74 | } 75 | 76 | -(NSDictionary*)setting{ 77 | return @{ 78 | FXFormFieldHeader: @"WECHATPOD", 79 | FXFormFieldFooter: @"by AloneMonkey", 80 | FXFormFieldTitle: @"WechatPod", 81 | FXFormFieldInline: @YES //首页还是在内部VC显示 82 | }; 83 | } 84 | 85 | @end 86 | 87 | CHConstructor{ 88 | pluginConfig = [WechatPodForm sharedInstance]; 89 | [[SettingForm sharedInstance] registerForm:pluginConfig]; 90 | dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 91 | [[MDSuspendBall sharedInstance] addToWindow:nil]; 92 | }); 93 | } 94 | --------------------------------------------------------------------------------