Zurück

Shareware meistens unzureichend geschützt

06.05.2014 16:04 von Samuel

Software / Shareware

Unter Shareware versteht man Programme die eine eingeschränkte Funktionalität bieten und diese dannach gegen Bezahlung erweitern bzw. freischalten kann.

Das Problem des Entwicklers

Aus der Sicht des Entwicklers wird es zum Ziel, eine ordentliche Registrierung zu programmieren wodurch sich der Käufer die Lizenz erwerben kann. Leider nehmen es viele Entwickler nicht wirklich ernst oder es fehlt ihnen an Erfahrung das ganze auch sicher zu programmieren. Die meisten enwickeln diesen wichtigen Code nach dem Motto "Hauptsache es funktioniert".

Und genau das ist das Problem. Falls man diese Funktion nachlässig implementiert, ist es für den Angreifer ein leichtes Spiel den Code so zu biegen, dass aus einer beschränkten Version des Programmes eine Vollversion wird. Ganz ohne Registrierung des Lizenz-Codes.

Zweites Problem: Programmiersprache

Als Entwickler sollte man sich heute genau aussuchen mit welcher Programmiersprache man das Projekt programmieren sollte. Früher war sogenanntes Reverse Engineering noch sehr harte Arbeit. Der Ablauf vom Code bis zum Programm ist sehr unterschiedlich.

 

Beispiel: Ablauf bei einer C/++ Applikation

Programmablauf Native

 

Beispiel: Ablauf bei einer Java Applikation

Programmablauf Managed

 

Der Unterschied: Bei einem C/C++ Programm wird nativer-Code erzeugt der direkt ausgeführt wird vom Prozessor. Bei sogenanntem "managed"-Code handelt es sich um Code der in einer Laufzeitumgebung ausgeführt wird. Bei Java ist das die Java-VM und bei .Net-Programmen die Common Language Runtime. Dieser Code wird dann von einem Interpreter zur Laufzeit gelesen und abgearbeitet. Allgemein unterscheidet man hier von native und managed-code.

Vorteile / Nachteile von managed-code

Natürlich lassen sich alle Programme analysieren und die Lizenzmechanismen irgendwie austricksen. Allerdings wird dies bei Programmen die eine Laufzeitumgebung benötigen um einiges einfacher.

Die Vorteile von .Net / Java sind sicher:

  • Plattformunabhängig(er) durch VM
  • Einfacher zu erlernen

 

Die Nachteile liegen allerdings nicht viel weiter weg:

  • Codeausführung langsamer
  • Code-Klau wird erleichtert

 

Die Liste könnte man noch reichlich erweitern.

Beispiel - So sollte man es nicht machen

Hier zeige ich anhand eines Shareware-Programmes welches im Internet jeder erwerben kann, wie man es genau nicht machen soll.

Zuerst lade ich die Setup-Datei herunter und installiere das Programm. Nun starte ich es un sehe folgendes:

Beispiel - .Net RE

Während dem registrieren der Lizenz, wird im Hintergrund eine Anfrage an einen Server gesendet um die Antwort zu validieren. Diesen Request können wir mit Fiddler oder Wireshark abfangen.

Beispiel - .Net RE

Nun sehe ich, dass es auf eine licensing.php zugreift. Das dieses Programm in .Net Programmiert wurde und keine andere Schutzmechanismen aufweist, ist es möglich mit dem .Net-Reflector das Programm nach diesem String zu durchsuchen.

 

Beispiel - .Net RE

Zwei Treffer wurden gefunden. Schauen wir diese nun genauer an, wird einiges klar.

 

Beispiel - .Net RE

 

Hier kommt praktisch der ganze Code für die Validierung zum Vorschein. Nun können wir mit dem Plugin Reflexil einfach die If-Bedingung umändern, indem wir den IL-Code bearbeiten.

 

Beispiel - .Net RE

 

Jetzt das Ganze abspeichern und wir haben das Lizenzsystem ausgetrickst.

Beispiel - .Net RE

 

Erschreckend wie einfach das war. Wenn man bedenkt wie viel Zeit der Programmierer in das Programm investierte und diese Zeit mit der Implementierung des Lizenzsystems vergleicht, wird einem fast schlecht. Unentschlossen

Fazit

Eventuell war es kein Artikel für die Masse. Die Erklärungen sind vielleicht auch nicht perfekt gelungen. Jedoch zeigt er auf, dass die Software-Enwickler sich immernoch zu wenig Gedanken um die Sicherheit der eigenen Programme machen. Kein Programm kann 100% geschützt werden. Jedoch könnte man es wenigstens probieren, so gut wie möglich zu schützen um die meisten (und einfachen) Angriffe abzuwehren.

Zurück

Einen Kommentar schreiben

Kommentar von Homework Charts um 07.03.2018

good research paper <a href="http://researchpaper.store">research paper on earth</a> write research paper http://researchpaper.store - research paper

Kommentar von Buy Cheap Essay um 22.03.2018

high school research paper <a href="http://researchpaper.store">write research paper</a> writing a prospectus for a research paper <a href=http://researchpaper.store>research paper</a>