Sechshunderteinundachtzig

Als der Support für XP endete, hatte ich ja bereits angedeutet, dass es Kunden gibt, die möglicherweise ein Interesse an einem Konverter hätten.

Jetzt hat einer dieser Kunden gezielt bei mir nachgefragt, ob ich die Entwicklung eines solchen Programms übernehmen könnte.
Die Entwickler der betreffenden Anwendung sind schon seit Jahren nicht mehr greifbar, und haben das Format der abgespeicherten Daten nie dokumentiert (bzw. zumindest diesem Kunden die Dokumentation nicht zugänglich gemacht).

Bevor ich irgendetwas zu dieser Sache sagen kann, lasse ich mir erst mal von dem Kunden ein paar Beispieldateien zuschicken (kriegt natürlich vorher ein NDA, wenn er will), um überhaupt einen Eindruck zu gewinnen, ob ich dieses Format lesen und verstehen kann.
Ich hoffe mal, dass die Dateien nicht binär oder gar verschlüsselt sind. Reverse Enginineering ist immer ein zweischneidiges Schwert. Das ist dem Kunden schon klar. Wenn ich etwas in dieser Richtung mache, dann wird das teuer.

Über Anne Nühm (breakpoint)

Die Programmierschlampe.
Dieser Beitrag wurde unter Uncategorized abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

20 Antworten zu Sechshunderteinundachtzig

  1. plietschejung schreibt:

    Tob dich ruhig mal aus 🙂

    Like

  2. Leser schreibt:

    Dazu kommt bei Reverse Engineering noch die rechtliche Gefahr, soweit ich weiß ist das mitunter mit Problemen behaftet? Es gibt die Legende, dass der erste Hersteller, der kompatible Clones des ersten IBM-PC herstellen wollte, neben den Entwicklern, die das BIOS reverse-engineered haben, eine Horde Anwälte angestellt hatte, damit auch alles auf rechtlich sicherem Boden besteht (Die Reverse Engineers mussten das Teil komplett dokumentieren, und der Clone durfte nur anhand dieser Doku entwickelt werden, ohne dass die Entwickler mit den Reverse-Engineers in Kontakt stehen durften, oder so ähnlich)…

    Hach ja, die Freuden der Closed Source Software … jeder Anwender macht sich davon abhängig, und wenn es dann mal zu so einem Problem kommt, dann guckt man tief in die Röhre und muss noch tiefer in die Tasche greifen, um es wieder zu lösen.

    Ich hätte dem Kunden ja geraten, statt die Software zu reverse-Engineeren, die alten XP-Rechner durch neue PCs zu ersetzen, und auf denen eine VM mit dem XP drin für die alte Software aufzusetzen. Solange damit nicht von der VM aus im Web gesurft wird, sollte das doch hinreichend sicher sein…Und günstiger dürfte es allemal sein…

    Like

    • breakpoint schreibt:

      Natürlich müssen rechtliche Restriktionen beachtet werden.
      In diesem Fall soll aber nicht die SW reverse-engineert werden (was vermutlich laut Nutzungsbedingungen verboten wäre), sondern nur das – rechtlich nicht geschützte – Dateiformat.
      Außerdem existiert das Unternehmen, das damals die Entwicklung durchgeführt hat, gar nicht mehr.

      Ja, die „Freuden der Closed Source Software“! Davon leben viele Entwickler wie ich.

      Ob XP bei dem Kunden auf physischen Maschinen läuft oder auf virtuellen, weiß ich nicht und es ist auch völlig unerheblich.
      Jedenfall will er auf längere Sicht von XP weg.

      Like

      • Leser schreibt:

        Deine Aussage „Davon leben viele Entwickler wie ich“ weckt in mir irgendwie unwillkürlich eine Asoziation zu den Finanzblasen-Krisen der vergangenen Jahre (ohne, dass ich den dahinterstehenden Gedankengang jetzt bewusst in Worte fassen könnte).

        Like

        • breakpoint schreibt:

          Tja, Gedanken lesen kann ich nicht.
          Deshalb ist es für mich völlig unnachvollziehbar, wie du auf irgendwelche Blasen kommst.

          Like

          • Leser schreibt:

            Ich versuche mal, den Gedankengang herzuleiten. Die Spekulationsblasen waren und sind ja volkswirtschaftlich ungefähr so hilfreich/nützlich, wie ihre Namensvetter am Fuß…
            Wenn man nun bedenkt, dass man Software (auch, wenn man sie verkauft – dafür gibts ja Lizenzen!) nicht mit geheimem Quellcode entwickeln *muss*, wäre es auf die gesamte Volkswirtschaft gesehen besser, wenn alle Quelltexte offen wären, so dass zumindest diejenigen, die dazu berechtigt sind, oder im Falle eines solchen „Kollateralschadens“ einer Unternehmensauflösung, immer Einblick in die Quelltexte nehmen könnten. Mir fällt auch die Möglichkeit einer Institution wie die Nationalbibliothek ein, wo jede textliche Publikation zur Archivierung eingelagert werden muss, nur eben für Quelltexte. In jedem Fall wären derartige Aufträge dann nicht nötig, und würden in die Kategorie der „Jobs, die keiner braucht“ (Telefondesinfizierer) fallen. Es wäre sicher mal interessant, den volkswirtschaftlichen Schaden durch geheimgehaltene Software-Quelltexte auszurechnen. Sicher weniger, als bei den großen Finanzblasen, auf denen unsere gesamten Wirtschaftssysteme ja schon seit langer Zeit ruhen, aber eben qualitativ dasselbe – nur ein quantitativer Unterschied. Aus einer Geisteshaltung heraus, die ich nur mit „rückwärtsgewandt“ umschreiben kann, weil mir keine deutlicheren Worte einfallen, die nicht zugleich auch beleidigend wären, und beleidigen möchte ich niemanden dadurch.

            Like

            • breakpoint schreibt:

              Dir ist schon klar, dass Kommunismus/Sozialismus nicht funktioniert haben? Und da ging es nur um Geld.
              Mein geistiges Kapital würde ich niemals in eine öffentliche Bibliothek o.ä. einstellen. Da könnte ja jeder beliebige Möchtegern-Programmierer an meinen Sourcen herumpfuschen.

              Für die Käufer von closed source Software besteht natürlich ein gewisses Risiko, dessen sich viele gar nicht bewusst sind.
              Wer vor 10 oder 12 Jahren XP gekauft hat, oder wer in 10 Jahren ein DRM-gesichertes Werk betrachten will, ging/geht genau dieses (wohl unvermeidbare) Risiko ein.

              So, ich rege mich ja schon wieder ab. Finger weg von meinen Sourcen! :>

              Like

            • Leser schreibt:

              Es geht mir doch überhaupt nicht um Kommunismus/Sozialismus (auch wenn es da andere Gründe hatte, dass der nicht funktioniert hat). Ich stelle mir einfach nur die Frage: Was wäre das beste, wenn es überhaupt kein Geld gäbe. Das ist dann letztendlich auch in Wirklichkeit die beste Vorgehensweise, nur dass eben noch die Kompensation durch Geld hinzukommt. Aber in dem Moment, wo das Geld auch nur minimal über diese Bedeutungslosigkeit hinaus gehoben wird, wird es eben zum Selbstzweck, und damit kann ich die dafür getane Arbeit nicht mehr ernst nehmen, weil sie nicht ehrlich (=um der Sache selbst willen, nicht des Geldes wegen) ist. Natürlich heißt das, dass ich unsere gesamte Welt/Wirtschaft nicht ernst nehmen kann, aber ich habe ja auch nie behauptet, dass ich das täte…

              Like

            • breakpoint schreibt:

              Wenn es kein Geld gäbe, wären wir wieder beim Tauschhandel angelangt.
              Mir kann niemand einreden, dass das besser wäre.

              Like

            • Leser schreibt:

              Du hast das Geschriebene wieder mal an meinem Punkt vorbeiverstanden. Geld als Tauschhandel-Ersatz ist ja genau richtig und gut – aber eben nur das! Überall, wo es statt dessen jedoch zum Selbstzweck wird, ist die Welt schlechter dran, als sie es ohne Geld wäre.

              Like

            • breakpoint schreibt:

              Für mich ist Geld eine Art „Speichermedium“, mit dem ich den Gegenwert von erbrachten Leistungen und Diensten abspeichern kann.
              Dafür – und für den „Tauschhandel“, um auch wieder notwendige Waren zu erwerben – betrachte ich Geld als unverzichtbar.

              Ich stimme aber mit dir darin überein, dass ich großangelegte Finanzspekulationen o.ä. ablehne.

              Like

    • engywuck schreibt:

      reverse engineering ist überhaupt kein Problem – jedenfalls solange du NIE Einblick in die Original-Sourcen hattest (und das ggf. belegen kannst) und das nur für die Zusammenarbeit deines Programms mit dem reverse engineerten brauchst (Protokolle, Dateiformate). Deshalb konnte Microsoft ja auch nichts beispielsweise gegem SAMBA machen oder gegen OpenOffice, das das undokumentierte Word/Excel/… Dateiformat lesen und schreiben kann.

      Lizenzrechtlich mag das anders aussehen, aber auch hier droht maximal dem Vertragsnehmer selber eine Vertragsstrafe, nichts strafrechtliches. Wenn die ursprüngliche Herstellerfirma aber nicht mehr existiert oder auch nur die Entwicklung des Programmes komplett eingestellt hat hast auch da sicher gute Karten.

      Das mit dem BIOS war damals aus zweierlei Gründen schwierig: zum einen gab es noch keine entsprechenden Gesetze oder gesicherte Rechtsprechung, zum anderen wollte Phoenix(?) sicherstellen, dass nichts passieren kann, deshalb hat Team A das Verhalten des BIOS-Chips analysiert und beschrieben, die Anwälte haben das geprüft auf Implementierungsdetails etc und Team B das sonst keinen Kontakt zu Team A hatte hat dann neu impplementiert, so dass „notariell beglaubigt“ war, dass nicht 1:1 irgendwas übernommen wurde.

      Like

      • breakpoint schreibt:

        In diesem Fall hier bin ich mir eigentlich sicher, dass ich da keine rechtlichen Probleme zu erwarten habe.
        Wenn, dann höchstens mein Kunde. Aber wo kein Kläger, da kein Richter.

        Irgendwelche Binaries (also ausführbare Dateien, Libraries o.ä.) würde ich dagegen nie reverse-engineeren.
        Einzig allein schon deshalb, weil ich keine Lust habe, mit dem Disassembler herumzuhantieren.

        PS: Wie kann man denn belegen, dass man etwas nicht gemacht hat?
        Einen negativen Beweis zu führen ist doch praktisch unmöglich.
        Ich kann z.B. nicht beweisen, dass ich niemals in Bielefeld (wie auch?) war.

        Like

        • engywuck schreibt:

          deswegen schrub ich „belegen“ und nicht „beweisen“. Vermutlich hätte ich besser „dem Richter glaubhaft machen“ schreiben sollen.
          Ich dachte an sowas wie „Frau Richter, ich hatte keinen Einblick in die Sourcen, war ja auch nie bei Firma X angestellt“, was dann der Prozessgegener erstmal widerlegen muss. Wäre bei Open Source naturgemäß schwieriger, da müsste ggf. ein Gutachter beide Sourcen vergleichen (so wie das bei Linux und den Unix-Quellen ja gemacht wurde).
          Deshalb war das „Shared Source“ 2001 von Microsoft ja auch in gewisser Weise ein vergiftetes Angebot: wer da reinschaute schafft sich evtl. Probleme bim Entwickeln von Alternativen. (Inzwischen sind Microsofts Lizenzen abgeändert und von der OSI bzw. manche sogar von Debian als „frei genug“ eingestuft)

          Like

  3. breakpoint schreibt:

    SechshundertsechsundneunzigMit etwas zeitlichem Abstand beschreibe ich heute das Reverse Engineering von speziellen Dateien, die ich von einem Kunden erhalten hatte.

    Zuerst zog ich eine Datei in den Hex-Editor. Aha. Kein binäres Format, sondern Text, genauer gesagt, XML. Alle…

    Like

  4. Pingback: Neunhundertvierundvierzig | breakpoint

  5. Pingback: Sechshundertsechsundneunzig | breakpoint

Hinterlasse einen Kommentar