Wie kann man C++ Programme hacken?

5 Antworten

Hallo OneFlex3!

In den meisten Fällen wird wohl "Cracken" gemeint sein. "Hacking" kann man je nach Absicht auch aussprechen, aber oft meint man damit etwas anderes.

Generell ist es doch so, dass man pauschal nicht sagen kann, ob etwas einfach oder schwer umsetzbar ist, da es zum einen auf das Programm, die Sprache, Verschleierungs-, Pack- und/oder Verschlüsselungsmethoden und Größe ankommt, zum anderen auf die Person, die entweder mit Wissen/Können und Programmen glänzen kann oder eben nicht.

Prinzipiell ist alles möglich, wenn man genug Zeit investiert und Ahnung davon hat, was man macht.

Bei einfachen Programmen, die weder gepackt noch geschützt oder verschlüsselt sind, kann man kleinere Dinge per "Hexeditor" ändern, um dann ein Programm zu manipulieren. Dazu sollte man sich aber mit unterschiedlichen Formaten und Assembler auskennen.

Wenn man Hexcode interpretieren kann und bestimmte Stellen im Code gefunden hat, kann man z.B. bestimmte Mnemonics (JZ, JE, JNZ, JNE, JMP etc.) entsprechend ändern.

Ansonsten kann man Programme auch mit Debuggern & Disassembler öffnen und sich dann den Code nebst "String Reference, Calls" etc. genauer anschauen.

Vorab sollte man allerdings das Programm scannen, da einige Programme gepackt & geschützt sind. Bevor man dann Hand anlegen kann, muss man erst entpacken und den Schutz entfernen. Es gibt viele Programme, die vermeintlich andere Programme schützen. Zum Beispiel Themida, Aspack, PELock, Enigma, Obsidium, VMProtect, WinLicense, McFact etc. Zudem gibt es auch Software, die an Hardware bzw. Dongles gebunden ist.

Einfachere Sachen wird man umsetzen können, andere Dinge benötigen eben diverse Programme und Fachwissen.

Mit Hexeditoren kann man einiges machen, aber mit OllyDbg, x64dB, IDA Pro, Ghidra usw. noch viel mehr.

Und manche Programme kann man einfach sichtbar umwandeln.
Zum Beispiel kann man manche Delphi-Programme, VB6, Net-Programme "dekompilieren", um dann alle Module nebst Quellcode offen lesen zu können.
Für .Net Programme könnte man z.B. den "Net Reflector" benutzen, aber nicht alles geht damit. Entwickler sind ja auch nicht doof.

Woher ich das weiß:eigene Erfahrung

Dazu benötigt man den Quellcode Oder man decompilled das Programm.

Für einen Anfänger so gut wie ausgeschlossen. Vielleicht kann man das Programm zum Absturz bringen. Aber was hat man davon.

Und natürlich kommt es darauf an, wie gut (oder schlecht) das Programm geschrieben ist.

Dazu musst du Sicherheitslücken im Code ausnutzen. Bspw Buffer overflows.

Dazu braucht man aber jahrelang Erfahrung

Woher ich das weiß:Studium / Ausbildung – Aktives Studium: Informatik Technischer Systeme

Mit einem HEX-Editor, z.B.! Sieht dann so aus und man muss nur die Daten ändern:

57 69 65 20 6b 61 6e 6e 20 6d 61 6e 20 43 2b 2b 20 50 72 6f 67 72 61 6d 6d 65 20 68 61 63 6b 65 6e 3f