发新帖

IOS应用安全(七): 自签名应用开发

[复制链接]
6206 4
本帖最后由 ken 于 2015-10-20 21:16 编辑

原文地址

通常,为了在设备上测试应用,你需要每年花费99美元注册一个开发者账号。对于想要学习IOS应用安全的人来说,能够在设备上运行并且完成测试是非常重要的。对于一些不想在App Store上发布应用的人来说,每年花费99美元不值得。这一篇文章会讲到如何在一台越狱的idevice不需要开发者账号来安装应用程序。然后下一篇文章讲怎样在设备上运行我们自己的应用和使用Cycript完成Method Swizz和其他一些技术。

作者使用的环境是IOS 5.1 Xcode4.5.2。我自己试了下,在OSX 11 Xcode6.4也能成功,不知道能不能在实机运行。

第一步就是创建一个我们自己的证书。用于为我们自己创建的应用签名。
打开Finder→实用程序→打开钥匙串访问→文件→证书助理→创建一个新的证书。


name随便写,身份类型选择自签名证书,证书类型选择代码签名。

下面就是我们创建的证书


现在把  /应用程序/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist 这个目录下的文件Info.plist  复制出来到桌面上用Xcode编辑。
将出现的
XCiPhoneOSCodeSignContext全部改成XCCodeSignContext。修改好如下图。


在将Info.plist复制到原来的地方覆盖源文件。需要给予权限,输你的密码就OK了。

现在我们用Xocde来创建一个简单Xcode项目,选择
Single View Application


下面内容随便填


作者用ios 5.1设备运行这个应用,因此这里IOS 开发目标系统填的是5.1。你也可以填写其他版本系统。但前提能够运行它。

点击项目名选择目录下的Main.Storyboard进入界面设计的界面。添加个标签随意写些数据。

现在,我们必须使用我们前面生成的签名来编译。点击项目名,然后右边选择build Setting。在code signing identity右边选择我们前面生成的证书。

现在选择你想要在设备上运行的应用程序。如果由于某种原因,设备没有出现在名单上,点击Organizer –> Devices –> Your device.

在您选择的设备,点击Run,你会得到一个警告,下图所示。点击总是always allow,可能会出现一些错误在你的设备或者Xcode但是这个app已经被安装了在你的设备了。从你的电脑断开你的设备,退出当前应用程序的实例再运行一遍。这时再运行不会再出现错误。

还有一些其他的方法来运行设备上的应用。使用Xcode创建一个项目时,会在Xcode指定的目录下创建一个.app文件。这个目录默认是/Users/$[YOUR_USER_NAME]/Library/Developer/Xcode/DerivedData/$[YOUR_APP_NAME_APP_ID]/Build/Products/Debug-iphoneos/。在这里,作者对应的目录是
/Users/prateekgianchandani/Library/Developer/Xcode/DerivedData/SelfSignedApp-bfzixtyoynrxxlgigskifizrfqqw/Build/Products/Debug-iphoneos。

让我们复制.app文件到桌面使用以下命令。

mv /Users/$[YOUR_USER_NAME]/Library/Developer/Xcode/DerivedData/$[YOUR_APP_NAME_APP_ID]/Build/Products/Debug-iphoneos/SelfSignedApp.app /Users/$[YOUR_USER_NAME]/Desktop/



现在创建一个文件夹命名为Payload,把SelfSigned.app下的程序文件放在里面,压缩文件夹(这将是最初命名为Payload.zip)并把文件名改名为SelfSigned.ipa。
一旦我们有ipa文件,有两种方法来安装它。一是拖拽这个ipa文件在iTunes应用部分,然后使用iTunes安装设备上的应用。

另一种方法是将这个ipa文件使用sftp上传到设备,然后使用一个称为installipa的程序安装在你的设备上。Installipa可以从Cydia下载到你的设备中。


使用sftp上传这个文件到你的设备。

然后ssh到你的设备和使用命令行工具installipa安装应用程序


这将在你的设备上安装应用程序。你可能需要重启或者注销才能使这个程序能够正常运行

结论


在本文中,我们研究了如何安装自定义应用程序在设备上没有一个有效的开发人员证书。在下一篇文章中,我们将使用这些技术来安装我们自己的应用程序在设备上,然后执行各种测试。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

举报 使用道具

回复

精彩评论4

tomcnc    发表于 2015-9-18 17:28:43 | 显示全部楼层
顶大神!

举报 使用道具

回复
FindAllBlue    发表于 2015-9-21 22:00:49 | 显示全部楼层
这个标题是不是取错了,应该叫做免证书开发!!

举报 使用道具

回复 支持 反对
ken    发表于 2015-10-11 13:53:33 | 显示全部楼层
FindAllBlue 发表于 2015-9-21 22:00
这个标题是不是取错了,应该叫做免证书开发!!

免证书开发  bingo

举报 使用道具

回复 支持 反对
lh007    发表于 2016-3-14 02:47:56 | 显示全部楼层
不是,请问一个自己修改过的成品ipa,如何让他自己下载?也就是不越狱正常使用。
1.开发者账号,2.证书。请问设么方案代价,方便??

举报 使用道具

回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表