Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Capsulith — Esegui codice ARM64 preservato in Node o in un browser; ispeziona i pixel dell'immagine decodificata e la memoria inizializzata. | Kitploit
Strumenti/GitHubGitHub/nazeeh111/capsulith
Analisi StaticaAnalisi Dinamica (Sandboxing)Reverse EngineeringScripting e AutomazioneDebuggerUtilità e FrameworkAnalisi di BinariBinary Exploitation
GitHubnazeeh111/capsulith

Capsulith

Esegui codice ARM64 preservato in Node o in un browser; ispeziona i pixel dell'immagine decodificata e la memoria inizializzata.

132 giorni faNon ancora revisionato
Vedi Repository
Sito web

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

Capsulith

Esegui codice nativo preservato. Riapri il suo stato inizializzato. Capsulith impacchetta funzioni ARM64 selezionate, i loro contratti di chiamata e la memoria posseduta per Node o il browser. Mantieni le istruzioni originali e riprendi un oggetto inizializzato in un nuovo worker, senza l'applicazione originale.

Un decoder legacy, un checksum o una routine binaria isolata possono diventare una piccola API riutilizzabile. Capsulith mostra quali byte e dipendenze viaggiano con essa, dove l'esecuzione legge e scrive, e perché una funzionalità non può essere estratta quando richiede uno stato non supportato.

Provalo

Apri il banco di lavoro per immagini native. Scegli Load & run example per l'opera d'arte QOI preparata, oppure carica una piccola immagine PNG o QOI. L'encoder QOI originale estratto scrive un file, un decoder nativo separato ne restituisce i pixel, e puoi ispezionare i singoli byte RGBA. Preserva quell'allocazione di pixel inizializzata, chiudi il worker, poi ripristinala e liberala in uno nuovo. Non servono account, server di upload, binario originale o compilatore per eseguire il banco di lavoro pubblico.

PNG utilizza RGBA decodificato dal browser come base di confronto esplicita; l'input solo QOI non ha un confronto indipendente con i pixel di origine. Le immagini sono limitate a 256 pixel per dimensione e 1 MiB. Questa è una dimostrazione di un componente nativo preparato con sorgente nota, non un nuovo codec né un recupero universale di formato. Sorgente QOI originale, contratti, controlli nativi/FFmpeg indipendenti e comandi Node standalone.

PNG effettivamente importato dal browser, round trip QOI compilato e heap di pixel nativo ripristinato

Prova la demo dell'oggetto nel browser senza chiave e premi Run lifecycle. Esegue localmente le istruzioni effettivamente estratte; non chiama un server per generare i risultati.

Scarica il wheel Python dalla release, poi:

python3 -m pip install capsulith-0.3.0-py3-none-any.whl
capsulith studio

Apri http://127.0.0.1:6359. La funzione Studio conserva il decoder LZ4 e i campioni xxHash. Apri Object studio, scegli Open original LZ4 example, poi Run lifecycle per creare, comprimere, salvare un dizionario, eseguire un checkpoint, ripristinare, continuare e liberare un flusso effettivamente compilato. Non è necessaria alcuna chiave API né servizio a pagamento. Per l'estrazione sono necessari Python 3.10+ e Capstone; il browser esegue tramite l'emulatore WebAssembly incluso. Node 20+ è necessario solo per la CLI o per le chiamate Node esportate.

Lo Studio accetta una dylib Mach-O ARM64, inventaria le sue funzioni, estrae una radice selezionata e consente di modificare buffer, argomenti dei registri, input scalari e tipo di ritorno. La vista delle dipendenze collega helper/import ai punti di chiamata effettivi e alle istruzioni originali. Gli eventi di esecuzione rimandano alla regione di memoria denominata e al codice originale. Le esecuzioni interrotte mostrano prove parziali senza rivendicare un risultato positivo.

Export portable capsule scarica i byte correnti, il contratto e gli input, i runner Node/browser, il backend con versione fissata, il codice sorgente completo del backend e gli script di build e le licenze. Decomprimi ed esegui node run.cjs, oppure servi quella cartella via HTTP e apri il suo runner browser indipendente. Python, Capstone e il binario originale non sono necessari per quelle chiamate. L'API esportata accetta input diversi, supporta la cancellazione e applica i limiti dichiarati.

Mantieni un oggetto nativo inizializzato

Original LZ4 methods, restored dictionary access and exact native comparison in the object Studio

L'object Studio importa il JSON del modulo estratto o legge il tuo artefatto Mach-O ARM64 di proprietà con metodi denominati dichiarati esplicitamente. Ispeziona le radici, i chunk e le dipendenze effettivi; alloca buffer del chiamante denominati da hex o da un file locale; scegli un metodo e fornisci riferimenti tipizzati a regioni o interi. La mappa di memoria mostra regioni effettivamente possedute e l'inizializzazione, con byte grezzi opachi anziché campi presunti. Ritorni, intervalli di accesso, contatori ed eventi limitati provengono dalle istruzioni originali.

Salva un checkpoint prima di un'operazione che potresti dover annullare. Il ripristino di un modulo corrispondente preserva gli indirizzi guest e gli ID delle regioni ma crea una nuova identità dell'istanza; riassocia i riferimenti tramite l'ID della regione. La modifica degli input invalida le prove obsolete, e un fault o una cancellazione richiede un checkpoint precedente o una nuova istanza. La liberazione nativa e il rilascio del buffer del chiamante sono operazioni di ciclo di vita esplicite e separate. Il runtime non presume mai se i puntatori nativi facciano ancora riferimento a un buffer.

capsulith module examples/lz4/liblz4.dylib \
  --methods examples/native-objects/methods.json --out stream.module.json
node runtime/object-cli.cjs examples/native-objects/start.json \
  --module stream.module.json --checkpoint-out first.checkpoint.json
# The first Node process has ended. This command opens a fresh worker.
node runtime/object-cli.cjs examples/native-objects/continue.json \
  --module stream.module.json --checkpoint first.checkpoint.json
capsulith export-module stream.module.json \
  --checkpoint first.checkpoint.json --out stream-object.zip

Scegli nuovi nomi di output; i comandi di esportazione di moduli, checkpoint e oggetti rifiutano di sovrascrivere file esistenti. I programmi di operazione forniti sono specifici per il ciclo di vita LZ4 documentato. I moduli generici necessitano dei propri metodi dichiarati dal chiamante e dei propri programmi di operazione.

Un'esportazione di oggetto contiene il modulo di istruzioni originale, i byte di checkpoint conservati opzionali, runner Node/browser indipendenti, lo Studio dell'oggetto, il runtime e i corrispondenti script di build/sorgente del backend, le licenze e un manifest dei file con byte, SHA256 e permessi. Servi la cartella e apri index.html per ripristinare il checkpoint incluso senza endpoint API, oppure esegui node run.cjs your-operations.json --checkpoint checkpoint.json. I binari originali, i pacchetti Python e i compilatori non sono necessari per l'esecuzione. Un checkpoint include i byte conservati del chiamante; ispezionali prima di condividerlo. Vedi l'API degli oggetti e il formato delle operazioni e l'esempio nativo.

Usa il tuo artefatto

capsulith inspect legacy.dylib
capsulith extract legacy.dylib --root _decode \
  --contract decode-contract.json --out decode.capsule.json
capsulith run decode.capsule.json --inputs input.json
capsulith export decode.capsule.json --inputs input.json --out decoder.zip

La selezione della radice accetta anche un indirizzo verificato di inizio funzione, come --root 0x440. Un simbolo esportato non è un prototipo. Il contratto di chiamata effettivo lo fornisci tu; Capsulith non deduce un ABI (le regole che collocano argomenti e valori di ritorno nei registri). La guida runtime definisce buffer, interi a 32/64 bit, import di memoria e limiti. examples/xxhash/contract.json è un esempio completo a tre argomenti.

Scarica lo strumento