`
auauau
  • 浏览: 172083 次
社区版块
存档分类
最新评论

[转]防止你的iPhone程序遭盗版(入门篇)

    博客分类:
  • iOS
阅读更多
原文: http://b.imi.im/?p=356

先澄清一下, 我也是盗版用户(先自己抽两嘴巴, 但是我已经花了$200买app, 买觉得值得的程序, 而不是apple推崇的冲动式购买, 装盗版是先预览一下这个程序是不是值得买). 在中国做软件, 想不被盗版, 不太现实.
不想自己辛辛苦苦写出来的程序被盗版? 接着看.

首先简单介绍一下原理:

现在大多数的破解苹果验证安装app的办法都会动一个文件, 就是在.app文件夹下的”Info.plist”, 也就是那个程序信息文件.

代码很简单, 不再详细解释什么意思了

1. 检查Info.plist 是否存在 SignerIdentity这个键名(Key).
未破解的程序是不会有这个键名的, 苹果没给你加, 你自己没有加, 如果有, 那是哪儿来的呢?? 嘻嘻….

if ([[[NSBundle mainBundle] infoDictionary] objectForKey: @”SignerIdentity”] != nil) {

  // 这就是被破解过的app

}


2. 检查3个文件是否存在

NSString* bundlePath = [[NSBundle mainBundle] bundlePath];

BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:(@”%@/_CodeSignature”, bundlePath)];

if (!fileExists) {

// 这就是被破解过的app

}

BOOL fileExists2 = [[NSFileManager defaultManager] fileExistsAtPath:(@”%@/CodeResources”, bundlePath)];

if (!fileExists2) {

/// 这就是被破解过的app

}

BOOL fileExists3 = [[NSFileManager defaultManager] fileExistsAtPath:(@”%@/ResourceRules.plist”, bundlePath)];

if (!fileExists3) {

// 这就是被破解过的app

}

3. 对比文件修改时间是否一致, 看看你的程序是不是被二进制编辑器修改过了

NSString* bundlePath = [[NSBundle mainBundle] bundlePath];

NSString* path = [NSString stringWithFormat:@"%@/Info.plist", bundlePath];

NSString* path2 = [NSString stringWithFormat:@"%@/程序名字", bundlePath];

NSDate* infoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:path traverseLink:YES] fileModificationDate];

NSDate* infoModifiedDate2 = [[[NSFileManager defaultManager] fileAttributesAtPath:path2 traverseLink:YES] fileModificationDate];

NSDate* pkgInfoModifiedDate = [[[NSFileManager defaultManager] fileAttributesAtPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@”PkgInfo”] traverseLink:YES] fileModificationDate];

if([infoModifiedDate timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {

//Pirated

}

if([infoModifiedDate2 timeIntervalSinceReferenceDate] > [pkgInfoModifiedDate timeIntervalSinceReferenceDate]) {

//Pirated

}


如果以上3条都没挡住丫挺的步伐, 请等我出高级篇吧 恭喜发财!

分享到:
评论

相关推荐

    iOS(iPhone)应用程序开发入门视频教程(35讲)

    资源名称:iOS(iPhone)应用程序开发入门视频教程(35讲)资源目录:【】ios(iPhone)应用程序开发入门视频教程:第10讲多视图应用程序【】ios(iPhone)应用程序开发入门视频教程:第11讲高级UI控件【】ios(iPhone)应用...

    iPhone应用程序编程指南-中文版 pdf

    《iPhone应用程序编程指南》是一本面向开发者的重要参考资料,旨在帮助读者深入理解如何为Apple的iOS平台开发应用程序。这本书的中文版使得更多的中国开发者能够轻松掌握iOS应用开发的技术和技巧。 在iPhone应用...

    iphone应用程序开发入门与实战源码

    《iPhone应用程序开发入门与实战源码》是一本旨在引导初学者进入iOS开发领域的书籍,它提供了丰富的源码实例,帮助读者深入理解iPhone应用的构建过程。这个压缩包包含的文件目录结构按照章节进行划分,方便读者按照...

    iPhone+SDK编程入门经典:使用Objective-C

    ### iPhone SDK编程入门:使用Objective-C详解 #### 获取与理解iPhone SDK 对于任何希望进入iPhone应用开发领域的开发者而言,掌握如何获取与使用iPhone SDK(Software Development Kit)是至关重要的第一步。SDK...

    12步教你IPHONE程序开发

    【描述】:“这是一篇关于IPHONE程序开发的基础介绍,适合初学者。” 【标签】:“iphone”,“apple” 【内容概述】: 本文介绍了如何从零开始开发iPhone应用程序,通过12个步骤提供了一个全面的指导过程。首先,...

    1、Iphone入门

    【Iphone入门】教程主要针对初次接触iPhone应用开发的新手,通过一步步的实践操作,教你如何从零开始创建一个简单的“Hello, World”应用程序。以下是详细的步骤解析: 1. **安装准备**:首先确保你的Mac操作系统...

    iPhone SDK编程入门经典

    ### iPhone SDK编程入门经典知识点详解 #### 一、iPhone与iOS概述 - **定义与特点**:iPhone是由苹果公司设计并销售的一款智能手机,其操作系统为iOS。iOS是一种基于Unix的操作系统,专为移动设备设计,提供了简洁...

    iPhone开发之UITableView入门2示例程序

    本示例程序“iPhone开发之UITableView入门2”旨在帮助初学者理解如何在iPhone应用程序中使用`UITableView`来创建用户界面。教程链接来源于CSDN博客的一个详细文章,我们将深入探讨其中的关键知识点。 首先,`...

    iPhone应用开发从入门到精通配套源程序的下载

    ### iPhone应用开发从入门到精通的关键知识点 #### 一、iPhone OS架构与应用程序开发 - **核心框架(Core OS)**:这是iOS系统的核心层,包含了低级的子系统和服务,如内核、驱动程序和硬件接口。 - **服务框架(Core...

    傻瓜教程:把Iphone程序连接真机调试[转]

    在IT行业中,尤其是在iOS开发领域,将iPhone应用程序连接到真机进行调试是一项基本且至关重要的技能。本教程将深入探讨如何实现这一过程,确保开发者能够有效地测试和优化他们的应用程序。 首先,我们需要理解的是...

    ④-第一个iphone程序iPhone101

    从给定的文件信息来看,我们正在探讨的主题是关于如何创建第一个iPhone应用程序,这与苹果公司的iOS开发环境紧密相关。以下是对标题、描述、标签以及部分内容的深入解析,旨在提炼出其中的关键知识点。 ### 一、...

    第四节 使用Makefile自动编译iPhone程序.docx

    使用 Makefile 自动编译 iPhone 程序 本文档主要介绍如何使用 Makefile 实现自动编译 iPhone 程序,并使用 ssh 将编译好的程序安装到 iPhone 上。我们首先介绍 Xcode 的命令行格式,然后手动编写 Makefile 文件,...

    iphone创意开发入门与实践总结

    ### iPhone创意开发入门与实践总结 #### 一、iPhone OS概览 iPhone OS是一个专为苹果公司的iPhone和iPod touch设备设计的操作系统。它由两个主要部分构成:一是操作系统本身,二是能够在这些设备上运行原生应用...

    iphone手机程序设计

    【标题】:iPhone手机程序设计入门指南 【描述】:本教程旨在为初学者提供一个全面的iPhone应用程序设计概述,包括iOS系统基础、开发环境搭建、工具介绍以及实践案例。 【标签】:iPhone 【正文】: 在当今的...

    iphone的一个小程序

    【标题】:“iPhone小程序开发入门教程” 在移动应用开发领域,iPhone应用程序的开发因其广泛的用户基础和优秀的用户体验而备受关注。对于初次接触iOS编程的新手来说,了解如何创建一个简单的iPhone小程序是踏入这...

    iPhone开发之多线程入门示例程序

    在“iPhone开发之多线程入门示例程序”中,我们主要会接触到苹果的Foundation框架中的多线程解决方案,包括NSThread、NSOperation和GCD(Grand Central Dispatch)。 首先,NSThread是Objective-C中的一个类,它...

    小程序适合iphone 调试网页的

    【标题】:“小程序适合iPhone调试网页的” 在移动设备上,尤其是iPhone,开发和调试Web应用或网页变得越来越重要。小程序是一种轻量级的应用形式,它不需要通过App Store下载安装,用户可以通过扫描二维码或者搜索...

Global site tag (gtag.js) - Google Analytics