jjolano / shadow

A jailbreak detection bypass for modern iOS jailbreaks.
https://ios.jjolano.me
BSD 3-Clause "New" or "Revised" License
822 stars 136 forks source link

Detection bypass seems to disable tweaks even when not in lockdown #16

Closed buitim closed 5 years ago

buitim commented 5 years ago

I recently jumped to 12.2 from 11.3.1 and noticed that by turning on the detection bypass in Shadow, none of my tweaks would be loaded (essentially lockdown mode or using NoSub/UnSub). iOS 12.2 seems to have broken a few other tweaks, so I think this might have to do with the OS itself and how this tweak interacts/hooks(?) with/into it.

Steps to replicate: I enabled Shadow for Dragalia Lost while using iPad Status Bar. The status bar changes did not take effect while the app was open.

jjolano commented 5 years ago

Thanks for the report. Most likely an issue with iOS 12.2 itself. Shadow shouldn't disable any tweaks at all without lockdown (in fact, the actual code to do so isn't even hooked without lockdown).

Since my one and only device is on 12.1.2 and hesitating to upgrade due to known compatibility issues, I can give you a debug build of Shadow if you are willing to test and report console messages which may help guide me in the right direction to attempt fixes.

buitim commented 5 years ago

Sure thing. I can try. But as a head's up, I currently work a full-time and a side part-time job so my responses will be slow at times.

jjolano commented 5 years ago

No rush. me.jjolano.shadow_2.0.19-1+debug_iphoneos-arm.deb.zip

buitim commented 5 years ago

Here's my syslog filtered by shadow. Let me know if you need something in specific. I have since deleted the app in question, but I tried enabling shadow for another app which produced the same issues.

error   01:56:57.458960-0700    kernel  Sandbox: Authy(42174) deny(1) file-map-executable /Library/MobileSubstrate/DynamicLibraries/0Shadow.dylib
default 01:56:57.469589-0700    Authy   [shadow] bundleIdentifier: com.authy
default 01:56:57.473428-0700    Authy   [shadow] detected Substitute
default 01:56:57.474113-0700    Authy   [shadow] using tweak compatibility mode
default 01:56:57.474781-0700    Authy   [shadow] initialized internal path map
default 01:56:57.486074-0700    Authy   [shadow] initialized file map (6478 items)
default 01:56:57.486120-0700    Authy   [shadow] initialized url set (15 items)
default 01:56:57.486654-0700    Authy   [shadow] hooked bypass methods
default 01:56:57.486793-0700    Authy   [shadow] hooked detection libraries
default 01:56:57.486975-0700    Authy   [shadow] filtering dynamic libraries
default 01:56:57.519556-0700    Authy   [shadow] restricted path: /usr/lib/libmis.dylib
default 01:56:57.542881-0700    Authy   [shadow] generated dyld array (411 items)
default 01:56:57.543198-0700    Authy   [shadow] enabled advanced dynamic library filtering
default 01:56:57.558268-0700    Authy   [shadow] ready
default 01:56:57.558316-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/0Shadow.plist
default 01:56:57.558358-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Activator.dylib
default 01:56:57.558428-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Activator.plist
default 01:56:57.558475-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/AppList.dylib
default 01:56:57.558521-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/AppList.plist
default 01:56:57.558588-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/BetterReachability.dylib
default 01:56:57.558650-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/BetterReachability.plist
default 01:56:57.558695-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/BrickFix.dylib
default 01:56:57.558760-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/BrickFix.plist
default 01:56:57.558808-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CCSupport.dylib
default 01:56:57.558855-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CCSupport.plist
default 01:56:57.558923-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CallDismiss12.dylib
default 01:56:57.558995-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CallDismiss12.plist
default 01:56:57.559118-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CepheiContainerSupport.dylib
default 01:56:57.559194-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CepheiContainerSupport.plist
default 01:56:57.559256-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CepheiSpringBoard.dylib
default 01:56:57.559304-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/CepheiSpringBoard.plist
default 01:56:57.559401-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ClassicFolders2.dylib
default 01:56:57.559453-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ClassicFolders2.plist
default 01:56:57.559498-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ColorBadges.dylib
default 01:56:57.559572-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ColorBadges.plist
default 01:56:57.559619-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ColorBanners2.dylib
default 01:56:57.559667-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ColorBanners2.plist
default 01:56:57.559762-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ColorFlow4.dylib
default 01:56:57.559809-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/ColorFlow4.plist
default 01:56:57.559854-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Cr4shed.dylib
default 01:56:57.559961-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Cr4shed.plist
default 01:56:57.560009-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Cr4shedSB.dylib
default 01:56:57.560056-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Cr4shedSB.plist
default 01:56:57.560157-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/DoubleTapLock.dylib
default 01:56:57.560234-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/DoubleTapLock.plist
default 01:56:57.560282-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Essentials.dylib
default 01:56:57.560399-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Essentials.plist
default 01:56:57.560447-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Flex.dylib
default 01:56:57.560491-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Flex.plist
default 01:56:57.560555-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Flipswitch.dylib
default 01:56:57.560604-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Flipswitch.plist
default 01:56:57.560651-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/HapLock.dylib
default 01:56:57.560720-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/HapLock.plist
default 01:56:57.560766-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/IconSupport.dylib
default 01:56:57.560812-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/IconSupport.plist
default 01:56:57.560890-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Jellyfish.dylib
default 01:56:57.560940-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Jellyfish.plist
default 01:56:57.560983-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/LetMeBlock.dylib
default 01:56:57.561049-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/LetMeBlock.plist
default 01:56:57.561099-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/MessageColors.dylib
default 01:56:57.561151-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/MessageColors.plist
default 01:56:57.561232-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/MobileSafety.dylib
default 01:56:57.561281-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/MobileSafety.plist
default 01:56:57.561326-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/MsgPin.dylib
default 01:56:57.561404-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/MsgPin.plist
default 01:56:57.561453-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/NeonBoard.dylib
default 01:56:57.561496-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/NeonBoard.plist
default 01:56:57.561568-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Neptune.dylib
default 01:56:57.561614-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Neptune.plist
default 01:56:57.561661-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/NewGridSwitcher.dylib
default 01:56:57.561743-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/NewGridSwitcher.plist
default 01:56:57.561794-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/PowerSelectorOptions.dylib
default 01:56:57.561841-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/PowerSelectorOptions.plist
default 01:56:57.561909-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/PreferenceLoader.dylib
default 01:56:57.561961-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/PreferenceLoader.plist
default 01:56:57.562007-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/PreferenceOrganizer2.dylib
default 01:56:57.562093-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/PreferenceOrganizer2.plist
default 01:56:57.562140-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/RocketBootstrap.dylib
default 01:56:57.562184-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/RocketBootstrap.plist
default 01:56:57.562282-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SSGestures.dylib
default 01:56:57.562326-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SSGestures.plist
default 01:56:57.562372-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SSGesturesiOS12Fix.dylib
default 01:56:57.562437-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SSGesturesiOS12Fix.plist
default 01:56:57.562484-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SelectionPlus.dylib
default 01:56:57.562530-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SelectionPlus.plist
default 01:56:57.562577-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Selector.dylib
default 01:56:57.562623-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Selector.plist
default 01:56:57.562666-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SharedFix.dylib
default 01:56:57.562710-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SharedFix.plist
default 01:56:57.562757-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SmoothCursor.dylib
default 01:56:57.562803-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SmoothCursor.plist
default 01:56:57.562849-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Snapper2.dylib
default 01:56:57.562896-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Snapper2.plist
default 01:56:57.562942-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SparkAppListSB.dylib
default 01:56:57.562988-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SparkAppListSB.plist
default 01:56:57.563034-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Spos.dylib
default 01:56:57.563077-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Spos.plist
default 01:56:57.563124-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SugarCane.dylib
default 01:56:57.563169-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/SugarCane.plist
default 01:56:57.563308-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Tabsa.dylib
default 01:56:57.563359-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Tabsa.plist
default 01:56:57.563405-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Ultrasound.dylib
default 01:56:57.563451-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Ultrasound.plist
default 01:56:57.563499-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Vesta.dylib
default 01:56:57.563544-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/Vesta.plist
default 01:56:57.563591-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/VestaActivatorListener.dylib
default 01:56:57.563638-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/VestaActivatorListener.plist
default 01:56:57.563689-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/WatchReboot.dylib
default 01:56:57.563736-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/WatchReboot.plist
default 01:56:57.563787-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/afc2dService.dylib
default 01:56:57.563832-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/afc2dService.plist
default 01:56:57.563879-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/afc2dSupport.dylib
default 01:56:57.563930-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/afc2dSupport.plist
default 01:56:57.563975-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/appstoreplus.dylib
default 01:56:57.564022-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/appstoreplus.plist
default 01:56:57.564068-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/appstoreplusUI.dylib
default 01:56:57.564116-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/appstoreplusUI.plist
default 01:56:57.564163-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/com.satvikb.selectionplus.bundle
default 01:56:57.564213-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/flatfields.dylib
default 01:56:57.564260-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/flatfields.plist
default 01:56:57.564306-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/iCleanerLib.dylib
default 01:56:57.564680-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/iCleanerLib.plist
default 01:56:57.564764-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/libbulletin.dylib
default 01:56:57.564812-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/libbulletin.plist
default 01:56:57.564883-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/mmaintenanced_hook.dylib
default 01:56:57.565104-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/mmaintenanced_hook.plist
default 01:56:57.565145-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/tweakcompatiblezebra.dylib
default 01:56:57.565188-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/tweakcompatiblezebra.plist
default 01:56:57.565232-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/zzzzzzUnSub.dylib
default 01:56:57.565274-0700    Authy   [shadow] restricted path: /Library/MobileSubstrate/DynamicLibraries/zzzzzzUnSub.plist
default 01:56:57.659476-0700    Authy   [shadow] restricted path: /bin/bash
default 01:56:57.659533-0700    Authy   [shadow] restricted path: /bin/sh
default 01:56:57.659610-0700    Authy   [shadow] restricted path: /Applications/Cydia.app
default 01:56:57.713716-0700    Authy   [shadow] restricted path: /usr/lib/libmis.dylib
default 01:56:57.965698-0700    Authy   [shadow] tracking link /var/db/timezone/localtime -> /var/db/timezone/zoneinfo/America/Los_Angeles
default 01:56:57.966367-0700    Authy   [shadow] tracking link /var/db/timezone/localtime -> /var/db/timezone/zoneinfo/America/Los_Angeles
jjolano commented 5 years ago

Interesting. It's detecting Substitute for some reason but you're on unc0ver? I do have Substrate-specific code which actually allows tweaks to load properly so I actually know how to fix this issue. Can you give me a file listing of /usr/lib (using ls from terminal/ssh or Filza or any other method)

buitim commented 5 years ago

I think I found the issue. I had Substitute Dummy for Unc0ver installed for whatever reason. Removed it and everything works as expected (from the short little test I did). However I can still send a file list your way when I get back home if you still need it.

jjolano commented 5 years ago

That would do it. No need for file list. I probably need a better method of detecting whether Substitute or Substrate is active.

buitim commented 5 years ago

Thanks for your help! Closed.

jjolano commented 5 years ago

Released 2.0.19 specifically to fix this issue. Others may have that package installed as well.