[C++] Object files verschlüsseln?

G

Green Mamba

Gast
Hallo,

ich habe hier ein paar Objectfiles, die mal als Modul verkauft werden sollen. Die Form der Weitergabe habe ich mir so gedacht dass die .o files zusammen mit den Headerfiles verschickt werden. Zusätzlich werden diese mit der Hardware verdongelt.
Wie kann ich diese aber vor "Reverse Engineering" und ähnlichen Angriffen schützen? Ist die einzige Möglichkeit dieses zu verhindern, die Abläufe innerhalb künstlich zu verkomplizieren? Es soll erschwert werden auszuspähen was innerhalb für Berechnungen ablaufen. Vielen Dank schonmal für eure Hilfe.

Viele Grüße,
Timo
 
Zuletzt bearbeitet:
Hallo Timo,

das stelle ich mir schwierig vor. Da es .o Files sind sollen diese doch später zu einem exe dazugelinkt werden. D.h. zu einem bestimmten Zeitpunkt müssen diese .o Files unverschlüsselt vorliegen da der Linker sonst nichts damit anfangen kann.
Also kann man diese .o Files dann auch abfangen und disassemblieren.

Denkbar wäre eher eine Library/DLL die dynamisch geladen wird. Diese enthält nur einen Startcode der einen verschlüsselten Teil nachlädt und erst im Speicher entpackt. Aber auch da kann man dann wieder darauf zugreifen.

Schliesslich soll der Code ja ausgeführt werden.

Weiter kann man versuchen zu detektieren ob ein Debugger läuft und dann einfach das Programm beenden.
Selbstmodifizierender Code hilft auch das eigene Tun zu verschleiern.
.....

Es ist nur die Frage wie gewieft der Hacker denn sein soll, bzw. sein darf den Du ausschliessen willst. Es wird immer einen geben der deine Verschlüsselung knacken wird. So er denn dazu motiviert ist.

Der beste Kopierschutz ist immer noch vernünftige Preise, eine funktionierende Software und ein guter Support.

MfG

Arnd
 
Zuletzt bearbeitet:
Naja, die Preise belaufen sich dann irgendwann mal auf einen 5-stelligen Betrag, zumindest ist es bei der aktuellen Version so. :D
Aber auch bei dieser haben wir Angst dass es mal einer disassembliert oder so. Sicherlich würde es ohnehin schwierig nachzuvollziehen was innerhalb so passiert, da es routinen mit extrem viel know-how sind.
Ich stelle mir das auch schwierig vor, daher frag ich ja. Hätte ja sein können dass dieses Problem, weil sehr weitläufig, irgendwie gelöst wurde.
Die Sache mit der DLL verlagert das Problem ja nur weiter, anstatt es zu lösen.
 
ich glaube mich zu erinnern, dass es da ein paar tools gibt, die ein deassemblierung durch neu sortierung des codes erschweren können. allerdings klappt das nur bei hochsprachendesassemblern, bei solche die in asm zurückübersetzen kann es funktionieren.
ich hab so ein tool auch mal gehabt, hab leider den namen vergessen.
aber wie gesagt, klappt nur bei hochsprachendeassemblern.
 
Die Verlagerung in eine DLL ist aber ein Ansatz der viel bringt.
In der DLL kannst Du nämlich den Code verschlüsseln das geht im .o File nicht oder zumindest sehr viel schwieriger.

Es ist einfach eine Frage welche Vorkenntnisse der potientielle Hacker denn haben soll.

Und Software im fünfstelligen Bereich wird doch wohl kommerziell genutzt. Der Anwenderkreis ist nicht der Massenmarkt. Also wer soll sich denn die Mühe machen und das disassemblieren?

Forschungseinrichtungen oder grössere Firmen habe ein Budget das solche Beträge problemlos bewältigt und sicher keine Interesse einen Rechtsstreit zu provozieren.

Also mit Hardwaredongle und einer kodierten DLL (die auch nicht einfach zu entwicklen ist :-)) kommst Du ziemlich weit.

MfG

Arnd
 
Nein, ist absolut nicht für den Massenmarkt, das kann man ganz sicher ausschließen. Aber es geht um Know-How das mit allen Mitteln gesichert werden sollte.
 
Da musst Du eben abwägen wieviel Aufwand es Dir Wert ist, das Knowhow abzusichern und wieviel Aufwand ein potentieller Hacker investieren muss um diese Verschlüsselung zu knacken.

Zum Beispiel ist der Ansatz .o Files auszuliefern dann nicht gerade ideal. Warum müssen es denn .o Files sein? Sind die Aufrufe zeitkritisch?

Kennst Du das hier http://www.aladdin.com/hasp/default.asp schon? Die treiben meines Wissens nach ziemlich viel Aufwand bei der Verschlüsselung, sind aber natürlich auch ein beliebtes Ziel für Hacker.

MfG

Arnd
 
Ja, die Aufrufe sind Zeitkritsch, weil es sich um Module zur Materialsimulation in Echtzeit für virtuelle Umgebungen handelt. Den Link werde ich mir dann mal bei Zeiten reinpfeifen, hab jetz erst mal Feierabend. :)
Vielen Dank schonmal.
 

Ähnliche Themen

Zurück
Oben