ios - 如何检测设备上是否安装了AppSync?

标签 ios security jailbreak

AppSync 会导致 iCloud 和应用内购买出现一些问题,因此我想检测它是否存在于设备上以处理 iCloud 和 IAP 的奇怪行为。有什么办法可以知道吗?

没关系,如果设备越狱,但 AppSync 会阻止我的应用程序正常工作,而且这显然是“黑客攻击的痕迹”。

最佳答案

我已经搜索并找到了 AppSync 的踪迹,这里是用于查明它是否存在于设备上的代码。是的,它比需要的时间长了一点,但我想确定一下。当然在发布代码中你应该以某种方式混淆字符串,但仅此而已:

bool isAppSyncExist()
{
    BOOL isbash = NO;
    BOOL isappsync = NO;
    FILE *f = fopen("/bin/bash", "r");
    if (f != NULL)
    {
        //Device is jailbroken
        isbash = YES;
        fclose(f);
    }

    if (isbash)
    {
        f = fopen("/Library/MobileSubstrate/DynamicLibraries/AppSync.plist", "r");
        if (f != NULL)
        {
            isappsync = YES;
            fclose(f);
        }
        if (isappsync == NO)
        {
            NSError *err;
            NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/private/var/lib/dpkg/info" error:&err];

            for (int i = 0; i < files.count; i++)
            {
                NSString *fname = [files objectAtIndex:i];
                if ([fname rangeOfString:@"appsync" options:NSCaseInsensitiveSearch].location != NSNotFound)
                {
                    isappsync = YES;
                    break;
                }
            }
        }
        if (isappsync == NO)
        {
            NSError *err;
            NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/var/lib/dpkg/info" error:&err];

            for (int i = 0; i < files.count; i++)
            {
                NSString *fname = [files objectAtIndex:i];
                if ([fname rangeOfString:@"appsync" options:NSCaseInsensitiveSearch].location != NSNotFound)
                {
                    isappsync = YES;
                    break;
                }
            }
        }
    }

    return isappsync == YES;
}

关于ios - 如何检测设备上是否安装了AppSync?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13077843/

相关文章:

iphone - 将时间戳转换为日期格式

php - 在多开发 nginx 设置中保护密码

java - 如何在 Quarkus 应用程序中检索 SecurityContext?

javascript - Kurento - WebSocket 连接失败

ios - 防止在越狱设备中安装 iOS 应用程序

ios - 任何好的 iOSOpenDev 示例代码/引用资料?

c++ - 在 iOS CocoaPod 中使用 C++

ios - UIPercentDrivenInteractiveTransition 无法通过快速手势完成动画

ios - UIButton 在 Swift 中停止 UIScrollView 滚动

ios - mprotect errno 22 iOS