美文网首页
Cycript使用及高级用法

Cycript使用及高级用法

作者: spyn_n | 来源:发表于2021-05-21 22:10 被阅读0次

    Cycript支持OC,C++,Java语法,笔者直接使用Monkey集成(自带的),可以找到monkey中相关的代码,其配置的端口是6666

    image.png image.png
    image.png

    通过Monkey工程运行目标APP到手机上,然后在终端输入:cycript -r 192.168.1.168:6666即可进入调试环境---查看附加进程的界面数据等。

    image.png

    Cycript高级用法及遇到问题

      Cycript的高级用法就是,将常用的如
    NSHomeDirectory()
    UIApp.keyWindow.rootViewController
    UIApp.keyWindow.recursiveDescription().toString()
    [[[UIWindow keyWindow] rootViewController] _printHierarchy].toString()
    [[UIApp keyWindow] _autolayoutTrace].toString()
    等等封装成.cy文件,然后将其导入工程,使libcycript.dylib自动去加载.cy文件,下面有讲导入过程。

    cycript -r 192.168.1.168:6666封装成脚本带来的问题

      有时候我们为了图方便,我们把cycript -r 192.168.1.168:6666封装成了脚本,设置环境变量,但是我们大多时候是在家和公司办公的,所以更换了WiFi可能IP地址就不一样了,导致sh cyLogin.sh链接失败。

    image.png
    MonkeApp安装的第三方APP,cycript的高级用法,Monkey自带的APPID,pviews(),pvcs()等不起作用
    image.png
      先不要着急,通过上图可以知道,既然是通过url,放到plist中的,那是不是会有下载的代码,通过全局搜索(.url),可以找到MDCycriptManager类中实现了下载的逻辑。断点查看,发现其下载失败(这就解释了其不起作用的原因)。
    image.png image.png

      然后配了Allow Arbitrary LoadsYES发现还是没有用,那是不是Xcode连调导致的,又把Xcode断掉,使用iTerm连接调式,发现还是不行。但是又不想坐以待毙,难道是它这url打不开,使用浏览器打开,发现OK。(怀疑人生,这么好的快捷方式难道我不配使用??

    配置Allow Arbitrary Loads 浏览器打开url

      放弃可不是我的风格,于是根据url链接找到了它的下载地址,自动下载不成,那我可以手动下载MS.cymd.cy,通过手动导入(自己封装的导入方式一样)点击这里去下载

      将下载的MS.cymd.cy两个文件拖到Config目录下,按下图:“手动导入方式”配置,将目标APP放到TargetApp文件夹中,然后运行到手机上。当然如果还是嫌麻烦,把这两个.cy文件上传到自己的服务器,然后把plist里面的url替换掉。

    手动导入方式

      打开终端,输入:cycript -r 192.168.2.135:6666,然后@import MS@import md,再试一下输入pviews(),如下图,成功使用快捷方式。

    cycript高级用法

    相关文章

      网友评论

          本文标题:Cycript使用及高级用法

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