Abmeldung Informationsanlass

Bist du sicher, dass du dich für den Infoanlass abmelden möchtest?

Besten Dank für dein Interesse

Klicke auf die Schaltfläche unten, um dein gewünschtes PDF-Dokument herunterzuladen.

DOWNLOAD STARTEN
Dipl. Informatiker/in HF Fachrichtung Applikation

CelSer Engine - Benutzerdefinierte Skripte zur Speichermodifikation

Die CelSer Engine ist ein Memory Editor, der den virtuellen Speicher anderer Programme scannt und manipuliert. Sie wurde um ein Scripting-Modul erweitert, um Software, insbesondere Spiele, zu automatisieren. Dieses Modul bietet den Benutzern die Möglichkeit, eigene Skripte zu schreiben, um den Speicher eines Zielprogramms zu manipulieren oder auszulesen.

31. Oktober 2023
Savas Celik

Management Summary

Bei der CelSer Engine handelt es sich um einen Memory Editor – eine Software, die den virtuellen Speicher anderer Programme nach bestimmten Variablenspeicheradressen durchsucht. Sobald diese Adresse gefunden wurde, kann der Benutzer den Wert dieser Variable ändern. Die CelSer Engine durchsucht und manipuliert den virtuellen Speicher des Zielprogramms mit den Funktionen der WindowsAPI, wie beispielsweise VirtualQueryEx, NtQueryVirtualMemory, ReadProcessMemory und WriteVirtualMemory.


Neu hat der Benutzer die Möglichkeit, in einem Skript-Editor Skripte in C# zu schreiben, um bestimmte Tasks zu automatisieren. Hierzu sind verschiedene Funktionen implementiert, die der Benutzer im Skript-Editor benutzen kann, um die Speicheradressen zu manipulieren oder auszulesen.

Der Skript-Editor ist mit Syntax-Highlighting ausgestattet, um die Übersichtlichkeit und Fehlererkennung zu verbessern. Zudem bietet der Skript-Editor Auto-Completion für die von der CelSer Engine bereitgestellten Funktionen an. Die bereitgestellten Funktionen dienen dazu, den Benutzern das Schreiben der Skripte zu erleichtern.

Um Skripte organisieren zu können, ist eine Übersicht implementiert. In der Übersicht können einzelne Skripte erstellt, dupliziert, umbenannt, aktiviert oder deaktiviert und gelöscht werden. Skripte können zudem importiert und exportiert werden, um sie mit anderen Geräten oder Benutzern zu teilen. Die erstellten und importierten Skripte werden in einer lokalen SQLite-Datenbank gespeichert. Somit kann die CelSer Engine vorhandene Skripte automatisch anzeigen, wenn der Benutzer ein Programm anvisiert.

Für den Skript-Editor wird die AvalonEdit-Library verwendet. Diese bietet eine einfache Anpassung der Regeln für das Syntax-Highlighting und eine Auto-Completion. Um das Skript bzw. die Skriptlogik zur Laufzeit ausführen zu können, wird der Roslyn-Compiler verwendet. Eine Alternative diesbezüglich wurde angeschaut und evaluiert.

Skript-Editor öffnen
1/3 Skript-Editor öffnen
Skript-Übersicht
2/3 Skript-Übersicht
Auto-Completion und Syntax-Highlighting
3/3 Auto-Completion und Syntax-Highlighting
Skript-Editor öffnen
Skript-Übersicht
Auto-Completion und Syntax-Highlighting

Ausgangslage

Die CelSer Engine ist ein Projekt, das aus einer Leidenschaft für das Reverse Engineering von Programmen entstanden ist. Sie ist mit der Programmiersprache C# und mit dem WPF-Framework implementiert und folgt dem MVVM-Pattern. Zudem nutzt die CelSer Engine eine Reihe von Windows-API Funktionen, wie beispielsweise VirtualQueryEx, NtQueryVirtualMemory, ReadProcessMemory und WriteVirtualMemory. Damit kann der virtuelle Speicher eines Zielprogramms gescannt werden, um dynamische Speicheradressen zu finden und deren Wert zu ändern. Zudem bietet sie einen, sich noch in einer Alpha-Phase befindenden, Pointerscanner. Mit dem Pointerscanner wird eine statische Speicheradresse gesucht, die auch nach einem Neustart des Zielprogramms auf die richtige Speicheradresse zeigt.

Problemstellung

Damit Benutzer Schritte in der CelSer Engine automatisieren können, braucht es eine Möglichkeit, Skripte zu schreiben, die auf gewisse Situationen reagieren. Dies könnte beispielsweise bei einem Shooter-Spiel das Nachladen der Waffe sein, wenn die Anzahl der Munitionen im Magazin weniger als 10 ist.

Ziel der Arbeit

Das Ziel dieser Arbeit ist die Entwicklung eines Scripting-Moduls, mit dem Benutzer Schritte in einem Zielprogramm einfach automatisieren können. Dabei wird die Benutzerfreundlichkeit besonders hervorgehoben, um sicherzustellen, dass auch Personen mit wenig Programmierkenntnissen einfache Skripte erstellen können. Dazu muss die CelSer Engine wie folgt erweitert werden.

• Einen Skript-Editor hinzufügen, um Skripte schreiben und bearbeiten zu können.

• Der Skript-Editor wird mit Syntax-Highlighting ausgestattet, um die Arbeit damit zu erleichtern.

• Der Benutzer soll Skripte importieren und exportieren können, um sie auf anderen Geräten oder mit anderen Benutzern zu teilen.

• Eine Übersicht mit den Skripten, die aktiviert und deaktiviert werden können, wird bereitgestellt.

• Die erstellten und importierten Skripte werden in einer lokalen Datenbank (SQLite) gespeichert, sodass sie automatisch geladen werden, sobald der Benutzer ein Programm auswählt.

• Skripte sind zu validieren. Wenn Skripte aktiviert werden, werden sie in der CelSer Engine validiert.

• In der Übersicht können Skripte für eine bessere Differenzierbarkeit benannt werden.

• Um den Benutzern das Schreiben von Skripten zu ermöglichen, werden eine Reihe von Funktionen bereitgestellt, wie beispielsweise eine Funktion, die eine Speicheradresse als Parameter akzeptiert und den Wert dieser Speicheradresse zurückgibt.

• Der Skript-Editor bietet Auto-Completion für die Funktionen, die von der CelSer Engine bereitgestellt werden.

• Es wäre wünschenswert, dass die Auto-Completion auch die reservierten Schlüsselwörter von C# berücksichtigt.

Wie geht es weiter?

Ich werde in Zukunft weiter an der CelSer Engine und an dem Scripting-Modul entwickeln und hoffe, dass ich, wie in dieser Arbeit, weiterhin vieles dazulernen kann. Dies ist die erste Version des Scripting-Moduls, aber sicherlich nicht die letzte. Mit dem Scripting-Modul wurden viele Voraussetzungen erfüllt, um weitere Aspekte zu automatisieren. In den kommenden Minor-Updates wird der Skript-Editor weiter verbessert und die vordefinierten Funktionen werden erweitert. Des Weiteren ist geplant, den Skript-Editor so zu verbessern, dass er beim Schliessen eine Warnung ausgibt, sofern Änderungen nicht gespeichert wurden. Es wäre auch hilfreich, den Status des Skripts in der Skript-Übersicht für den Benutzer anzuzeigen. Für die Major-Updates der CelSer Engine sind ein Packet Tracer und ein Binary-To-Assembly-Converter geplant. Der Packet Tracer dient dazu, die Pakete eines Zielprogramms zu analysieren. Dabei können Benutzer Skripte schreiben und auf gewisse Pakete reagieren oder sogar Pakete manipulieren. Der Binary-To-Assembly-Converter dient dazu, den Binärcode eines Zielprogramms in Assembler umzuschreiben, um die Vorgehensweise des Zielprogramms besser zu verstehen.

Savas Celik Software Engineer & Reverse Engineering Enthusiast

Weiterbildung neben Beruf und Freizeit

Gratis E-Book mit 10 Tipps zur Work-Life-Learn-Balance

Download E-Book

Aktuelles Studienprogramm

Alles Wissenswerte zur Weiterbildung in einem PDF zusammengefasst.

Download PDF

Weiterbildung neben Beruf und Freizeit – schaffe ich das?

10 Tipps zur Work-Life-Learn-Balance
Eine Weiterbildung beansprucht Zeit. Deshalb auf Freunde, Familie und Hobbies zu verzichten, wäre falsch.

In diesem E-Book erfährst du:

  • wie du deine Zeit effizienter nutzt
  • wie du dich trotz Weiterbildung genügend Freizeit bewahrst
  • wie sich Beruf, Weiterbildung und Freizeit gegenseitig ergänzen statt konkurrenzieren können
Basel
Bern
Luzern
Olten
Zürich
Technik
Wirtschaft
Bildungsgänge HF Technik
Dipl. Maschinenbautechniker/in HF
Dipl. Elektrotechniker/in HF
Dipl. Systemtechniker/in HF
Dipl. Gebäudeautomatiker/in HF
Dipl. Informatiker/in HF Fachrichtung Applikation
Dipl. Informatiker/in HF Fachrichtung Systemtechnik
Dipl. Techniker/in HF Bauplanung Architektur
Dipl. Techniker/in HF Bauplanung Ingenieurbau
Dipl. Prozesstechniker/in HF
Dipl. Flugzeugtechniker/in HF
Dipl. Energie- und Umwelttechniker/in HF
Nachdiplomstudien NDS HF Technik
NDS HF Energie und Umwelt
NDS HF Informatik Applikationsentwicklung
NDS HF Informatik Cyber Security & Privacy
NDS HF Informatik Systemtechnik
NDS HF Informatik Game Design
NDS HF Informatik Data Science
NDS HF Informatik IT-Projektleitung
Seminare
Seminar Projektmanagement
Seminar KI-Tools im Berufsalltag
Seminar Cyber Security
Seminar Game Design
Seminar Data Science
Bildungsgänge HF Wirtschaft
Dipl. Wirtschaftsinformatiker/in HF
Dipl. Betriebswirtschafter/in HF
Dipl. Betriebswirtschafter/in HF für Technische Kaufleute
Dipl. Marketingmanager/in HF
Vorbereitungskurse eidg. Berufsprüfungen
Technische Kaufleute mit eidg. Fachausweis
Technische Kaufleute mit eidg. Fachausweis
Führungsfachleute mit eidg. Fachausweis
HR-Assistent/in mit Zertifikat
HR-Assistent/in mit Zertifikat Intensiv
HR-Fachmann/HR-Fachfrau mit eidg. Fachausweis
Fachmann/Fachfrau Finanz- und Rechnungswesen mit eidg. Fachausweis
Nachdiplomstudien NDS HF Betriebswirtschaft
Dipl. Betriebswirtschafter/in NDS HF Management
Dipl. Betriebswirtschafter/in NDS HF Strategische Unternehmensführung
Kaufmännische Bildungsgänge
Dipl. Kauffrau, Kaufmann VSH
Dipl. Wirtschaftsfachleute VSK

Tipps aus dem Inhalt

  • TIPP 1: Gestalte deine Arbeit so flexibel wie möglich!
  • TIPP 2: Beziehe Arbeitgeber sowie Kollegen und Kolleginnen in deine Weiterbildungspläne mit ein!
  • TIPP 3: Arbeite effizienter und effektiver mit Zielorientierung!
  • TIPP 4: Entwickle deinen idealen Lernrhythmus!
  • TIPP 5: Lerne mit System und festen Strukturen!
  • TIPP 6: Schaffe genug Ausgleich und Entspannung!
  • TIPP 7: Binde deine/n Partner/in, deine Familie und externe Hilfen in deine Planung ein!
  • TIPP 8: Belohne dich für deine Erfolge!
  • TIPP 9: Mach eine Zeitinventur!
  • TIPP 10: Erstelle eine Zeitplanung aller drei Bereiche!

Studienprogramm  herunterladen

Alles Wissenswerte zu deiner Weiterbildung in einem PDF zusammengefasst

  • Detaillierter Lehrplan zu allen Studiengängen
  • Alle wichtigen Hintergrundinfos zu Ausbildungszielen, Teilnehmerkreisen, Aufnahmebedingungen und weiterführenden Studiengängen
Basel
Bern
Luzern
Olten
Zürich
Technik
Wirtschaft
Bildungsgänge HF Technik
Dipl. Maschinenbautechniker/in HF
Dipl. Elektrotechniker/in HF
Dipl. Systemtechniker/in HF
Dipl. Gebäudeautomatiker/in HF
Dipl. Informatiker/in HF Fachrichtung Applikation
Dipl. Informatiker/in HF Fachrichtung Systemtechnik
Dipl. Techniker/in HF Bauplanung Architektur
Dipl. Techniker/in HF Bauplanung Ingenieurbau
Dipl. Prozesstechniker/in HF
Dipl. Flugzeugtechniker/in HF
Dipl. Energie- und Umwelttechniker/in HF
Nachdiplomstudien NDS HF Technik
NDS HF Energie und Umwelt
NDS HF Informatik Applikationsentwicklung
NDS HF Informatik Cyber Security & Privacy
NDS HF Informatik Systemtechnik
NDS HF Informatik Game Design
NDS HF Informatik Data Science
NDS HF Informatik IT-Projektleitung
Seminare
Seminar Projektmanagement
Seminar KI-Tools im Berufsalltag
Seminar Cyber Security
Seminar Game Design
Seminar Data Science
Bildungsgänge HF Wirtschaft
Dipl. Wirtschaftsinformatiker/in HF
Dipl. Betriebswirtschafter/in HF
Dipl. Betriebswirtschafter/in HF für Technische Kaufleute
Dipl. Marketingmanager/in HF
Vorbereitungskurse eidg. Berufsprüfungen
Technische Kaufleute mit eidg. Fachausweis
Technische Kaufleute mit eidg. Fachausweis
Führungsfachleute mit eidg. Fachausweis
HR-Assistent/in mit Zertifikat
HR-Assistent/in mit Zertifikat Intensiv
HR-Fachmann/HR-Fachfrau mit eidg. Fachausweis
Fachmann/Fachfrau Finanz- und Rechnungswesen mit eidg. Fachausweis
Nachdiplomstudien NDS HF Betriebswirtschaft
Dipl. Betriebswirtschafter/in NDS HF Management
Dipl. Betriebswirtschafter/in NDS HF Strategische Unternehmensführung
Kaufmännische Bildungsgänge
Dipl. Kauffrau, Kaufmann VSH
Dipl. Wirtschaftsfachleute VSK