Beste Antwort
Eine der größten (wenn nicht die größte) Websites, die Reverse Code Engineering-Herausforderungen enthält, ist Crackmes.de .
Diese Website ist super erstaunlich, weil:
- Es ist Free .
- Herausforderungen werden nach folgenden Kategorien kategorisiert:
- Schwierigkeitsgrad: Sie haben 9 Schwierigkeitsstufen, von sehr einfach bis schwer.
- Plattform: Sie möchten Windows, Linux üben , etc … Fähigkeiten umkehren?
- Sprache: Sie möchten einen Crackme lösen, der in welcher Sprache geschrieben ist? Ja, wenn Sie Erfahrung haben Beim Reverse-Code-Engineering werden Sie feststellen, dass es in den meisten Fällen nicht genau dasselbe ist, eine in Delphi geschriebene ausführbare Datei im Vergleich zu einer anderen in Assembler-Sprache geschriebenen Datei zurückzuentwickeln.
- Gelöste Crackmes: Wenn Sie mit dem Reverse Engineering beginnen, können Sie nach einfach gelösten Crackmes suchen, um Ihre Crackmethode mit den Crackern zu vergleichen, die sie vor Ihnen gelöst haben Wirklich ein Schatz zum Lernen und Erweitern Ihrer Denk- und Lösungsfähigkeiten.
Antwort
Ich gehe nur davon aus, dass Sie kein Experte für Informatik und Low-Level-Programmierung sind Die Antwort lautet also: Ja, es ist sehr schwer.
Es gibt zwei „Ebenen“ von Programmiersprachen. Hoch und Tief. Hohe Programmiersprachen sind im Allgemeinen recht einfach zu bedienen und zu lernen. Sie sind gut lesbar und müssen von Maschinen „übersetzt“ werden, um ausgeführt zu werden. Beispiele für Programmiersprachen auf hoher Ebene sind Javascript, R, Python, Java und viele mehr.
Programmiersprachen auf niedriger Ebene sind schwerer zu lernen. Sie benötigen ein besseres Verständnis der Funktionsweise von Computerspeicher und -prozessen. Das beste und bekannteste Beispiel für eine eher niedrige Sprache ist C. C ist sehr mächtig und ziemlich schwer zu lernen. Aber es ist fast maschinenverständlich als Programmiersprachen auf hoher Ebene. Eine recht einfache Programmiersprache ist Assembly. Baugruppencode gibt es in verschiedenen Typen, aber alle sind kompliziert, nervig und sehr schwer zu lesen. Der Baugruppencode spielt jedoch eine wichtige Rolle im Reverse Engineering. Wenn Sie etwas zurückentwickeln, zeigen Sie den Assembly-Code eines Programms an / ändern ihn.
Sie müssen verstehen, dass Assembly im Grunde die Muttersprache ist. Wenn Sie ein Programm schreiben, ist immer Assembly-Code enthalten. Entweder übersetzt Ihr Compiler Ihren Code in Assembly oder der Interpreter erledigt dies in Echtzeit für Sie.
Das alles bedeutet im Grunde, dass es einfach ist, ein echter Profi-Reverse-Engineer zu werden. Alles, was Sie wirklich tun müssen, ist, verschiedene Arten von Assembly fließend zu lernen und zu lernen, wie man in C programmiert. Das einzige Problem ist, dass diese beiden Dinge schwer zu tun sind.
Viel Glück!