微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检测 Xamarin 形式的越狱绕过

如何解决检测 Xamarin 形式的越狱绕过

我的基于 Xamarin 的 iOS 应用程序不应在越狱设备中运行。这是由于 IS 审计。我已经实现了越狱检测机制。但是我找不到一种方法来检测是否有人使用越狱绕过方法,例如 A-bypass、阴影调整。任何进行这些调整的人都可以轻松绕过越狱的检测代码

这是我使用的类,

    [assembly: Dependency(typeof(CheckHardware))]
    namespace CustApp.iOS
    {
        public class CheckHardware : IHardwareSecurity
        {
    
            public CheckHardware()
            {
            }
    
            public bool IsJailBreaked()
            {
    
                if (isPath() || canCreateFile() || isOpenLink())
                {
                    return true;
    
                }
                else
                {
    
                    return false;
    
                }
    
            }
    
            private bool isPath()
            {
    
                bool res = false;
    
                List<string> pathList = new List<string>
                 {
                     "/Applications/Cydia.app","/Applications/Checkra1n.app","/Applications/FakeCarrier.app","/Applications/Icy.app","/Applications/IntelliScreen.app","/Applications/MxTube.app","/Applications/RockApp.app","/Applications/SBSettings.app","/Applications/WinterBoard.app","/Applications/blackra1n.app","/Library/MobileSubstrate/DynamicLibraries/LiveClock.plist","/Library/MobileSubstrate/DynamicLibraries/Veency.plist","/Library/MobileSubstrate/MobileSubstrate.dylib","/System/Library/launchdaemons/com.ikey.bbot.plist","/System/Library/launchdaemons/com.saurik.Cydia.Startup.plist","/etc/apt","/private/var/lib/apt","/private/var/lib/apt/","/private/var/lib/cydia","/private/var/mobile/Library/SBSettings/Themes","/private/var/stash","/private/var/tmp/cydia.log","/usr/bin/sshd","/var/cache/apt","/var/lib/apt","/usr/libexec/sftp-server","/usr/sbin/sshd","/bin/bash","/var/lib/cydia"
                 };
    
                foreach (var fullPath in pathList)
                {
                    if (File.Exists(fullPath))
                    {
                        res = true;
                    }
                }
    
                return res;
    
            }
    
            private bool canCreateFile()
            {
    
                try
                {
                    File.WriteallText("/private/jailbreak.txt","This is a test.");
                    return true;
                }
                catch (UnauthorizedAccessException)
                {
                    return false;
                }
    
            }
    
            private bool isOpenLink()
            {
    
                if (UIApplication.SharedApplication.CanopenUrl(NSUrl.FromString("cydia://package/com.example.package")))
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
    
            public bool IsInEmulator()
            {
                bool isSimulator = Runtime.Arch == Arch.SIMULATOR;
                return isSimulator;
            }
    
    
        }
    
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。