美文网首页
【iOS逆向】命令行工具封装、使用和权限签名

【iOS逆向】命令行工具封装、使用和权限签名

作者: 丿沧海一粟丿 | 来源:发表于2018-04-25 14:15 被阅读0次
    image.png

    int main(int argc, char * argv[]) {

    @autoreleasepool {
    
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    
    }
    

    }

    因为命令行工具不需要UI界面,所以main函数改成

    int main(int argc, char * argv[]) {

    @autoreleasepool {
    
        return 0;
    
    }
    

    }

    App架构类型

    int main(int argc, char * argv[]) {

    @autoreleasepool {
    
        NSString *appPath = @"app路径";
    
        NSFileHandle *handle = [NSFileHandle fileHandleForReadingAtPath:appPath];
    
        int length = sizeof(uint32_t);
    
        //读取最前面的4个字节(Magic number, 魔数, 用来标识文件类型)
    
        NSData *magicData = [handle readDataOfLength:length];
    
        //魔数,用来标识文件类型
    
        uint32_t magicNumber;
    
        [magicData getBytes:&magicNumber length:length];
    
        if (magicNumber == FAT_CIGAM || magicNumber == FAT_MAGIC) {
    
            //大小端(高、低地址读取)
    
            printf("FAT文件\n");
    
        } else if (magicNumber == MH_CIGAM || magicNumber == MH_MAGIC) {
    
            printf("非64bit文件\n");
    
        } else if (magicNumber == FAT_CIGAM_64 || magicNumber == FAT_MAGIC_64) {
    
            printf("64bit架构文件\n");
    
        } else {
    
            printf("读取失败");
    
        }
    
        printf("magic number = 0x%x\n", magicNumber);
    
        [handle closeFile];
    
        return 0;
    
    }
    

    }

    生成的可执行文件拖入iPad以下文件夹

    image.png

    使用

    image.png image.png

    权限出问题

    签名-给可执行文件签上一定的权限,让它可以访问其他App的可执行文件

    通过ldid给可执行文件签名(仅权限)

    image.png

    代表追加到文件尾部,>代表覆盖。

    cd到存放可执行文件的文件夹中导出权限文件

    image.png

    得到

    image.png

    双击打开可以看到权限很少

    image.png

    找一个包含所有权限的可执行文件(比如SpringBoard),导出权限文件

    image.png image.png

    然后将这个包含所有权限的权限文件导入到我们需要增加权限的权限文件(将两个权限文件放在同一个文件夹中)

    执行操作

    image.png

    删除原来的testCommand.entitlements文件,重新导出权限文件可以看到权限

    image.png

    重新签好的权限可执行文件重新拖入iPad

    image.png

    chmod +x /usr/bin/testCommand

    添加脚本,使得生成的执行文件夹在工程目录下

    image.png image.png

    相关文章

      网友评论

          本文标题:【iOS逆向】命令行工具封装、使用和权限签名

          本文链接:https://www.haomeiwen.com/subject/vuxylftx.html