Skip to content

iOS reverse development,command line utils that uses Cycript.

License

Notifications You must be signed in to change notification settings

Dtheme/Burin-master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

Burin

iOS reverse development,command line utils that uses Cycript.

为什么要写Burin

通过逆向的方式可以窥探和猜测别人的APP对于某些功能的实现方式,从而对自己的开发过程提供一些借鉴,使用Cycript脚本可以帮助理解别人的app。Cycript非常强大, 它是一个能够理解Objective-C语法的javascript解释器,但是在使用过程中发现经常会做一些重复的操作,写一些重复代码,不仅麻烦而且稍微不注意就容易出现拼写大小写等错误,效率比较低,没有代码补全的情况下写OC代码有多痛苦,写过的人都知道。

例如:获取沙盒document路径这样的代码,得背API:

NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

所以对一些常用API进行了封装,简化常用的一些操作,例如:获取沙盒各文件夹路径,获取当前的viewcontroller,获取当前的keywindow,隐藏/显示某个view,方便的创建CGRect、CGPoint、CGSize,查看某个类的类方法,实例方法,成员变量,属性等。

使用:

越狱环境下可以直接将Burin文件注入到iPhone里。非越狱环境下可以通过重签名、重新打包ipa,通过动态库的方式注入。

顺口一提,截止到目前,官方给出的数据是85%的用户在使用iOS 11,10%用户使用iOS 10,而iOS 11目前暂时还没有完美越狱,完美越狱变得越来越有难度,这里是Apple support数据。(这话刚说完不到1个月,iOS 12正式版刚出来就被阿里安全实验室完美越狱...不过现在iOS版本反人类设计少了很多,对越狱没有刚需了,目前比较需要越狱的点可能在电话录音,改主题,跨区下载等方面)

使用:命令行中引入Burin库

cy# @import ../<path>/Burin

直接调用定义的方法进行调试:

cy# BRBundleId
@"com.xxx.xxx"

在使用过程遇到觉得有必要封装的会再补充进来。

最后

更多关于cycript的问题可以看:Cycript

Read Manual里面有你想要的一切关于cycript的使用方法。

About

iOS reverse development,command line utils that uses Cycript.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published