飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 14698|回复: 9

[iOS] 《PV 私密相册》优雅破解 初学教程

[复制链接]
  • TA的每日心情
    奋斗
    2016-1-13 12:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    发表于 2019-11-29 14:19:33 | 显示全部楼层 |阅读模式
    0x1 条件:
         这是最基本 : "一部 iPhone 6s 手机" 和 "一台 MBP"。
    请出 checkra1n 越狱,永久越,真香

    1.png
    越不了机器,还是日比去算了。。。。

    0x2基础:
         请移步学习完:
    零基础一行代码快速破解iOS某App https://www.chinapyg.com/thread-135910-1-1.html

    2.png
    学习完后,相信你对 Frida,对 Theos-tweak 越狱开发有一定了解了不懂一定要问,不能纸上谈兵

    0x3目标介绍:
          这是一款用来隐藏手机相册里私密照片和视频的软件,双层密码加密安全保护隐私。
    目标在我手机安装了比较久,我也是正版用户,非常喜爱它。就以它为目标,有感觉,你才会日,对不对??

    0x4准备工作:
    吊大们没提到的,我在这都作个小小讲解:
    先打开App 显示手机进程序:frida-ps -U  >>>得到: PV
    3.png

    利用 Frida 脚本,一键脱壳
    中转端口:iproxy 2222 22
    5.png

    执行脱壳:python2 dump.py PV
    6.png

    打开 Info.plist >>>查看>>得到: com.camerasideas.photovault
    4.png

    0x5 神器再出场:
          刚开始 Frida ,我也是比较生疏,反正就是各种查。。。。
    像飘总说的:选择用关键字在作死的边缘反复进行试探:
    frida-trace -U -f com.camerasideas.photovault -m "*[* *FreeTrial*]"
    理解*号作用:"*[* *FreeTrial*]" >>>看作: "aa[bb cc]"  >>> 一个模糊:"*[* *]",就是三部分,“*FreeTrial*”其实就是一个:* (注意:字符区分大小写
    我试探的关键字有:pro ,member,ad 等。。。。
    最后试出:
    frida-trace -U -f com.camerasideas.photovault -m "-[GADAdLoader adSource]"
    frida-trace -U -f com.camerasideas.photovault -m "-[GADInternalBannerView adSource]"
    frida-trace -U -f com.camerasideas.photovault -m "-[GADRewardBasedVideoAd adSource]"
    返回0,可以去掉广告,我要的是全功能,无奈打开IDA

    frida-trace -U -f com.camerasideas.photovault -m "*[* *viewDidLoad*]"
    7.png
    还是无法通过修改,在百般无奈,何无办法时,我求助了C版。
    根据C吊多年的实践经验:IAP内购会有个凭据receipt

    8.png

    下面高朝:
    经过一波操作后,最终过滤:
    frida-trace -U -f com.camerasideas.photovault -m "*[*IapReceiptManager* *]"
    9.png

    发现一处调用了 -[PV.IapReceiptManager init] 方法。
    IDA 打开,飞向光明之巅。。。
    10.png
    C版根据经验,快速得出结果:
    creantan  17:58:22
    这个初始化值可以改改,主动调用set方法,永久会员:setIsPermanentMember

    经过一番操作,C版改好了最终脚本:

    [JavaScript] 纯文本查看 复制代码
    var hook = ObjC.classes['PV.IapReceiptManager']["- init"];
            Interceptor.attach(hook.implementation, {
                    onEnter: function(args) {
                            console.log('\n【++++++++++++++++】:\n')
                            },
                    onLeave: function(retval) {
                            var IapReceiptManager = ObjC.chooseSync(ObjC.classes['PV.IapReceiptManager'])[0];
                            console.log('log:'+IapReceiptManager+"\n")
                            IapReceiptManager["- setIsPermanentMember:"](0x1)
                    }
    });

    11.png
    附送日地址的脚本:
    [JavaScript] 纯文本查看 复制代码
    Interceptor.attach(Module.findBaseAddress('PV').add(0x2B645C), {
            onEnter: function(args) {
                console.log(Thread.backtrace(this.context, Backtracer.ACCURATE).map(DebugSymbol.fromAddress).join("\n"))
            },
            onLeave: function(retval) {
                retval.replace(0);
            }
        });


    现在 Frida 跑,全功能通过,成了永久会员
    现在,要写个永久hook,搬出theos,吊大的C版代码又为我写好了
    [Objective-C] 纯文本查看 复制代码
    @interface IapReceiptManager : NSObject
    - (void)setIsPermanentMember:(bool)arg1;
    @end
    
    %hook IapReceiptManager
    - (id)init {
            id iapReceiptManager = %orig;
            [iapReceiptManager setIsPermanentMember:YES];
            return iapReceiptManager;
    
    }
    %end
    
    %ctor {
            NSLog(@"[+] PV Hooked");
            %init(IapReceiptManager = objc_getClass("PV.IapReceiptManager"));
    }

    新建工程
    code1.png

    编绎打包
    code2.png

    最后丢到 iPhone 执行
    2019_11_29_10_50_IMG_0004.PNG

    2019_11_29_11_49_IMG_0008.PNG
    2019_11_29_10_54_IMG_0006.PNG

    0x6 总结:
          这波修改像不像一字节标记破解,哈哈,虽然过程复杂点,但乐在其中!
    这全程看似都是我在操作,其背后那股强大的支持力量,就是C版在帮助我,让我学习到了很多东西,在此也分享给大家我学习到的东西!
    我希望能举一反三,能继续努力,写出吊B的代码。真心感谢吊大的C版,谢谢!



    评分

    参与人数 5威望 +13 飘云币 +13 收起 理由
    绞尽乳汁6 + 1 + 1 高手,这是高手
    tiantian89 + 1 + 1 PYG有你更精彩!
    dryzh + 5 + 5 Secret Photo Album Hide Photos by Photo
    tree_fly + 5 + 5 吃水不忘打井人,给个评分懂感恩!
    飞天 + 1 + 1 感谢发布原创作品,PYG有你更精彩!

    查看全部评分

    本帖被以下淘专辑推荐:

    PYG19周年生日快乐!
  • TA的每日心情
    奋斗
    2016-1-13 12:25
  • 签到天数: 3 天

    [LV.2]偶尔看看I

     楼主| 发表于 2019-11-29 17:19:05 | 显示全部楼层
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-3-27 22:26
  • 签到天数: 387 天

    [LV.9]以坛为家II

    发表于 2019-11-29 19:31:26 | 显示全部楼层
    真是高手,学习一下,谢谢、
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    昨天 06:49
  • 签到天数: 2205 天

    [LV.Master]伴坛终老

    发表于 2019-11-30 08:52:14 | 显示全部楼层
    MBP 阻断了学习之路
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    27 分钟前
  • 签到天数: 1482 天

    [LV.10]以坛为家III

    发表于 2019-12-9 10:08:22 | 显示全部楼层
    感谢分享 学习了 得收藏多看几遍
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-3-5 10:17
  • 签到天数: 43 天

    [LV.5]常住居民I

    发表于 2019-12-16 17:52:16 | 显示全部楼层
    瞅你乍地,学习中  谢谢分享
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-9 22:48
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-12-17 11:01:53 | 显示全部楼层
    膜拜!中国区商店的啊?切换下先
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-9 22:48
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    发表于 2019-12-18 18:24:34 | 显示全部楼层
    Secret Photo Album Hide Photos by Photo Album Vault, Inc. https://apps.apple.com/us/app/se ... -photos/id867586326
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    27 分钟前
  • 签到天数: 1482 天

    [LV.10]以坛为家III

    发表于 2020-3-20 13:40:21 | 显示全部楼层
    感谢分享 厉害了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

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