Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ish — Linux-Shell für iOS | Kitploit
Tools/GitHubGitHub/ish-app/ish
Allgemeine DienstprogrammeiOS-Sicherheit
GitHubish-app/ish

ish

Linux-Shell für iOS

Repository anzeigenWebseite
20.2k1.4k1vor 25 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

iSH

Build Status goto counter fuck counter shit counter

Ein Projekt, um eine Linux-Shell auf iOS zum Laufen zu bringen, mittels usermode x86-Emulation und Syscall-Übersetzung.

Den aktuellen Stand des Projekts finden Sie im Reiter „Issues“ und in den Commit-Logs.

  • App Store-Seite
  • TestFlight-Beta
  • Discord-Server
  • Wiki mit Hilfe und Anleitungen
  • README中文 (如若未能保持最新,请提交PR以更新)

Entwicklung

Dieses Projekt enthält ein Git-Submodul. Stellen Sie sicher, dass Sie es mit --recurse-submodules klonen oder nach dem Klonen git submodule update --init ausführen.

Sie benötigen diese Dinge, um das Projekt zu bauen:

  • Python 3
    • Meson (pip3 install meson)
  • Ninja
  • Clang und LLD (auf dem Mac: brew install llvm, auf Linux: sudo apt install clang lld oder sudo pacman -S clang lld oder ähnliches)
  • sqlite3 (so verbreitet, dass es unter Linux vielleicht schon installiert ist und unter macOS definitiv bereits vorhanden ist. Falls nicht, führen Sie etwa sudo apt install libsqlite3-dev aus)
  • libarchive (brew install libarchive, sudo port install libarchive, sudo apt install libarchive-dev) TODO: Diese Abhängigkeit bündeln

Für iOS bauen

Öffnen Sie das Projekt in Xcode, öffnen Sie iSH.xcconfig und ändern Sie ROOT_BUNDLE_IDENTIFIER in etwas Einzigartiges. Sie müssen auch die Entwicklerteam-ID in den Build-Einstellungen des Projekts (nicht des Targets!) aktualisieren. Klicken Sie dann auf „Run“. Es gibt Skripte, die alles Weitere automatisch erledigen sollten. Wenn Sie auf Probleme stoßen, öffnen Sie ein Issue und ich werde versuchen zu helfen.

Befehlszeilenwerkzeug zum Testen bauen

Um Ihre Umgebung einzurichten, wechseln Sie in das Projektverzeichnis und führen Sie meson build aus, um ein Build-Verzeichnis in build zu erstellen. Wechseln Sie dann in das Build-Verzeichnis und führen Sie ninja aus.

Um ein eigenständiges Alpine-Linux-Dateisystem einzurichten, laden Sie das Alpine-minirootfs-tarball für i386 von der Alpine-Website herunter und führen Sie ./tools/fakefsify aus, wobei das minirootfs-tarball das erste Argument und der Name des Ausgabeverzeichnisses das zweite Argument ist. Dann können Sie Dinge innerhalb des Alpine-Dateisystems mit ./ish -f alpine /bin/sh ausführen, vorausgesetzt das Ausgabeverzeichnis heißt alpine. Falls tools/fakefsify in Ihrem Build-Verzeichnis nicht existiert, liegt das möglicherweise daran, dass libarchive auf Ihrem System nicht gefunden wurde (siehe oben für Installationsmöglichkeiten).

Sie können ish durch tools/ptraceomatic ersetzen, um das Programm in einem echten Prozess auszuführen und Schritt für Schritt zu verfolgen und die Register bei jedem Schritt zu vergleichen. Ich verwende es zum Debuggen. Erfordert 64-Bit-Linux 4.11 oder neuer.

Protokollierung

iSH verfügt über mehrere Logging-Kanäle, die zur Build-Zeit aktiviert werden können. Standardmäßig sind alle deaktiviert. So aktivieren Sie sie:

  • In Xcode: Setzen Sie die Einstellung ISH_LOG in iSH.xcconfig auf eine durch Leerzeichen getrennte Liste von Log-Kanälen.
  • Mit Meson (Befehlszeilenwerkzeug zum Testen): Führen Sie meson configure -Dlog="<durch Leerzeichen getrennte Liste von Log-Kanälen>" aus.

Verfügbare Kanäle:

  • strace: Der nützlichste Kanal, protokolliert die Parameter und Rückgabewerte fast jedes Systemaufrufs.
  • instr: Protokolliert jede Anweisung, die vom Emulator ausgeführt wird. Dies verlangsamt die Dinge erheblich.
  • verbose: Debug-Logs, die in keine andere Kategorie passen.
  • Suchen Sie nach DEFAULT_CHANNEL, um zu sehen, ob seit der Aktualisierung dieser Liste weitere Log-Kanäle hinzugefügt wurden.

Eine Anmerkung zum Interpreter

Vielleicht das Interessanteste, was ich als Teil von iSH geschrieben habe, ist der Interpreter. Es ist nicht wirklich ein JIT, da er keinen Maschinencode anvisiert. Stattdessen erzeugt er ein Array von Zeigern auf Funktionen, die als „Gadgets“ bezeichnet werden, und jedes Gadget endet mit einem Tail-Call zur nächsten Funktion – ähnlich der Threaded-Code-Technik, die von einigen Forth-Interpretern verwendet wird. Das Ergebnis ist eine Geschwindigkeitssteigerung von etwa 3-5x im Vergleich zur Emulation mit einer einfachen Switch-Dispatch.

Leider habe ich die Entscheidung getroffen, fast alle Gadgets in Assemblersprache zu schreiben. Das war wahrscheinlich eine gute Entscheidung in Bezug auf die Leistung (auch wenn ich es nie genau wissen werde), aber eine schreckliche Entscheidung in Bezug auf Lesbarkeit, Wartbarkeit und meinen Verstand. Die Menge an Unsinn, den ich vom Compiler/Assembler/Linker ertragen musste, ist irre. Es ist, als ob ein Dämon darin steckt, der dafür sorgt, dass mein Code ausreichend deformiert ist, und falls nicht, erfundene dumme Gründe findet, warum er nicht kompilieren sollte. Um bei diesem Code einigermaßen bei Verstand zu bleiben, musste ich Best Practices bei der Code-Struktur und Benennung ignorieren. Sie werden Makros und Variablen mit so aussagekräftigen Namen wie ss und s und a finden. Assembler-Makros, die über jedes Maß verschachtelt sind. Und um dem Ganzen die Krone aufzusetzen, gibt es fast keine Kommentare.

Also eine Warnung: Längere Exposition gegenüber diesem Code kann zu Verlust des Verstandes, Alpträumen über GAS-Makros und Linker-Fehlern oder einer beliebigen Anzahl anderer lähmender Nebenwirkungen führen. Dieser Code ist dem Bundesstaat Kalifornien als krebserregend, erbgutschädigend und fortpflanzungsschädigend bekannt.

Tool herunterladen