美文网首页
iOS 逆向:动态调试其它APP的两种姿势

iOS 逆向:动态调试其它APP的两种姿势

作者: 许久__ | 来源:发表于2021-06-14 13:49 被阅读0次

    动态调试其它APP的两种姿势:

    1. 拿到可执行文件动态调试APP,有两种方案:

    1.1 通过开发证书签名,修改应用的权限文件,用Xcode直接Attach应用进程ID
    Code signing Entitlements中有一项很重要的key值,就是get-task-allow,
    get-task-allow决定了这个app能否被Xcode调试。一般来说,上架了的程序,这个key值为空,默认为NO。
    步骤:
            1. ldid -e ./wework > ./wework.plist    
            2. 修改wework.plist 中的 get-task-allow:YES
            3. ldid -Swework.plist ./wework
            4. chmod 755 ./wework
            5. 用开发证书重新打包并安装至越狱机上
    
    1.1.1 我以企业微信为例子:
    Xocde Attach wework进程
    1.1.2 通过Xcode调试工具看UI界面:
    由此可见:
        1. 企业微信登录所在的控制器是:WWKWeChatLoginViewController
        2. 点击微信登录按钮调用的方法是:loginButtonClicked:
    
    通过Xcode查看界面UI
    1.1.3 通过Hopper Disassembler工具查看loginButtonClicked:在内存中具体位置
    Hopper Disassembler工具查看函数具体的内存地址
    1.1.4 由于使用了ASLR技术,断点得加上一段偏移
            breakpoint set - a 时得加上这一段偏移
            image list -o -f | grep wework  
            breakpoint set -a  0x00000001009f8a88(hopper里的方法地址)+0x00000000000e4000(地址偏移)
    
    断点打印成功

    1.2 通过Debugserver + Reveal + LLDB调试APP

    1.2.1 我以调试微信APP为例
    步骤:   
         1. 先开个命令行转发端口: python tcprelay.py -t 22:10010
         2. 再开个命令行转发端口: python tcprelay.py -t 10011:10011
         3. 开个命令行登录手机:
                 3.1 ssh root@localhost -p 10010 
                 3.2 debugserver *:10011 -a "WeChat"
         4. 开个命令行登录手机:
                 4.1 ssh root@localhost -p 10010  
                 4.2 实用cycript调试应用  
         5. 开个命令行使用LLDB:
                 5.1  lldb
                 5.2 process connect connect://localhost:10011
    
    成功Attch 上微信APP
    1.2.2 通过Reveal找到需要调试的视图
    WechatIMG432.png
    1.2.3 找到点击声音锁登录调用的函数onLastUserVoicePrintLogin:
    点击声音锁登录调用的函数
    1.2.4 通过Hopper Disassembler工具查看onLastUserVoicePrintLogin:在内存中具体位置
    Hopper Disassembler工具查看onLastUserVoicePrintLogin:在内存中具体位置
    1.2.5 由于使用了ALSR技术,所以断点应该这样打:
            image list -o -f | grep WeChat  
            breakpoint set -a  0x000000010245e318(hopper里的方法地址)+0x00000000000f4000(地址偏移)
    
    断点打印成功

    相关文章

      网友评论

          本文标题:iOS 逆向:动态调试其它APP的两种姿势

          本文链接:https://www.haomeiwen.com/subject/rrfoeltx.html