美文网首页iOS 开发每天分享优质文章自己看的文章
如何在非越狱下查看别人的App UI结构

如何在非越狱下查看别人的App UI结构

作者: nodrift | 来源:发表于2018-06-14 16:07 被阅读126次

    如何非越狱下 查看App UI结构

    网上还是有很多各种个样的方法解决这个问题。
    其中我介绍一种高级的。
    首先,感谢AloneMonkey的MonkeyDev。它是什么呢?这是一款Xcode 新建 Hook 的工程模板。

    模版.png

    iOSOpenDev

    说到MonkeyDev 必须提一下iOSOpenDev。
    iOSOpenDev网站:http://www.iosopendev.com/
    iOSOpenDev主要因为年久失修。所以AloneMonkey大神基于iOSOpenDev的底层重构了它。

    MonkeyDev

    原有iOSOpenDev的升级,非越狱插件开发集成神器!

    *可以使用Xcode开发CaptainHook Tweak、Logos Tweak 和 Command-line Tool。

    *只需拖入一个砸壳应用,自动集成class-dump、restore-symbol、Reveal、Cycript和注入的动态库并重签名安装到非越狱机器。

    *支持调试自己编写的动态库和第三方App

    *支持通过CocoaPods第三方应用集成SDK以及非越狱插件,简单来说就是通过CocoaPods搭建了一个非越狱插件商店。

    安装前MonkeyDev环境要求

    安装ldid,Dpkg

    在越狱开发中,iOS文件的签名是使用ldid工具来完成的,也就是说ldid取代了Xcode自带的Codesign
    Dpkg是Debian(Linux)软件包管理器的基础。

    brew install dpkg ldid
    

    上述使用homebrew安装,如果没homebrew

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    安装 theos

    Theos是一个越狱开发工具包

    sudo git clone --recursive https://github.com/theos/theos.git /opt/theos
    

    路径是/opt/theos

    /opt/theos的权限改为自己所拥有的

    sudo chown $(id -u):$(id -g) /opt/theos
    

    打开~/.bash_profile

    vim ~/.bash_profile
    

    把下面的两行代码加入

    export THEOS=/opt/theos
    export PATH=/opt/theos/bin/:$PATH
    

    更新bash_profile

    source ~/.bash_profile
    

    MonkeyDev

    MonkeyDev 安装很简单
    如果你有多个XCode请注意,选择指定的XCode。

    sudo xcode-select -s /Applications/Xcode.app 
    

    默认安装的Xcode

    xcode-select -p
    

    终于要安装MonkeyDev了

    sudo /bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/AloneMonkey/MonkeyDev/master/bin/md-install)"
    

    至此,大功告成!
    重启XCode就有了MoneyDev了,可以愉快的玩耍了。

    使用

    安装完成之后,打开Xcode,点击File - New - Project...,选择iOS滑动到最下方可以看到MonkeyDev提供的模块:

    选择MonkeyApp

    MonkeyApp.png

    填写Product Name,Team

    Target App 是在越狱下使用 这里不涉及,略过。


    9A93EAFC-3154-4DF7-A73D-DAF2A1250D08.png

    然后进入XCode工作页面


    37D685FA-6238-4915-AA71-D1180D2F39FF.png

    先看Target App
    上面有提示:put ipa or app here
    也就是把我们的目标的app的ipa或者可执行文件放进去。
    这里的App需要砸壳后的ipa。一般我建议大家从PP助手或者其他第三方获取。但是不能保证全部都是砸了壳的。楼主第一次用的1.8M的小型app竟然没有砸壳,以至于之前一直build失败。

    HookJDAppDylib是将被注入到目标app的动态函数库,标记重要。以后我们自己写的hook代码可以放在里面写。AloneMonkey大神写了Demo,感谢。 fishhook是C函数。

    创建的项目已经自动集成了RevealServer.framework和libcycript.dylib,如果选择Release编译的话是不会集成的。

    填坑:从网上下载了Reveal破解版,与AloneMonkey大神的reveal的最新版不匹配。怪我没看仔细,哭。
    原文如下:

    集成的RevealServer.framework是最新版本的,所以你可能需要最新的Reveal,
    否则使用自己的RevealServer.framework替换掉
    /opt/MonkeyDev/frameworks下面的RevealServer.framework。
    

    必须是真机

    然后就是Build了。

    来个效果图:


    C55C327D-291A-4BA0-B167-7083907182D9.png

    相关文章

      网友评论

      • Cerko:xcode 10 可以吗?好像操作完了之后没有看到MonkeyApp呢

      本文标题:如何在非越狱下查看别人的App UI结构

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