飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 6263|回复: 7

[iOS] iOS程序破解——获取.ipa程序包

[复制链接]
  • TA的每日心情
    开心
    2019-3-25 14:18
  • 签到天数: 881 天

    [LV.10]以坛为家III

    发表于 2016-1-30 23:29:11 | 显示全部楼层 |阅读模式
    本帖最后由 GeekCat 于 2016-1-30 23:33 编辑

     原文在此

      首先肯定不是获取自己的ipa包。
      为什么要获取ipa包呢?比如,在仿写一些程序时,避免不了获取它的图片素材等等,那么最快也是最有效的方式就是获取原程序的ipa包。更或者,你想要逆向分析某一款APP时,那么只有获取了ipa后才能进行class-dump,ida等等后续工作。
    一、通过越狱设备
      如果有越狱手机,那么就变得很简单,只需要从AppStore下载到越狱手机,然后用iTools/PP助手等工具将ipa包备份到电脑即可,下图是使用PP助手:

    1.png
      
    如果只是为了获取图片素材,那么获取到ipa包解压后,显示包内容即可。但是如果想进一步进行逆向分析,还需要使用Clutch等工具进行砸壳,因为从AppStore下载的程序都是加过密的,至于砸壳不再详述。
    二、使用未越狱的手机
      在iOS8之前使用iTools等可以直接导出ipa包,但是iOS9之后就不能。(我用的是MAC系统,如果大家可以的,还烦请告诉我一声,在次谢谢)。
    三、使用电脑
      此方法只是用来获取企业账号发布的APP。在一些情况下,公司可能发布一款违背苹果审核规则的APP,不能上架AppStore,那么可以使用企业账号发布在自己的网站上,然后通过微信、微博或者扫二维码的方式分发推广应用。
      1 我们就可以直接将他们推广的网址输进电脑浏览器,这是会获得plist文件,或者浏览器提示无法打开并给出itms-services:///?action=download-manifest&url=...一大串提醒。
        如果是plist文件,那么用Xcode打开plist文件,将下图中红色框住的部分即是ipa的下载路径,复制后直接用浏览器打开即可。
    2.png
        如果是一串itms-services:///?action=download-manifest&url=...这样的提醒,那么“url=“后面的链接直接就是plist文件的下载地址,同样是复制用浏览器打开即可,后续操作和上面一样。
      2 现在程序的保护意识都加强了,可能服务器会判断你的设备如果不是手机则拒绝下载,直接返回失败,那么这种情况,可以将MAC下的浏览器通过修改userAgent伪装成手机的Safari浏览器。下面以火狐浏览器为例:
      A)首先打开Firefox在地址栏输入:about:config,这时会有提醒,直接点击I promise!即可
    3.png
      B)在搜索里面搜索:general.useragent.override,第一次是搜索不到的,然后再空白区域右击->New->String
    4.png
      C)在弹出的框里面输入general.useragent.override->OK
    5.png
      D)再在弹出的框中输入具体的值,比如:iPhone6,iPhone5s,iPhone4s(目前我只有这三款手机,欢迎添加,获取方法见下面代码)。
        iPhone6,iOS9.0.2:Mozilla/5.0 (iPhone; CPU iPhone OS 9_0_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13A452
            iPhone5s,iOS9.0.2:Mozilla/5.0 (iPhone; CPU iPhone OS 9_0_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13A452
            iPhone4s,iOS7.1.1:Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_1 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Mobile/11D201
      如果上面三款不符合你的要求,下面贴上获取手机userAgent的代码,可以根据需要来获取自己需要的手机型号,注意:要真机调试:

    - (void)viewDidLoad {
        [super viewDidLoad];
        UIWebView *webView  = [[UIWebView alloc] initWithFrame:CGRectZero];
        NSString *userAgent = [webView stringByEvaluatingJavaScriptFromString:@"navigator.userAgent"];
        NSLog(@"--%@--",userAgent);
    }

      6.png
      最后,关闭浏览器再次打开进行1的操作。企业账号发布的应用都是没有加密的,直接使用class-dump,ida/Hopper Disassembler分析即可,当然图片素材也是可以获得的。
      综上,通过越狱手机不仅可以获得AppStore上的APP,更可以获得企业账号发布的APP,如果是AppStore上的APP且想进行逆向分析,还需要使用clutch工具进行砸壳。如果没有越狱手机,可以通过浏览器获取企业账号发布的APP,有可能需要伪装成手机浏览器,其实如果对方服务器添加了签名验证,那么即便是伪装成手机浏览器也不能获取了,所以,如果自己在发布企业app时,如果不想被破解,最后使用签名验证的方式。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-4-4 10:28
  • 签到天数: 96 天

    [LV.6]常住居民II

    发表于 2016-1-31 11:50:52 | 显示全部楼层
    下来看看,能用上不
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    21 小时前
  • 签到天数: 808 天

    [LV.10]以坛为家III

    发表于 2016-1-31 17:43:19 | 显示全部楼层
    谢谢分享,认真学习一下
    PYG19周年生日快乐!
  • TA的每日心情
    擦汗
    2019-3-1 23:51
  • 签到天数: 559 天

    [LV.9]以坛为家II

    发表于 2016-1-31 20:29:09 | 显示全部楼层
    谢谢楼主分享
    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2024-2-15 14:17
  • 签到天数: 130 天

    [LV.7]常住居民III

    发表于 2016-2-1 08:54:19 | 显示全部楼层
    原来如此,谢谢楼主分享!
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2021-2-7 20:38
  • 签到天数: 90 天

    [LV.6]常住居民II

    发表于 2016-2-11 16:00:32 | 显示全部楼层
    前来留下足印~
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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