二、逆向开发_Cycript

2021-03-24  本文已影响0人  MR_詹

Cycript 是Object-C++、ES6(JavaScript)、Java等语法的混合物
作用:可以用来探索、修改、调试正在运行的Mac/iOS App
官网:http://www.cycript.org/

手机设备安装Cycript,即可在iPhone上调试运行中的APP

Cycript 的使用

调试某个应用app(注意:app一定是要在前台活跃的状态下才行)
终端命令


显示的cy#说明已经进入该运行的程序了

Cycript常用语法

1、UIApp等价于: [UIApplication sharedApplication]

2、定义变量
var 变量名 = 变量值

3、用内存地址获取对象
#内存地址

4、ObjectC.classes
已加载的所有OC类

5、查看对象的所有成员变量
*对象

6、递归打印view的所有子控件
[UIApp.keyWindow recursiveDescription]
[UIApp.keyWindow recursiveDescription].toString()
UIApp.keyWindow.recursiveDescription().toString()

7、筛选出某种类型的对象
choose(对象类型名称)
choose(UIViewController)

8、MJ 老师封装了一套代码mjTool.js(超级好用)
第一步,下载的文件拷贝到手机目录/usr/lib/cycript0.9下,文件名就是框架的名称,比如本案例中的MJTool.cy
导入框架
@import MJTool
获取当前显示的ViewController
终端命令:MJFrontVc()
获取某个类的对象方法名列表,支持正则表达式查询
MJInstanceMethodNames(类的名称)
MJInstanceMethodNames(类的名称,正则表达式)

递归打印子视图
MJSubviews()

查看成员变量
MJIvarNames(对象)

查看appId: MJAppId
查看appPath:MJAppPath
查看docPath: MJDocPath
查看cachesPath: MJCachesPath

ps命令

手机设备安装adv-cmds插件
ps命令是process status 的缩写,使用PS命令可以列出系统当前的进程

扩展:

如何查看中文的unicode代码
终端使用python

Reveal的使用教程
https://github.com/LeoMobileDeveloper/Blogs/blob/master/iOS/iOS%E8%B6%8A%E7%8B%B1%2BReveal%207%E5%88%86%E6%9E%90%E4%B8%89%E6%96%B9AppUI%E6%A1%86%E6%9E%B6%E6%95%99%E7%A8%8B.md

上一篇 下一篇

猜你喜欢

热点阅读