Beste Antwort
Dies ist eine sehr breite Frage. Dies hängt davon ab, für welche Art von Produkten Sie sich interessieren.
Hier einige Beispiele für Reverse Engineering, an denen ich beteiligt war:
Michael Durcans Antwort auf How is Reverse Engineering
Michael Durcans Antwort auf Wie funktionieren moderne Reverse Engineering-Techniken wie tragbares KMG und Laserscanning?
Michael Durcans Antwort auf Wie kann ich Reverse Engineering lernen?
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!