Cycript常用的一些东西

做了蛮久的iOS越狱开发,现在终于有点时间来写一些大概可以算是笔记的东西了,这里先写的是有关Cycript的东西。如果有理解错的,欢迎指出,我的邮箱是[data deleted] :p

function ls(a) {
    var x={};
    for(i in *a) {
        try{
            x[i] = (*a)[i];
        }
        catch(e) {
        }
    }
    return x;
}

这个函数是用来查看实例的私有变量,传入的参数就是该实例

function lsl(a) {
    var x = [];
    for (i in *a) {
        x.push(i);
    }
    return x;
}

这个函数也是用来查看实例的私有变量,不过比刚才的简洁一些,传入的参数也是该实例

function methods(className) {
    var count = new new Type("I");
    var methods = class_copyMethodList(objc_getClass(className), count); 
    var methodsArray = [];
    for(var i = 0; i < *count; i++) {
        var method = methods[i];
        methodsArray.push({selector: method_getName(method), implementation: method_getImplementation(method)});
    }
    free(methods);
    free(count);
    return methodsArray;
}

这个函数是用来查看某个class的方法,需要传进去的参数就是该class的名字

在通过Cycript注入到某个程序之后,一般都会

var app = [UIApplication sharedApplication];
var keyWindow = app.keyWindow;
var view = keyWindow.subviews[0]
var rootVC = keyWindow.rootViewController

把这些常用的东西hook到,准备调试用

Leave a Reply

Your email address will not be published. Required fields are marked *

3 + 12 =