Sieht man im fertig erzeugten Programm, welche IDE verwendet wurde?



  • Im konkreten geht es darum, ist es möglich, in den compilerten Programmen und Bibliotheken zu erkennen, ob mit einer Vollversion oder einer Studentenversion von Visual Studio 2012 gearbeitet wurde?



  • Grundsätzlich ist das möglich, weil die meisten Compiler und Linker eindeutige Spuren hinterlassen. Etwas schwieriger, und meist nicht ohne sehr spezialisiertes Wissen möglich, ist die Unterscheidung zwischen verschiedenen Versionen desselben Compilers (außer natürlich, die Anwendung linkt dynamisch mit der RTL). Was die Unterscheidung der Lizenzierung angeht... tja, das hängt davon ab, ob der Microsoft-Linker über eine Art Wasserzeichen (oder auch etwas weniger obskur wie z.B. die DVCLAL-Ressource bei C++Builder- und Delphi-Anwendungen) zusätzliche Informationen dazu einfügt.

    Jedenfalls würde ich die Academic Edition von VS nicht für das Erstellen kommerzieller Programme benutzen, wenn das der Hintergrund deiner Frage ist 🤡



  • Mit kommerziell wird es bei mir nicht so schnell was, aber die Lizenzbedingungen klingen danach, als ob damit auch keine Hobbyprojekte gemacht werden dürften.

    Auf die Vorzüge der Professional-Version werde ich trotzdem nicht verzichten, Veröffentlichungen muss ich dann eben mit der Express-Version kompilieren 😉


  • Mod

    Senfti schrieb:

    Mit kommerziell wird es bei mir nicht so schnell was, aber die Lizenzbedingungen klingen danach, als ob damit auch keine Hobbyprojekte gemacht werden dürften.

    Wie kommst du denn zu dieser Ansicht? Denn eigentlich ist es genau der Plan von Microsoft, den Hobbystudenten an ihre Software zu gewöhnen, damit er später im Beruf auf die teure Profiversion besteht.



  • SeppJ schrieb:

    Senfti schrieb:
    Mit kommerziell wird es bei mir nicht so schnell was, aber die Lizenzbedingungen klingen danach, als ob damit auch keine Hobbyprojekte gemacht werden dürften.
    Wie kommst du denn zu dieser Ansicht? Denn eigentlich ist es genau der Plan von Microsoft, den Hobbystudenten an ihre Software zu gewöhnen, damit er später im Beruf auf die teure Profiversion besteht.

    In den Lizenzbedingungen steht, dass es nur für Studienzwecke verwendet werden darf.

    Jetzt ist die Frage, was noch den Studienzweck erfüllt. Muss das Projekt eine Aufgabe aus einer Lehrveranstaltung sein, muss das Projekt im Zusammenhang mit der Uni veröffentlicht werden oder kann es alles sein, weil man damit ja nur für das Studium übt.

    Aber du hast recht, solange es nichts Kommerzielles und nichts Großes wird, wird sich Microsoft wahrscheinlich nicht beschweren.



  • Senfti schrieb:

    In den Lizenzbedingungen steht, dass es nur für Studienzwecke verwendet werden darf.

    Das kann genausogut ein breite Verwendung findendes open/closed/sonstwas-Projekt sein, das (unter anderem) deinem Selbststudium dient - verscherbeln darfst es halt ned.



  • Senfti schrieb:

    Im konkreten geht es darum, ist es möglich, in den compilerten Programmen und Bibliotheken zu erkennen, ob mit einer Vollversion oder einer Studentenversion von Visual Studio 2012 gearbeitet wurde?

    Nimm einfach einen Hex-Editor und ersetzt die Microsoft Strings durch Nullbytes.^^
    Welche Privat Person kauft sich schon ein IDE für einen zweistelligen € Betrag nur um seine Enwickelte Software verkaufen zu DÜRFEN.

    Geld ausgeben ... das mag der schlaue Sparfuchs ganz und gar nicht!



  • Im Notfall bauste dir halt einfach deine Software mit dem Visual Studio deiner Wahl und kompilierst das ganze später mit der Express Version. Mit der darfst du auch kommerzielle Software erstellen.

    Wie auch immer... ob VS irgendwelche Wasserzeichen hinterlässt könnte man ja einfach feststellen, indem man die Output von verschiedenen Versionen (Express, Professional, Ultimate, irgendwelche Academic Versionen) vergleicht und schaut ob das gleiche raus kommt, sofern alle Einstellungen die man machen kann überall identisch hingebogen werden können. Also mach das doch einfach mal mit nem Dummy-Projekt.



  • Das gleiche kommt schon mal nie raus, da immer noch an diversen Stellen ein Timestamp vorhanden ist (um z.B. die EXE mit der PDB-Datei zu matchen)...



  • Mal ne doofe Frage ...
    Der compiler/linker von M$ von den Pro versionen unterscheidet sich wirklich von der Express Version ? Oder schreibt der nur nen Wasserzeichen mit lizenznummer oder so, wenn ja, wo bekommt er das her ?

    Unterscheiden tun die Versionen sich doch nur durch die IDE, also devenv.exe und den mitgelieferten krams.
    Baust aber nen Project ueber (n)make, sollten eigentlich nur nmake.exe cl.exe und link.exe beteiligt sein ... Die erzeugen auch Wasserzeichen von der Version ?

    @Senfti
    Wenn mehr mit c++ & co machen willst, solltest dich eh mit buildtools / buildgeneratoren beschaeftigen. Das bringt unabhaengig von deinem Problem noch mal ne ganz andere Flexibilitaet ins SPiel.

    Wenn dann noch "plattformunabhaengig programmieren" lernst, dann kannst deine Projekte schoen mit dem Visual Studio bearbeiten und debuggen, nun mit einem aufruf die makefiles fuern gcc erzeugen und daraus ne distributierbare Version bauen.
    Geht natuerlich nur wenn nicht an Microsoft Techniken (Mfc .Net) gebunden bist.

    Alternativ besorgst Dir einen Inhaber einer kommerziellen Version und "bezahlst" Ihm die Dienstleistung, das er den Code fuer dich uebersetzt ... dann musst im Zweifelsfall nur noch nachweissen, dass selber keine kommerzielle Version verwendet hasst, bzw. Dir das Gegenteil nachzuweissen wird dann schwer.

    Ciao ....



  • RHBaum schrieb:

    Der compiler/linker von M$ von den Pro versionen unterscheidet sich wirklich von der Express Version ? Oder schreibt der nur nen Wasserzeichen mit lizenznummer oder so, wenn ja, wo bekommt er das her ?

    Könnte er sich doch aus der Registry besorgen, die Information welche Variante installiert wurde kann der Installer aus der Seriennummer generieren und dann in der Registry ablegen. Alternativ irgendwo sonst lokal.



  • Infos über die IDE sollte man noch relativ einfach vom erzeugten Programm fern halten können.

    Anders sieht es zu Infos über den Compiler/Linker aus. Da sind mehrere Varianten denkbar. Hab das bei aktuellen kommerziellen Produkten nicht verfolgt. Bei älteren Produkten konnte es durchaus sein das sich der Compiler an mehreren Stellen eingetragen hatte. Ich meine mich erinnern zu können das die Infos später nicht mehr alle einfach mit einem Editor lesbar waren.



  • Danke für die informative Diskussion 🙂

    Noch eine Frage: Unterscheiden sich Compiler/Linker von Express und Professional oder liegt der Unterschied nur in der IDE?



  • Soweit ich weiss ist es nur das Fehlen einiger Assistenten und IDE-Features, dass VS Express von VS Prof. unterscheidet. Ob sich das mittlerweile geaendert hat weiss ich nicht, aber denke eher nicht.
    Du hast den selben Compiler unter der Haube.



  • Ausgezeichnet 🙂

    Dann brauche ich am Ende nur den Compiler über die Kommandozeile und nicht über die IDE laufen lassen und erledigt.


Anmelden zum Antworten