在未越狱的机器上安装破解软件 支持 xcode 4.2

分类: iphone2011-12-09 17:58 78人阅读 评论(0) 收藏 举报

厄~我承认这个标题很有诱惑性和极具危险性,我虽不是法盲,但这么高级的法律知识我还真不懂,如果侵犯到了某人的利益,请及时通知我撤销文章,并当众给您道歉,上CCAV道歉都成~很诚意的!


本文只讲述一段故事,这个故事是说某公司开发了一个软件,在没代码,没越狱机器也没上APPSTORE的情况下,公司其他员工(非本人)利用不道德的手段将IPA安装到了手机上,道德我们不谈了,谈谈他是咋做的吧!(但也不保证所有软件都能顺利安装)


首先要有个MAC电脑(据某人说黑苹果也成,毕竟技术都是一样的),然后要装个xcode 下面的模板专门针对xcode 4以上的(下面的模板在4.2上顺利通过)

如果不想花99刀买开发者证书就上GOOGLE上搜搜“免费真机调试”(郑重声明,我说的免费真机调试是指有些人愿意帮忙申请证书的,如果您搜索到其他不道德的文章,一切责任你知道不管我事就成了~)


装好之后去下个CrappStore For Xcode 4.zip(http://imzdl.com/有下载),打开crappstore不要安装,找到CrappStoreXC4Installer右键选择“Show Package Contents”进入Contents->Resources将CrappStore文件夹拷贝到/Users/apple/Library/Developer/Xcode/Templates/Project Templates下,重启xcode新建一个工程,发现左面有个CrappStore的模板,这就表示CrappStore安装好了,先不用记着去试,现在需要修改一下CrappStore的模板,让他更自动化~

在/Users/apple/Library/Developer/Xcode/Templates/Project Templates/CrappStore/CrappStore.xctemplate/新建一个Entitlements.plist文件内容为:

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
  3. <plist version="1.0">  
  4. <dict>  
  5.     <key>get-task-allow</key>  
  6.     <true/>  
  7. </dict>  
  8. </plist>  

打开同目录下的TemplateInfo.plist将其内容改为:
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  
  3. <plist version="1.0">  
  4. <dict>  
  5.     <key>Ancestors</key>  
  6.     <array>  
  7.         <string>com.iPAGod.base</string>  
  8.         <string>com.iPAGod.iosbase</string>  
  9.     </array>  
  10.     <key>Concrete</key>  
  11.     <true/>  
  12.     <key>Definitions</key>  
  13.     <dict>  
  14.         <key>Entitlements.plist</key>  
  15.         <dict>  
  16.             <key>Path</key>  
  17.             <string>Entitlements.plist</string>  
  18.         </dict>  
  19.         <key>Classes/AppDelegate.h</key>  
  20.         <dict>  
  21.             <key>Group</key>  
  22.             <string>Classes</string>  
  23.             <key>Path</key>  
  24.             <string>Classes/AppDelegate.h</string>  
  25.         </dict>  
  26.         <key>Classes/AppDelegate.m</key>  
  27.         <dict>  
  28.             <key>Group</key>  
  29.             <string>Classes</string>  
  30.             <key>Path</key>  
  31.             <string>Classes/AppDelegate.m</string>  
  32.         </dict>  
  33.         <key>main.m</key>  
  34.         <dict>  
  35.             <key>Group</key>  
  36.             <string>Other Sources</string>  
  37.             <key>Path</key>  
  38.             <string>main.m</string>  
  39.         </dict>  
  40.         <key>plusutil</key>  
  41.         <dict>  
  42.             <key>Path</key>  
  43.             <string>plusutil</string>  
  44.         </dict>  
  45.     </dict>  
  46.     <key>Description</key>  
  47.     <string>CrappStore, your way for installing cracked apps on a non-jailbroken device (Developer Account Needed).</string>  
  48.     <key>Identifier</key>  
  49.     <string>com.iPAGod.CrappStore</string>  
  50.     <key>Kind</key>  
  51.     <string>Xcode.Xcode3.ProjectTemplateUnitKind</string>  
  52.     <key>Nodes</key>  
  53.     <array>  
  54.         <string>Entitlements.plist</string>  
  55.         <string>main.m</string>  
  56.         <string>Classes/AppDelegate.h</string>  
  57.         <string>Classes/AppDelegate.m</string>  
  58.         <string>plusutil</string>  
  59.     </array>  
  60.     <key>Options</key>  
  61.     <array>  
  62.         <dict>  
  63.             <key>Identifier</key>  
  64.             <string>deviceFamily</string>  
  65.             <key>Units</key>  
  66.             <dict>  
  67.                 <key>iPhone</key>  
  68.                 <dict>  
  69.                     <key>Definitions</key>  
  70.                     <dict/>  
  71.                 </dict>  
  72.             </dict>  
  73.         </dict>  
  74.     </array>  
  75.     <key>Targets</key>  
  76.     <array>  
  77.         <dict>  
  78.             <key>BuildPhases</key>  
  79.             <array>  
  80.                 <dict>  
  81.                     <key>Class</key>  
  82.                     <string>ShellScript</string>  
  83.                     <key>ShellPath</key>  
  84.                     <string>/bin/bash</string>  
  85.                     <key>ShellScript</key>  
  86.                     <string>THISPATH="${SOURCE_ROOT}/${PROJECT_NAME}"  
  87.   
  88. # remove exist one & unzip  
  89. if [ -d "${THISPATH}/Payload" ] ; then  
  90. rm -rf "${THISPATH}/Info.plist"  
  91. rm -rf "${THISPATH}/ItunesArtwork"  
  92. rm -rf "${THISPATH}/iTunesMetadata.plist"  
  93. rm -rf "${THISPATH}/Payload"  
  94. fi  
  95.   
  96. IPAFILE=`ls "${THISPATH}"/*.ipa 2>/dev/null` # */  
  97. unzip -q "${IPAFILE}" -d "${THISPATH}"  
  98.   
  99. IPANAME=`ls "${THISPATH}/Payload/" 2>/dev/null`  
  100. IPAPATH="${THISPATH}/Payload/${IPANAME}"  
  101.   
  102. if [ "${PLATFORM_NAME}" == "iphoneos" ]; then  
  103. if [ -f "${IPAPATH}"/Info.plist ]; then  
  104. # remove code signer  
  105. rm -fr "${IPAPATH}"/SC_Info "${IPAPATH}"/CodeResources "${IPAPATH}"/_CodeSignature  
  106. # crack code signer  
  107. "${THISPATH}"/plusutil -r SignerIdentity "${IPAPATH}"/Info.plist  
  108. # copy info.plist to root folder  
  109. cp "${IPAPATH}"/Info.plist "${THISPATH}"  
  110. # ???  
  111. if [ -d "${IPAPATH}"/"${PROJECT_NAME}" ]; then  
  112. if [ ! -x "${IPAPATH}"/"${PROJECT_NAME}" ]; then  
  113. chmod +x "${IPAPATH}"/"${PROJECT_NAME}"  
  114. fi  
  115. fi  
  116. # remove iTunesArtwork  
  117. if [ -e "${IPAPATH}"/iTunesArtwork ] ; then  
  118. rm -f "${IPAPATH}"/iTunesArtwork  
  119. fi  
  120. # copy everything in ipa to build target folder  
  121. if [ -e "${BUILT_PRODUCTS_DIR}"/"${WRAPPER_NAME}" ] ; then  
  122. cp -r "${IPAPATH}"/* "${BUILT_PRODUCTS_DIR}"/"${WRAPPER_NAME}"/ # */  
  123. echo "Payload OK"  
  124. exit 0  
  125. else  
  126. echo "Release build folder build/Release-iphoneos/${WRAPPER_NAME} not found"  
  127. exit 1  
  128. fi  
  129. fi  
  130. fi</string>  
  131.                 </dict>  
  132.             </array>  
  133.         </dict>  
  134.     </array>  
  135.     <key>Project</key>  
  136.     <dict>  
  137.         <key>SharedSettings</key>  
  138.         <dict>  
  139.             <key>CODE_SIGN_ENTITLEMENTS</key>  
  140.             <string>___PACKAGENAME___/Entitlements.plist</string>  
  141.         </dict>  
  142.     </dict>  
  143. </dict>  
  144. </plist>  

这里主要修改里面的脚本,至此修改完毕。剩下的就是怎么操作了~


1.  将某破解过的IPA文件使用unzip解压(IPA就是个ZIP的压缩包而已),找到压缩包里的Payload文件夹,将Payload文件夹下面的文件夹名字复制出来(这一步就是为了保证工程的名字和原IPA的名字一致,这样在编译的时候将新生成的可执行文件偷梁换柱成原IPA的程序)。

2.  打开xcode,使用CrappStore为模板创建一个工程,工程的名字为刚才复制下来的名字,然后保存工程到任意位置。

3.  从工程的目录树中找到main.m文件,右击选择“show in finder”,将某破解过的IPA文件复制到这个目录中。

4.  工程目标选择真机,点击"build and run",然后赶快双手合十祈祷人品发力!

5.  如果一切顺利的话真机会自动的运行起程序。

6.  如果失败了,首先检查在第三步中的目录下有没有Info.plist文件:如果有,说明你的证书有问题,改之;如果没有,说明脚本有问题,解决方法找某人~


再次声明!本文纯属技术贴,侵犯您的权利请告知我,我会尽快删除并赔礼道歉;我会在我力所能及的范围之内赔偿你损失,如果之外我只能当死猪赖着爱咋咋地了~(之内之外的解释权归本人所有)!

原文地址:https://www.cnblogs.com/moonvan/p/2353275.html