iOS攻防:Cycript攻·防

简介

Cycript允许开发人员探讨和修改iOS和Mac OS X上运行的应用程序。
Cycript是一个理解Objective-C语法的javascript解释器,它能够挂钩正在运行的进程,能够在> 运行时修改应用的很多东西。

  1. 能够挂钩正在运行的进程,并且找出正被使用的类信息,例如view controllers,内部和第三方库,甚至程序的delegate的名称。
  2. 对于一个特定的类,例如View Controller, App delegate或者任何其他的类,我们能够得到所有被使用的方法名称。
  3. 能够得到所有实例变量的名称和在程序运行的任意时刻实例变量的值。
  4. 能够在运行时修改实例变量的值。
  5. 能够执行Method Swizzling,例如替换一个特定方法的实现。
  6. 可以在运行时调用任意方法,即使这个方法目前并不在应用的实际代码当中。

Cycript安装

这里下载
这里阅读所有Cycript诡计

先看看怎么用Cycript干点坏事吧

1. 给应用弹一个莫名其妙的alert

ssh登陆你的手机(如果不会,上一篇有~)

找一个app

这里我找的是以前做的一个app

print

这样知道进程号是466

hock住

如果你看到出现了cy#,说明你可以开始编写Cycript代码了

alert

blog_iOSCycript01

2. 探索一个app

调用一下:

输出结果:
blog_iOSCycript02

是不是觉得发生了很可怕的事情?该有的都被打印出来了。

你还可以通过试探的方式找出每一个Controller的名字,例如:

insert

print

insert

print

insert

print

这样,我们就找到了『我的』页面所属Controller。

查看所有的方法:

blog_iOSCycript攻·防03

改个标题试试:

效果如下:
blog_iOSCycript04

试想一下,如果MeViewController中或者LoginViewController中有一个方法叫getUserInfo,那么通过Cycript就可以轻而易举的拿到用户信息。

不过Cycript在这里最主要的作用还是偷窥APP和调试APP。
当然,好玩的方法还有很多。

知道了Cycript的可怕,在有重要信息藏在代码中的时候,我们也得学会如何放置Cycript修改运行时。

你可以参考这篇文章


有什么问题都可以在博文后面留言,或者微博上私信我,或者邮件我coderfish@163.com

博主主要写javaEE和iOS的。

希望大家一起进步。

CSDN: CSDN博客地址

我的微博:小鱼周凌宇

1 收藏 评论

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部