Einfach Programmieren mit ioshdev

05/05/2014 20:20 iOSsec#1
Hallo, heute mal ein einfach Beispiel um die UDID eines iPhones zu bekommen und ein Kommando an iBoot/iBSS zu senden. Aber nicht komplex sondern nur in in ein paar Zeilen Code mit ioshdev.
ioshdev ist eine header Datei die es einfacher machen mit dem iPhone zu kommunizieren.

Include ioshdev
PHP Code:
#include "ioshdev.h" 
In den main Bereich muss nur die eine Zeile um die UDID auszugeben:
PHP Code:
normal_udid(); 
So jetzt senden wir ein Kommando an iBoot/iBSS.

Ertsmal mit libusb zum rec mode verbinden:
PHP Code:
rec_connect(); 
Jetzt senden wir ein Kommando:
PHP Code:
char *reboot "reboot";
rec_send_cmd(&reboot); 
Wir können auch das ganze mit Arrays regeln.
PHP Code:
char *command[3];
command[1] = "setenv auto-boot true";
command[2] = "saveenv";
command[3] = "reboot";
rec_send_cmd(&reboot[1]);
rec_send_cmd(&reboot[2]);
rec_send_cmd(&reboot[3]); 
So jetzt einfach mal autoboot auf true setzen:
PHP Code:
rec_autoboot_true(); 
Das ganze setzen und speichern:
PHP Code:
rec_saveenv(); 
05/05/2014 20:33 snow#2
Quote:
char *command[3];
command[1] = "setenv auto-boot true";
command[2] = "saveenv";
command[3] = "reboot";
Und der Code funktioniert bei dir?
_
Ohne Erklärungen (was macht rec_connect()? Was macht "saveenv"?) ist das hier kein Tutorial, sondern ein Snippet.
05/05/2014 20:35 iOSsec#3
Ich habe geschrieben was das macht und ich brauch ja nicht den Code aus ioshdev.h erklähren.
Außerdem ja der Code funktioniert bei mir.
gcc -o s small_example.c -lusb-1.0 -framework CoreFouion -framework MobileDevice -F/System/Library/PrivateFrameworks

EDIT: Ich habe auch schon in einen anderen Thread genau erklärt wie das mit dem Kommando senden geht(Code, Werte etc). [Only registered and activated users can see links. Click Here To Register...]
05/05/2014 20:39 ​Tension#4
Zu einem Tutorial gehört aber dazu, dass du die Funktionen erklärst sprich was sie bewirken und wie ihre Parameter aufgebaut sind. Sollte jemand dies schon wissen ist er auch in der Lage das zu programmieren was du uns hier zeigst.

Achja und man fängt nicht bei 1 an zu zählen.
05/05/2014 20:42 iOSsec#5
Ja aber es geht darum wie man ioshdev verwendet.
Naja und wen man alles wissen will, auch wen da im Moment nicht sehr viel mehr ist, kann man ja auch den Code anschauen. Aber es alle wollen schreib ich noch mehr dazu.
05/05/2014 22:21 Mostey#6
Quote:
Originally Posted by iOSsec View Post
Ich habe geschrieben was das macht und ich brauch ja nicht den Code aus ioshdev.h erklähren.
Nein aber wie wäre es mal mit einer kleinen Erklärung als Einleitung was diese ominöse ioshdev Headerdatei überhaupt ist? Daraus kann ich erkennen: iOS, Dev und Header. Heißt also, es geht um das Betriebssystem iOS und da schlummert ne API die man über ein Headerfile einbinden kann. Aber was ist denn nun genau dahinter? Wofür braucht man das Headerfile?

Allgemein habe ich noch nicht kapiert was dieses "Tutorial" hier bezweckt? UDID? iBoot? iBSS?

Quote:
Originally Posted by iOSsec View Post
Außerdem ja der Code funktioniert bei mir.
gcc erkennt keinen Index der out-of-range platziert wurde? Dann sollte doch spätestens ne Exception fliegen, wenn der Code ausgeführt wird.
05/05/2014 23:04 snow#7
Quote:
Originally Posted by Mostey View Post
gcc erkennt keinen Index der out-of-range platziert wurde? Dann sollte doch spätestens ne Exception fliegen, wenn der Code ausgeführt wird.
Wenn das Array auf dem Stack ist, kommt nicht zwangsläufig eine Exception. Je nach Position der Variable auf dem Stack werden halt andere lokale Variablen überschrieben (oder auch die return address, dann gibt es aber mit ziemlicher Sicherheit eine Exception). So oder so, momentan ist das undefiniertes Verhalten.

Quote:
gcc -o s small_example.c -lusb-1.0 -framework CoreFouion -framework MobileDevice -F/System/Library/PrivateFrameworks
Würde fast um meinen Level 2 Rang wetten, dass der Linker hier meckern wird. Schau dir mal die Warnings an & dann noch den Error, den "-framework CoreFouion" produziert.

Wie Mostey bereits geschrieben hat, wäre eine Einleitung + Erklärung der Begriffe ganz nett, ansonsten ist das wie gesagt nur ein Snippet & dementsprechend in der falschen Sektion.
05/05/2014 23:17 iOSsec#8
Es funktioniert auf meinem Mac aber.
Was soll ich denn noch sagen wenn es bei mir geht?
05/06/2014 06:07 'Heaven.#9
Quote:
Originally Posted by iOSsec View Post
PHP Code:
char *command[3];
command[1] = "setenv auto-boot true";
command[2] = "saveenv";
command[3] = "reboot";
rec_send_cmd(&reboot[1]);
rec_send_cmd(&reboot[2]);
rec_send_cmd(&reboot[3]); 
Das hier ist faktisch nicht möglich. Eventuell hast du ja eine neuere Version des Codes in deiner IDE
05/06/2014 16:28 iOSsec#10
Ich verstehe es aber naja ich kann ja ein Video machen.

EDIT: Ich will not sagen dass wen kein Gerät verbunden ist es nicht funktioniert. Dann kommt n Segment aber sonst gehts wenn eins verbunden ist.