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
XenoScan — Scanner di memoria open source scritto in C++ | Kitploit
Strumenti/GitHubGitHub/nickcano/xenoscan
Memory ForensicsExploitReverse EngineeringDebuggerAnalisi di Binari
GitHubnickcano/xenoscan

XenoScan

Scanner di memoria open source scritto in C++

Vedi Repository
369705 anni 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

XenoScan

XenoScan è uno scanner di memoria che può essere utilizzato per scansionare la memoria dei processi e individuare le posizioni specifiche di valori importanti. Questi tipi di strumenti sono tipicamente usati nel cracking di videogiochi, poiché permettono di localizzare i valori che rappresentano lo stato del gioco in memoria.

XenoScan è scritto in C++ con un frontend Lua, e ho lavorato a funzionalità avanzate che vanno oltre qualsiasi cosa presente in altri scanner di memoria che ho visto. In particolare, ha un modo per enumerare e restituire tutte le strutture dati complesse (come std::list e std::map) nello spazio di memoria del target, e può persino scansionare per qualsiasi istanza di classe e raggruppare le istanze scoperte per i loro tipi sottostanti.

Communication

Se hai bisogno di contattarmi, vuoi un posto dove chattare o hai una domanda, il mio Discord è il posto migliore.

Sub-projects

XenoLua

XenoLua è un wrapper attorno a Lua che fornisce un sacco di funzionalità. In particolare, fornisce una classe LuaVariant che incapsula la funzionalità di conversione tra tipi C/C++ e Lua. Inoltre, ha funzioni di supporto per lavorare con Lua nella classe LuaPrimitive.

XenoScanEngine

XenoScanEngine è il cuore del progetto. Contiene il codice per la scansione, il rilevamento delle strutture dati e tutto il resto.

XenoScanLua

XenoScanLua collega XenoScanEngine a XenoLua per fornire un frontend scriptabile in Lua per lo scanner. Attualmente, questo è l'unico punto di accesso allo scanner.

Inoltre, questo progetto contiene del codice di test che assicura che tutto funzioni correttamente. Un test è una combinazione di un file .cpp, un .h e un .lua. Per esempi su come usare lo scanner, puoi dare un'occhiata ai file di test .lua.

Compiling

XenoScan utilizza CMake ed è stato testato con Visual Studio 2017. Per usare questa versione di VS, esegui semplicemente buildmsvc2017.bat da un Prompt dei comandi per sviluppatori VS a 32 bit. Ad esempio, per compilare un progetto per Visual Studio 2017, eseguo

root@kitploit:~
cd C:\path\to\XenoScan
buildmsvc2017.bat

Che crea un file chiamato XenoScan.sln nella mia directory build (es. C:\path\to\XenoScan\build). Poi uso questo file di soluzione per compilare il codice in Visual Studio. La compilazione x64 è simile, ma viene eseguita da un Prompt dei comandi strumenti nativi x64 per VS.

root@kitploit:~
cd C:\path\to\XenoScan
buildmsvc2017x64.bat

Quando si passa tra compilazioni a 32 bit e x64, dovresti eseguire buildclean.bat. Questo eliminerà i file di progetto generati e rimuoverà i binari compilati di LuaJIT, poiché devono essere ricostruiti per l'architettura corretta (questo avverrà automaticamente).

Nota: non ho idea del perché questi prompt siano chiamati in modo così diverso. La parte importante è che le vcvars impostate dai prompt corrispondano all'architettura in fase di compilazione. Questo è principalmente importante per la compilazione di LuaJIT. In ogni caso, gli script di build ti diranno se li stai eseguendo dal posto sbagliato.

In teoria, dovresti essere in grado di compilare il codice con qualsiasi compilatore moderno, purché usi CMake per generare i file di progetto. Prima di compilare, devi assicurarti di aver scaricato i sottomoduli. Una volta fatto, dovrai anche compilare il sottomodulo luajit in modo che XenoScan possa linkare le librerie.

Per moderno intendo qualsiasi cosa che supporti C++17, poiché il codice utilizza quello standard. Inoltre, la versione di CMake dovrebbe essere almeno 3.10.

Platform

Il codice è progettato per essere indipendente dalla piattaforma. In teoria, per compilare su qualsiasi altra piattaforma, dovresti

  1. Creare file di progetto/make per il tuo IDE/compilatore target.
  2. Rimuovere i file ScannerTargetWindows.cpp e ScannerTargetWindows.h dal progetto.
  3. Implementare l'interfaccia ScannerTarget per la tua piattaforma.
  4. Aggiungere la tua implementazione al progetto.
  5. ???? profitto

Features

La funzionalità di scansione di base supporta i seguenti tipi:

  • Tipi integrali*:
    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t
  • float
  • double
  • stringhe ascii
  • stringhe wide
  • Valori dinamici (valori cercati relativamente a uno stato corrente)
    • filetime64: timestamp a 64 bit (GetSystemTimeAsFileTime() su Windows)
    • ticktime32: tick count a 32 bit ( su Windows)

* Il frontend Lua potrebbe bloccarsi con interi a 64 bit, ma la libreria dello scanner li supporta.

La scansione supporta i seguenti tipi di corrispondenza:

  • Uguale a
  • Maggiore di
  • Maggiore o uguale a
  • Minore di
  • Minore o uguale a
  • Intervalli (min <= check <= max)

Inoltre, è presente la funzionalità per rilevare tutte le istanze dei seguenti tipi:

  • std::map
  • std::list
  • Qualsiasi classe con una tabella di funzioni virtuali
Scarica lo strumento
GetTickCount()
  • Strutture dati personalizzate (pensa a una struct in C++)
    • Possono essere costituite da qualsiasi combinazione di tipi integrali e decimali