2016-03-30 66 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