2016-03-30 19 views
1

Ich codierte einen iOKit Fuzzer für iOS. Hier ist der Code:Kompilieren Sie ein Befehlszeilenskript für 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"); 
} 

Ich habe versucht, dies für eine Weile mit GCC jetzt zu kompilieren, aber ich habe alle Arten von Fehlern. Ich würde gerne wissen, ob jemand genau weiß, wie man ein Kommandozeilen-Tool für iOS kompiliert. Vielen Dank.

Antwort

0

Soweit ich weiß, gibt es kein Befehlszeilentool für (nicht-jailbroken) iOS, obwohl Sie mit NSLog aus einer App in das Protokoll ausgeben können. Auch Apples Toolchain für iOS verwendet clang (llvm), obwohl der 'gcc' Befehl in der Regel Aliasing ist, um zu klingeln. Der einfachste Weg, ein Skript zu erhalten, besteht darin, ein Testprojekt in Xcode zu erstellen, es zu erstellen und sich das Build-Protokoll anzuschauen. Dies zeigt Ihnen alle Befehle, die mit welchen Argumenten ausgeführt wurden.

+0

Ich bin jailbroken. – Hayden

+0

Ah, Entschuldigung. Ich kann Ihnen nicht helfen, obwohl ich vermute, dass Sie den größten Teil des Weges dorthin zurücklegen können, indem Sie die Build-Schritte von Xcode überprüfen. – pmdj