Kann man gegen fertig compilierte ausführbare Binarys (hier: *.exe Dateien) linken?



  • Mal ne Blöde Frage.

    Wenn ich unter Windows ein Programm schreibe und diesem neben der main() Funktion noch eine Funktion Namens foobar() gebe, die dann z.b. irgendeine Int Zahl zurückliefert, kann ich dann bei einem fertig compilieten *.EXE Binary gegen diese Binary Datei linken um die foobar() Funktion nutzen zu können?

    Die Frage bezieht sich sowohl auf C als auch C++.

    Ich könnte mir nämlich gut vorstellen, daß man so ein Feature
    als Beweis das der Code von einem selbst ist, verwenden könnte, wenn man z.b. ein großes Stück Software mit sehr vielen Funktionen an einen Verlag gibt
    und der dann nen Brief schickt mit den Worten, daß er das Zeug nicht will und dann aber ein paar Monate später genau ein ähnliches Produkt auf den Markt bringt.
    Mit dem kleinen Unterschied, das lediglich die oberflächlich sichtbare Grafik anders aussieht, aber der Code darunter gleich ist.

    Könnte man also solche Funktionen in seinen Quellcode einbauen und gegen sie Linken, so wäre es ein leichtes anhand der Binärdatei nachzuweisen, daß der Code gestohlen ist.

    Zwar es ist möglich, daß ein progger genau diese Funktion entfernt,
    aber ich rechne damit, daß eine Funktion die absichtlich schlecht dokumentiert ist und schön in das Programm eingefädelt wurde in einem Quellcode eher drinbleibt, weil der Programmer entweder den gazen Quellcode nicht durchschaut oder die Funktion nicht entfernen will, weil er vielleicht denkt, daß die irgendetwas wichtiges macht.

    Tja und um am Ende festzustellen ob der Binärcode geklaut wurde oder FUnktionen vom eigenen Code enthält, wäre es gut, wenn man diese Funktionen irgendwie mit einem anderen Programm auführen könnte.

    Daher die Frage, kann man gegen eine ausführbare Binärdatei linken um darin eine Funktion aufzurufen?

    Eventuell ne blöde Frage, aber ich Frage dennoch.



  • Ich würde sagen, daß das nicht geht. Bei einer dynamischen Bibliothek, wie sie eine DLL ist, ist der Binärcode anders gelinkt als in der EXE-Datei. Stichwort "position indebendent code". Von daher dürfte das so ohne weiteres nicht gehen.


Anmelden zum Antworten