Reverse Engineering: Einschätzung unseres Programmierers

Unser Entwickler Dominik Tripet erklärt, worum es beim Reverse Engineering geht. Was ist das Potenzial? Weshalb ist das Thema in Zeiten von KI so wichtig? Dabei verrät Dominik, was es mit seiner Begeisterung für Rätsel lösen auf sich hat.

Wer bist du und was machst du bei F5?

Ich bin Dominik, ich bin Entwickler bei F5 und Netlive – spezialisiert aufs Backend. In diesem Beitrag rede ich über Reverse Engineering und wie ich für einen F5-Kunden das alte System «reverse engineere», um es ablösen zu können. Dies ist wichtig, damit der Kunde es verändern kann. Mit dem alten System war ein Ausbau mit hohen Kosten und Problemen verbunden.

Was ist Reverse Engineering?

Beim Reverse Engineering geht es darum, bestehende Codes zu überarbeiten. Dies können Web-Applikationen oder sonstige digitale Programme sein. Dabei schaut man Funktionen im Frontend an, geht Schritt für Schritt durch und überprüft, was diese Funktionen im Backend auslösen. Das Ziel dabei ist, die Qualität des Codes zu überprüfen und Fehler zu erkennen. Solche Fehler können z.B. dazu führen, dass Systeme immer langsamer werden.

Was konntest du bei deinen Analysen aufdecken?

Ich konnte herausfinden, dass gewisse Berechnungen im Hintergrund falsch waren. Einmal war z.B. eine Variable vertauscht. Dies führte dazu, dass über 10 Jahre falsche Kalkulationen im «echten Leben» angestellt wurden. Das kann unter Umständen verheerend werden vor allem für Behörden, Banken oder Versicherungen.

Woran liegt das, dass fehlerhafte Programme geschrieben werden?

Ich kann nicht für alle Beispiele sprechen, aber der Code, an dem ich kürzlich gearbeitet habe, wurde meines Wissens von Frontend-Entwickler:innen gebaut, welche wenig Erfahrung in Backendentwicklung hatten. Man erkennt sofort den Unterschied zwischen professionellen und unprofessionellen Codes. Zudem kann heute durch künstliche Intelligenz jeder Programmcode zusammen würfeln, ohne zu wissen, was der Code wirklich macht.

Dominik Tripet, Entwickler bei Netlive IT AG

Wie schätzt du das Programmieren mit KI wie ChatGPT ein?

Mit ChatGPT lassen sich einfach Codes generieren, jedoch verstehen Laien nicht, was genau mit diesen Codes passiert. Dann kann schnell mal passieren, dass etwas falsch «heraus gespuckt» wird. Ich beobachte, dass es ein Trend zu fehlerhaften Codes gibt, wenn Fachpersonen fehlen oder generiert und kopiert wird.

Wie nutzt du ChatGPT?

Ich nutze es manchmal als Hilfe zum Fehler suchen. Dabei bekomme ich eine Idee, wo sich dieser befindet. Das funktioniert erstaunlich gut. Aber Codes selbst schreibe ich damit nicht. Es ist ein Effizienz-Tool, sollte aber Programmieren nicht ersetzen.

Bist du sehr gefragt als Programmierer?

Ja, da kommen immer wieder Anfragen über LinkedIn – man könnte sich theoretisch aussuchen, wo man arbeitet. Direkt nach dem Studium war es jedoch schwierig, da mir die Praxiserfahrung fehlte und viele Unternehmen diese voraussetzen. Ich bin aber sehr zufrieden, denn bei F5 haben wir ein tolles Team – nicht zu gross – und mit Daniel Niklaus einen super Mentor.

Was begeistert dich an deinem Beruf?

Mir gefällt die Herausforderung. Ich hatte immer schon gerne Technik-Zeugs und herausfordernde Aufgaben. Wer ein Programm schreibt, hat zunächst eine Idee, die Kunst ist, dies dann in einen Code umzusetzen. Es ist wie ein Rätsel, bei dem man zur Lösung finden muss. Wenn etwas aber nicht funktioniert, dann kann es auch sehr mühsam sein. Es gibt immer Hochs und Tiefs bei Programmierern.

Fehler finden – darum geht es doch genau auch beim Reverse Engineering?

Genau. Grundsätzlich ist mir lieber einen Code neu zu erstellen, statt etwas zu korrigieren, was jemand anderes «verhunzt hat». Da ich perfektionistisch veranlagt bin, stören mich Sachen schnell, wenn etwas nicht gut programmiert ist. Hier kann es helfen, zu zweit die Basis zu besprechen, bevor man mit Programmieren beginnt. So hat man gleich mehrere Blickwinkel und Ideen. Dies gilt auch bei der Fehlersuche. Deshalb arbeite ich gerne im F5-Team.

© 2024 f5agentur gmbh.
Alle Rechte vorbehalten.