2016-03-30 46 views
1

我编写了iOS的iOKit fuzzer。这里是代码:编译iOS的命令行脚本

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <mach/mach.h> 
#include <mach/vm_map.h> 
#include <IOKit/IOKitLib.h> 

int main() 
{ 
    io_service_t service = IOServiceGetMatching(kIOMasterPortDefault, IOserviceMatching("IOUSBHIDDriver")); // change service each time 
    if(!service) 
    { 
    return -1; 
    } 
    io_connect_t connect; 
    kern_return_t kr = IOServiceOpen(service, mach_task_self(), 0, &connect); 
    if(kr != kIOReturnSuccess) 
    { 
    return -1; 
    } 

    uint32_t selector =3; 
    uint64_t input[0]; 
     input[0] = 0x44444444444; 
    IOConnectCallMethod(connect, selector, input, 1, 0, 0, NULL, NULL, NULL, NULL); 
    printf("Did it crash? No? Do it again! -Toxic\n"); 
} 

我一直在尝试用GCC编译一段时间,但我得到各种错误。我想知道是否有人知道如何编译iOS的命令行工具。谢谢。

回答

0

据我所知,尽管可以使用NSLog从应用程序输出到日志,但没有用于(非越狱)iOS的命令行工具。此外,苹果公司的iOS工具链使用clang(llvm),尽管'gcc'命令通常会被别名为clang。获取脚本的最简单方法是在Xcode中创建一个测试项目,构建它并查看构建日志。这显示了所有使用什么参数运行的命令。

+0

我越狱了。 – Hayden

+0

啊,对不起。虽然我怀疑你仍然可以通过检查Xcode的构建步骤来获取大部分路径,但无法帮助你。 – pmdj