欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

逆向工程二之Cycript

程序员文章站 2022-03-12 20:18:28
一、摘要 本文主要介绍:Cycript使用,及其库的封装 二、安装使用 1)环境搭建 Cydia上搜索”Cycript”,并安装 进入Cycript环境 报错:“killed:9”,原因是没有相关权限; 2. 找到cycript文件; 3. 依次执行以下步骤:直接拖拽到Mac即可完成复制操作; 4. ......

一、摘要

本文主要介绍:cycript使用,及其库的封装

二、安装使用

1)环境搭建

  • cydia上搜索”cycript”,并安装
  • 进入cycript环境
  1. 报错:“killed:9”,原因是没有相关权限;

       逆向工程二之Cycript

      2.  找到cycript文件;

       逆向工程二之Cycript

       3.  依次执行以下步骤:直接拖拽到mac即可完成复制操作;

       逆向工程二之Cycript

        逆向工程二之Cycript

       逆向工程二之Cycript

      4.  重新进入;

      逆向工程二之Cycript

2)调试目标应用(以下以“网易云音乐”为例,先点开)

  • adv-cmds(用来查看ios端运行的进程信息):cydia搜索并安装
  1. 查看所有进程信息;

      逆向工程二之Cycript

      2.  过滤进程;

      逆向工程二之Cycript

      3.  进入应用cycript环境;

      逆向工程二之Cycript

  • cycript语法
  1. 该语言糅合了c++\oc\js\java等语言;
  2. 基本语法(简单列举);

       逆向工程二之Cycript

      说明:

      1>  var定义变量,uiapp <=> [uiapplication sharedapplication];
      2>  #内存地址 <=> 该变量名
      3>  recursivedescription():递归遍历视图层次结构;
      4>  tostring():按字符顺序显示;
      5>  choose(uiviewcontroller):筛选当前页面所有的uiviewcontroller;
      6>  objectivec.classes:查看所有的类;
  • 使用mjcript.cy库调试
  1. 下载地址,具体应用请参考里面说明;
  2. 追加到ios端:直接拖拽;

      逆向工程二之Cycript

     3.  导入头文件;

      逆向工程二之Cycript

     4.  指令演示:mjfrontvc()获取当前页面vc;mjinstancemethodnames()获取该页面所有的对象方法名;

      逆向工程二之Cycript

二、库封装

  • 下载并用“sublime text”新建.cy文件

      逆向工程二之Cycript

  • 设置高亮,编写代码

      逆向工程二之Cycript

      逆向工程二之Cycript

  • 追加到ios端

      逆向工程二之Cycript

  • 使用

      逆向工程二之Cycript

 

三、小结

  • 以上cycript的使用,只是针对app在内存中的数据的修改;若要永久修改,则需要打包deb插件实现(这个后面会讲到)