hallo, besteht eine möglichkeit, einen Teil des C-Sourcecode, bei weitergabe zu schützen, sodas dieser Teil von einem drittem nicht eingesehen werden kann? Gruß Siegfried
nicht wirklich...kannst höchstens den teil compilieren und als asm file dazulinken...nur wer sich auskennt..nunja
Du kannst den Codetext verschlüsseln, aber das wäre völlig sinnlos. Entweder man braucht den Sourcecode im Klartext, oder man braucht ihn gar nicht. Wenn möglich, bau aus den Teilen eine lib, und liefer die aus. Das Wissen, was da drin steht, lässt sich zwar durch Re-Engineering herausfinden, aber das ist zumindest mit Aufwand verbunden. Oliver
Nur wenn du eine Lib draus machst. Und selbst die kann mit entsprechendem Aufwand eingesehen werden - je nach Plattform fällt der Aufwand unterschiedlich groß aus (PC, AVR, 805x, ARM). Ralf
> einen Teil des C-Sourcecode, bei weitergabe zu schützen, > sodas dieser Teil von einem drittem nicht eingesehen werden kann? Schreib ihn so verwirrend, dass die Konkurrenz beim Reverse-Engineering um 10 Jahre zurückgeworfen wird... Ein erster Ansatz wäre sowas wie im Beitrag "Re: Lookup table für Sinus funktioniert nicht" ;-)
Wenn es unbedingt als Source-Code weitergegeben muß, gibt es noch sowas hier: http://www.stunnix.com/prod/cxxo/overview.shtml Oliver
Lothar Miller schrieb: > um 10 Jahre zurückgeworfen wird... > Ein erster Ansatz wäre sowas wie im > Beitrag "Re: Lookup table für Sinus funktioniert nicht" ;-) Ich kann nicht mehr... zu geil diese Aussage!
Das Konzept der "Source Code Obfuscation" ist durchaus existent, aber nur bei größeren Projekten sinnvoll. So wird beispielsweise Flexe-Lint von der Firma Gimpel im Quelltext ausgeliefert (das ist die nicht-PC-Variante von PC-Lint). FlexeLint is distributed as shrouded C source code, to make the capabilities of PC-lint available wherever there is a C compiler to compile it. So steht's auf http://gimpel.com/ Je kleiner aber ein Projekt ist, desto lohnender ist der Versuch, den "verschleierten" Sourcecode zu rekonstruieren.
Siegfried Saueressig schrieb: > besteht eine möglichkeit, einen Teil des C-Sourcecode, bei weitergabe zu > schützen, sodas dieser Teil von einem drittem nicht eingesehen werden > kann? Das ist ungefähr so, wie das Auslesen einer CD zum Zwecke des Abspielens zu gestatten, aber das Auslesen einer CD zum Zwecke des Kopierens verhindern zu wollen... Du kannst das Problem eigentlich nur durch entsprechende Nutzungs- bestimmungen lösen. Wenn jemand deinen verschleierten C-Code rekonstruiert, dann hast du gegen ihn letztlich gar keine Handhabe mehr, da er ihn ja am Ende neu schreiben muss (mit seinen eigenen Worten) und damit ein neues Werk zwangsweise schafft, für das er selbst völlig legal der Inhaber des Copyright wird. Für deinen originale Code jedoch hälst du das Copyright und kannst festlegen, wer damit was unter welchen Bedingungen darf.
Das große Problem bei Lib-Funktionen ist, daß alle Hardwareabhängigkeiten danach in Stein gemeißelt sind. Z.B. CPU-Takt, Timer, Portpins, ADC-Inputs, PWM-Outputs, UARTs, ... Peter
Atmel hat mit dem UC3L das sog. FlashVault eingeführt, wo man seine Library in einen bestimmten Bereich flashen kann, diesen dann aber vor dem Auslesen schützen kann. Wird eine FUnktion aus diesem Bereich aufgerufen, sieht es beim Debuggen so aus als wäre es eine laaange jmp und return Instruction. Vielleicht ist das ein Ansatz, seine SW bereits geflasht mit einem uC weiterzugeben... FlashVault code protection The AT32UC3L includes a brand new flash security technology named FlashVault. FlashVault allows the on-chip flash to be partially programmed and locked, creating secure on-chip storage for secret code, keys and software intellectual property. Code stored in the FlashVault will execute as normal, but cannot be read, copied or debugged. This allows a device with FlashVault code protection to carry a piece of valuable software such as a math library or an encryption algorithm from a trusted location to a potentially untrustworthy partner where the rest of the source code can be developed, debugged and programmed.
Ich seh das so: Wer so eine Frage stellen muss, besitzt gar keinen Source Code der schützenswert wäre. Wer Source Code hat, der tatsächlich schützenswert ist, hat genug Erfahrung in C, so dass er diese Frage gar nicht stellen muss.
Karl heinz Buchegger schrieb: > Wer Source Code hat, der tatsächlich schützenswert ist, hat genug > Erfahrung in C, so dass er diese Frage gar nicht stellen muss. Vielleicht will er ja den Code schützen, damit andere die Fehler darin nicht sehen können. Peter
Ich seh das so: Wenn die Moderatoren, sogar die arroganten und überflüssigen Kommentare übernehmen, braucht's auch keine Forenmitglieder. MfG Stephan
Hier gibt's ein paar Grundlagen, um den QUELLCODE unkenntlich(er) zu machen: http://en.wikipedia.org/wiki/Obfuscated_code Viele Grüße, Matthias
Peter Dannegger schrieb: > Karl heinz Buchegger schrieb: >> Wer Source Code hat, der tatsächlich schützenswert ist, hat genug >> Erfahrung in C, so dass er diese Frage gar nicht stellen muss. > > Vielleicht will er ja den Code schützen, damit andere die Fehler darin > nicht sehen können. > > > Peter Security by Obscurity, sehr gefährlich. Wenn Fehler vorhanden sind sollten sie auch ausgemerzt werden können. Ansonsten sehe ich es so: 1. Es gibt die Möglichkeit, "obfuscated code" zu erzeugen, der schwer zu verstehen ist. Hier sehe ich allerdings das Problem, dass man zum einen Zeit investieren muss, wenn man seinen normalen Code in obfuscated code umschreiben möchte. Und von Anfang an obfuscated code zu entwickeln halte ich doch für etwas gewagt. Ausserdem lässt sich das Originalprogramm durch Beobachtung des Codes (Stichwort Debugger) usw. auch wieder rekonstruieren. 2. Library erzeugen mag Personen abhalten, die wenig Ahnung haben, Profis könnten versuchen den Code zu disassemblieren wodurch am Ende auch der (bzw. ein ähnlicher) Code erzeugt werden kann. Insgesamt bin ich der Meinung, dass man abwägen muss, was man möchte. Soll niemand die Möglichkeit haben den Code zu sehen? Dann darf man ihn auch nicht veröffentlichen, weder im Original, noch obfuscated noch als library oder anderweitig kompiliert. Sollen nur Laien nicht darauf zugreifen können? Obfuscating oder Library. Ausser durch Verschlüsselung ist mir kein Weg bekannt, wie man auch Profis davon abhalten könnte, Reverse Engineering durchzuführen. Aber selbst das ist hier nicht möglich, da der Code zum entschlüsseln irgendwo unverschlüsselt hinterlegt sein muss.
> Wenn die Moderatoren, sogar die arroganten und überflüssigen Kommentare > übernehmen, braucht's auch keine Forenmitglieder. Da muss ich sogar zustimmen. Wieso sollte man die Erfahrung im Schutz von Code haben, wenn man gleichzeitig Erfahrung im C-Programmieren hat? Könnte es nicht evtl. sein, dass sich jemand anders darum kümmert, was mit dem Code passiert? Wie es z.B. in etlichen Firmen der Fall ist? A erstellt den Code nur und gibt ihn an B weiter. B kümmert sich darum, was mit dem Code passiert und wie er zu schützen ist. Da braucht a exakt 0% Wissen über Codeschutz (bzw. nur so viel, dass er ihn selbst nicht weitergibt)
Wenn es um veröffentlichen im Netz oder ähnlichen geht, lass einfach den entsprechenden Code weg. Obfuscated code und library bringt nix. Wenn dir der Schutz in Form eines Copyrights / Lizenz nicht ausreicht, sollest du überlegen ob du den Code überhaupt weitergeben solltest..
Hallo, das sind ja viele Antworten. Werde mal überlegen, wie ich es löse. Danke Gruß Siegfried
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.