美文网首页APP安全
检测 iOS 应用是否存在篡改和二次签名打包的风险

检测 iOS 应用是否存在篡改和二次签名打包的风险

作者: 富春江水 | 来源:发表于2024-05-15 10:30 被阅读0次

应用被篡改后二次打包不仅发者的利益,而且也使 APP 用户遭受到不法应用的恶意侵害。攻击者可以通过对客户端程序添加或修改代码,修改客户端资源图片、配置信息、图标,添加广告,二次打包成其他应用,导致大量盗版应用的出现;还能添加病毒代码、添加恶意代码,实现应用钓鱼,从而窃取登录账号密码、支付密码等。
以下是实现代码:

- (BOOL)checkCodesign:(NSString*)teamID {
    //获取描述文件路径
    NSString *embeddedPath = [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"];
    if ([[NSFileManager defaultManager] fileExistsAtPath:embeddedPath]) {
        // 读取application-identifier
        NSString *embeddedProvisioning = [NSString stringWithContentsOfFile:embeddedPath encoding:NSASCIIStringEncoding error:nil];
        NSArray *embeddedProvisioningLines = [embeddedProvisioning componentsSeparatedByCharactersInSet:[NSCharacterSet newlineCharacterSet]];
        for (int i = 0; i < [embeddedProvisioningLines count]; i++) {
            if ([[embeddedProvisioningLines objectAtIndex:i] rangeOfString:@"application-identifier"].location != NSNotFound) {
                NSInteger fromPosition = [[embeddedProvisioningLines objectAtIndex:i+1] rangeOfString:@"<string>"].location+8;
                NSInteger toPosition = [[embeddedProvisioningLines objectAtIndex:i+1] rangeOfString:@"</string>"].location;
                NSRange range;
                range.location = fromPosition;
                range.length = toPosition - fromPosition;
                NSString *fullIdentifier = [[embeddedProvisioningLines objectAtIndex:i+1] substringWithRange:range];
                NSArray *identifierComponents = [fullIdentifier componentsSeparatedByString:@"."];
                NSString *appIdentifier = [identifierComponents firstObject];
                // 对比签名ID
                if ([appIdentifier isEqual:teamID]) {
                    NSLog(@"签名验证签名验证成功");
                    return YES;
                } else{
                    NSLog(@"签名验证签名验证失败");
                    return NO;
                }
                break;
            }
        }
    }
}

相关文章

  • APP安全问题

    1.应用签名未校验风险:检测 App 程序启动时是否校验签名证书。 2.应用数据任意备份风险 Android 2....

  • iOS 应用完整性校验

    目录 -为什么要做完整性校验?-检测文件是否被篡改的三种方法?-测试是否添加成功?(iOS重签名) 为什么要做完整...

  • iOS App的几种安全防范

    iOS App安全防范总结: 1.防止抓包篡改数据 2.防止反编译 3.阻止动态调试 4.防止二次打包 关键检测:...

  • iOS打包签名,你真的懂吗?

    iOS打包签名,你真的懂吗?iOS打包签名,你真的懂吗?

  • Android签名机制

    文章摘要 为何需要Android签名 防止APK被恶意篡改后,二次签名打包。 基本概念 1.数据摘要:本质上是一种...

  • iOS逆向 代码注入+Hook

    本文涉及内容无风险,但某信有检测BundId机制,建议不要大号登录 本文是建立在应用重签名的基础上 iOS逆向 应...

  • Android签名文件

    在Android应用程序打包成Apk的过程中,为防止生成的Apk被篡改,需要进行签名,生成一个签名包。在Apk的M...

  • Dex篡改和注入 & 使用 V1+V2 的签名策略

    APP 仅使用 V1 签名时, 攻击者可以注入 Dex 代码而不修改签名,存在被篡改的风险。 使用 V1+V2 的...

  • iOS重签名

    重组 IPA (打包再签名) - 窥打包签名流程 iOS数字签名及ipa重签名 ipa重签名的四种方式 ios 企...

  • Android apk 二次打包及防范简单体验

    Android应用开发完成后编译打包成apk文件,而正式发布的Android应用打包时都会进行签名。而apk的二次...

网友评论

    本文标题:检测 iOS 应用是否存在篡改和二次签名打包的风险

    本文链接:https://www.haomeiwen.com/subject/wnpvfjtx.html