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
XenoScan — Open Source Speicherscanner geschrieben in C++ | Kitploit
Tools/GitHubGitHub/nickcano/xenoscan
SpeicherforensikExploitationReverse EngineeringDebuggerBinäranalyse
GitHubnickcano/xenoscan

XenoScan

Open Source Speicherscanner geschrieben in C++

Repository anzeigen
36970vor 5 JahrenVon 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

XenoScan

XenoScan ist ein Speicherscanner, mit dem der Speicher von Prozessen durchsucht werden kann, um die genauen Stellen wichtiger Werte zu lokalisieren. Diese Art von Werkzeugen wird typischerweise beim Hacken von Videospielen verwendet, da sie es ermöglichen, die Werte zu lokalisieren, die den Spielzustand im Speicher darstellen.

XenoScan ist in C++ mit einem Lua-Frontend geschrieben, und ich habe an erweiterten Funktionen gearbeitet, die über alles hinausgehen, was ich in anderen Speicherscannern gesehen habe. Insbesondere bietet es eine Möglichkeit, alle komplexen Datenstrukturen (wie std::list und std::map) im Speicherbereich des Ziels aufzulisten und zurückzugeben, und es kann sogar nach beliebigen Klasseninstanzen suchen und die gefundenen Instanzen nach ihren zugrunde liegenden Typen gruppieren.

Kommunikation

Wenn Sie mit mir in Kontakt treten möchten, einen Ort zum Chatten suchen oder eine Frage haben, ist mein Discord der beste Ort.

Unterprojekte

XenoLua

XenoLua ist ein Wrapper um Lua, der eine Menge Funktionalität bietet. Am bemerkenswertesten ist die Bereitstellung einer LuaVariant-Klasse, die die Konvertierung zwischen C/C++- und Lua-Typen kapselt. Darüber hinaus enthält es Hilfsfunktionen für die Arbeit mit Lua in der LuaPrimitive-Klasse.

XenoScanEngine

XenoScanEngine ist das Herzstück des Projekts. Es enthält den Code für das Scannen, die Erkennung von Datenstrukturen und alles andere.

XenoScanLua

XenoScanLua verbindet XenoScanEngine mit XenoLua, um ein Lua-scriptbares Frontend für den Scanner bereitzustellen. Derzeit ist dies der einzige Einstiegspunkt in den Scanner.

Darüber hinaus enthält dieses Projekt einige Testcodes, die sicherstellen, dass alles einwandfrei funktioniert. Ein Test besteht aus einer Kombination einer .cpp-, einer .h- und einer .lua-Datei. Beispiele zur Verwendung des Scanners finden Sie in den .lua-Testdateien.

Kompilieren

XenoScan verwendet CMake und wurde mit Visual Studio 2017 getestet. Um diese VS-Version zu verwenden, führen Sie einfach buildmsvc2017.bat von einer 32-Bit Developer-Eingabeaufforderung für VS aus. Als Beispiel führe ich Folgendes aus, um ein Projekt für Visual Studio 2017 zu erstellen:

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

Dadurch wird eine Datei mit dem Namen XenoScan.sln in meinem build-Verzeichnis (z. B. C:\path\to\XenoScan\build) erstellt. Diese Projektmappendatei verwende ich dann, um den Code in Visual Studio zu kompilieren. Das Erstellen von x64 ist ähnlich, erfolgt jedoch über eine x64 Native Tools-Eingabeaufforderung für VS.

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

Beim Wechsel zwischen 32-Bit- und x64-Builds sollten Sie buildclean.bat ausführen. Dadurch werden die generierten Projektdateien gelöscht und die kompilierten LuaJIT-Binärdateien entfernt, da sie für die korrekte Architektur neu erstellt werden müssen (dies geschieht automatisch).

Hinweis: Ich habe keine Ahnung, warum diese Eingabeaufforderungen so unterschiedlich benannt sind. Wichtig ist, dass die von den Eingabeaufforderungen eingerichteten vcvars der zu erstellenden Architektur entsprechen. Dies ist hauptsächlich für die Erstellung von LuaJIT wichtig. Unabhängig davon teilen Ihnen die Build-Skripte mit, ob Sie sie von der falschen Stelle aus ausführen.

Theoretisch sollten Sie den Code mit jedem modernen Compiler erstellen können, solange Sie CMake verwenden, um die Projektdateien zu generieren. Bevor Sie kompilieren können, müssen Sie sicherstellen, dass Sie die Untermodule ausgecheckt haben. Danach müssen Sie auch das luajit-Untermodul erstellen, damit XenoScan gegen die Bibliotheken linken kann.

Mit modern meine ich alles, was C++17 unterstützt, da der Code diesen Standard verwendet. Außerdem sollte Ihre CMake-Version mindestens 3.10 sein.

Plattform

Der Code ist plattformunabhängig konzipiert. Theoretisch müssten Sie zum Kompilieren auf einer anderen Plattform Folgendes tun:

  1. Erstellen Sie Projekt-/Make-Dateien für Ihre Ziel-IDE/Compiler.
  2. Entfernen Sie die Dateien ScannerTargetWindows.cpp und ScannerTargetWindows.h aus dem Projekt.
  3. Implementieren Sie das ScannerTarget-Interface für Ihre Plattform.
  4. Fügen Sie Ihre Implementierung zum Projekt hinzu.
  5. ???? profit

Funktionen

Die grundlegende Scanfunktionalität unterstützt die folgenden Typen:

  • Ganzzahlige Typen*:
    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t
  • float
  • double
  • ASCII-Strings
  • Breitzeichen-Strings
  • Dynamische Werte (Werte, die relativ zu einem aktuellen Zustand durchsucht werden)
    • filetime64: 64-Bit-Zeitstempel (GetSystemTimeAsFileTime() unter Windows)
    • ticktime32: 32-Bit-Tick-Zähler ( unter Windows)

* Lua-Frontend könnte bei 64-Bit-Ganzzahlen Probleme haben, aber die Scanner-Bibliothek unterstützt sie.

Das Scannen unterstützt die folgenden Arten von Übereinstimmungen:

  • Gleich
  • Größer als
  • Größer oder gleich
  • Kleiner als
  • Kleiner oder gleich
  • Bereiche (min <= check <= max)

Darüber hinaus gibt es eine Funktion zum Erkennen aller Instanzen der folgenden Typen:

  • std::map
  • std::list
  • Jede Klasse mit einer virtuellen Funktions-Tabelle
Tool herunterladen
GetTickCount()
  • Benutzerdefinierte Datenstrukturen (denken Sie an C++ struct)
    • Kann aus jeder Kombination von Ganzzahl- und Dezimaltypen bestehen