Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ish — Shell Linux per iOS | Kitploit
Strumenti/GitHubGitHub/ish-app/ish
Utilità GenericheSicurezza iOS
GitHubish-app/ish

ish

Shell Linux per iOS

Vedi RepositorySito web
20.2k1.4k125 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

iSH

Build Status goto counter fuck counter shit counter

Un progetto per ottenere una shell Linux in esecuzione su iOS, utilizzando l'emulazione x86 in spazio utente e la traduzione delle system call.

Per lo stato attuale del progetto, controlla la scheda "issues" e i log dei commit.

  • Pagina App Store
  • Beta di TestFlight
  • Server Discord
  • Wiki con aiuto e tutorial
  • README中文 (如若未能保持最新,请提交PR以更新)

Sviluppo

Questo progetto ha un sottomodulo git, assicurati di clonarlo con --recurse-submodules o esegui git submodule update --init dopo la clonazione.

Avrai bisogno di queste cose per compilare il progetto:

  • Python 3
    • Meson (pip3 install meson)
  • Ninja
  • Clang e LLD (su mac, brew install llvm, su linux, sudo apt install clang lld o sudo pacman -S clang lld o qualsiasi altro gestore)
  • sqlite3 (è così comune che potrebbe essere già installato su linux e lo è sicuramente su mac. se non lo è, esegui qualcosa come sudo apt install libsqlite3-dev)
  • libarchive (brew install libarchive, sudo port install libarchive, sudo apt install libarchive-dev) TODO: includere questa dipendenza

Compilazione per iOS

Apri il progetto in Xcode, apri iSH.xcconfig, e modifica ROOT_BUNDLE_IDENTIFIER in qualcosa di unico. Dovrai anche aggiornare l'ID del team di sviluppo nelle impostazioni di build del progetto (non del target!). Poi clicca Run. Ci sono script che dovrebbero fare tutto il resto automaticamente. Se incontri problemi, apri un issue e cercherò di aiutarti.

Compilazione dello strumento da riga di comando per test

Per configurare l'ambiente, spostati nella cartella del progetto ed esegui meson build per creare una directory di build in build. Poi spostati nella directory di build ed esegui ninja.

Per configurare un filesystem Alpine Linux autonomo, scarica il tarball Alpine minirootfs per i386 dal sito Alpine ed esegui ./tools/fakefsify, con il tarball minirootfs come primo argomento e il nome della directory di output come secondo argomento. Poi puoi eseguire comandi all'interno del filesystem Alpine con ./ish -f alpine /bin/sh, assumendo che la directory di output si chiami alpine. Se tools/fakefsify non esiste nella tua directory di build, potrebbe essere perché non è riuscito a trovare libarchive sul tuo sistema (vedi sopra per i modi per installarlo).

Puoi sostituire ish con tools/ptraceomatic per eseguire il programma in un processo reale e fare single step e confrontare i registri ad ogni passo. Lo uso per il debug. Richiede Linux a 64 bit 4.11 o successivo.

Registrazione (Logging)

iSH ha diversi canali di log che possono essere abilitati in fase di compilazione. Di default, sono tutti disabilitati. Per abilitarli:

  • In Xcode: Imposta l'opzione ISH_LOG in iSH.xcconfig su una lista separata da spazi di canali di log.
  • Con Meson (strumento da riga di comando per test): Esegui meson configure -Dlog="<lista separata da spazi di canali di log>".

Canali disponibili:

  • strace: Il canale più utile, registra i parametri e il valore di ritorno di quasi ogni chiamata di sistema.
  • instr: Registra ogni istruzione eseguita dall'emulatore. Questo rallenta molto le cose.
  • verbose: Log di debug che non rientrano in un'altra categoria.
  • Cerca DEFAULT_CHANNEL per vedere se sono stati aggiunti altri canali di log da quando questo elenco è stato aggiornato.

Una nota sull'interprete

Probabilmente la cosa più interessante che ho scritto come parte di iSH è l'interprete. Non è esattamente un JIT poiché non targetizza codice macchina. Invece genera un array di puntatori a funzioni chiamate gadgets, e ogni gadget termina con una chiamata in coda alla funzione successiva; come la tecnica di codice threaded usata da alcuni interpreti Forth. Il risultato è un'accelerazione di circa 3-5x rispetto all'emulazione che utilizza un più semplice dispatcher switch.

Purtroppo, ho preso la decisione di scrivere quasi tutti i gadgets in linguaggio assembly. Questa è stata probabilmente una buona decisione per quanto riguarda le prestazioni (anche se non lo saprò mai con certezza), ma una decisione orribile per quanto riguarda leggibilità, manutenibilità e la mia sanità mentale. La quantità di stronzate che ho dovuto sopportare dal compilatore/assemblatore/linker è pazzesca. È come se ci fosse un demone lì dentro che si assicura che il mio codice sia sufficientemente deforme, e se non lo è, inventa stupide ragioni per cui non dovrebbe compilare. Per rimanere sano mentre scrivevo questo codice, ho dovuto ignorare le best practice nella struttura e nella denominazione del codice. Troverai macro e variabili con nomi descrittivi come ss, s e a. Macro assembler nidificate oltre ogni immaginazione. E per finire, non ci sono quasi commenti.

Quindi un avvertimento: L'esposizione a lungo termine a questo codice può causare perdita di sanità mentale, incubi sulle macro GAS e errori del linker, o qualsiasi altro numero di effetti collaterali debilitanti. Questo codice è noto allo Stato della California come causa di cancro, difetti alla nascita e danni riproduttivi.

Scarica lo strumento