AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Compilereinstellungen gegen Cracks?

Ein Thema von Ares · begonnen am 4. Mär 2008 · letzter Beitrag vom 5. Mär 2008
Antwort Antwort
Seite 1 von 2  1 2      
Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 16:53
Hallo!

Gibt es eigentlich Compilereinstellungen, die das Cracken eines Programmes schwerer oder leichter machen? Gibt es z.B. Einstellungen bei denen Variablen-, Methoden- oder Klassennamen nicht aus der EXE ermittelt werden können, aber anderen Einstellungen aber schon?

Mir ist bewusst, dass man nur durch Einstellungen am Compiler kein Crack-sicheres Programm erstellen kann. Aber wenn man den Crackern die Arbeit durch bestimmte Mittel zumindest etwas schwerer machen kann, wäre dass ja schon etwas...

Besten Dank
Ares
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#2

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 18:15
Da die VCL umfassenden Gebrauch von der RTTI von Delphi macht, wirst du schon auf die VCL verzichten müssen, falls dich das ernsthaft stört. Ebenso mußt du auf das Sprachfeature selbst verzichten. IIRC gibt es einen Compilerschalter, der RTTI für eine Klassendeklaration deaktiviert.

Gewöhnlich ist es aber eher unproblematisch, daß Variablennamen etc. aus dem GUI-Code im Binary enthalten sind, da dieser nicht der sensitive Teil eines Programmes ist. Das Verbergen von Implementationsdetails dürftest du daher auf die empfindlichen Codestellen beschränken können.
Moritz
  Mit Zitat antworten Zitat
TurboMartin

Registriert seit: 13. Feb 2006
Ort: Bad Honnef
765 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 18:31
Eine exe-Datei ist in 4 Teile gliederbar:

1. Nötige informationen für MS-DOS
2. PE-Header
3. Section-Header
4. Die einzelnen Sectionen

Der 4. Teil ist wiederum in die verschiedene Sectionen gliederbar. Die kannst du nicht einfach verschlüsseln oder ähnliches. Variablen stehen in .data , Konstanten in .rdata und der Programmcode in .text . Je nachdem, was Du brauchst kannst Du einfach ein Programm nehmen, welches dir den Header anzeigt und dann zu den Offsets, die in 3. angegeben sind springen und einfach auslesen. Somit ist da nichts mit Cracksicher machen.

Wenn Du mehr Lesestoff suchst, schau mal in Microsofts WHDC.
Tomorrow will be cancelled due to lack of interest.

  Mit Zitat antworten Zitat
DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
439 Beiträge
 
Delphi 12 Athens
 
#4

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 18:45
Fürs erste sollte man sämtliche Debug-Logs deaktivieren. Das geschieht in den Projektoptionen.

Das ist soweit mir bekannt der einzige "Schutz", wenn man das so nennen mag. Es gibt hier noch verschiedene Programme (etwa ASProtect, http://www.aspack.com/asprotect.html), welche die Exe mit zusätzlichen Schutzfunktionen versehen, aber damit hat man trotzdem keinen 100%tigen Schutz und im schlimmsten Fall erhält man während der Programmausführung unangenehme Nebeneffekte.
Devid
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#5

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 19:07
außer, dass es vielleicht verschiedene Ansichten gibt, kann man einiges unternehmen.
(manche gehen davon aus, wenn ein Programm leicht kopierbar wird, erst dann findet es verbreitung und wird erfolgreich ...)

Aber man kann so einiges machen, ich hab schon eins zwei Leute mal mein Programm zum cracken gegeben. Aber keiner hat es zu Ende getan.
Auch "Brekki" hier im Forum hab ich es mal aus Spaß gegeben, aber ist dann im Sand verlaufen.
Es sagen zwar immer alle, sie könnten es leicht cracken, aber nach eins zwei Tagen ist dann die Lust vergangen

Und genau darum gehts.
Du solltest es nicht besonders schwer machen wollen, sondern besonders arbeitsaufwändig!. denn clever sind sie alle. Aber die meisten sind faul
das heißt, wenn Du wirklich Dein Programm irgendwie sicher haben willst ... dannn . .. Viel und oft irgendwas prüfen.
(NATÜRLICH nicht mit funktionen, am besten den Code immer direkt einbinden. per Inc Dateien. Oder wenn geht per inline.
Vor jeder Button Click procedure die Seriennummer checken, oder sonstwas, was Du machen willst.
Auch hier, immer creativ sein.
Eine lustige Sache fand ich auch ganz nett .. eigene Programmierfehler !!
Manchmal gibt es Fehler im Programm, da findet man schwer die Ursache. Ich hatte mal was, da stürzte das Programm sehr viel später nach der eigentlichen Ursache im Quelltext ab ...
Nun ja .. ich hab lange gebraucht um es zu finden.
In Assembler stell ich mir das noch witziger vor. ich wünsche jedefalls viel Spaß *g*

Und nicht überall den User drauf hinweisen, dass er keine gültige Lizenz hat, weil dann weiß ein Cracker ja gleich, wo der Code geprüft wird.
das cracken eines Programms sollte mindestens solange dauern, wie Du für die Schutzmechanismen aufwendest.
.. und dann kommt es natürlich drauf an, wie wichtig Dein PRogramm überhaupt ist
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 19:27
Zitat von stoxx:
Aber man kann so einiges machen, ich hab schon eins zwei Leute mal mein Programm zum cracken gegeben. Aber keiner hat es zu Ende getan.
Auch "Brekki" hier im Forum hab ich es mal aus Spaß gegeben, aber ist dann im Sand verlaufen.
Es sagen zwar immer alle, sie könnten es leicht cracken, aber nach eins zwei Tagen ist dann die Lust vergangen
Also sorry, aber da finde ich machst Du es Dir gerade sehr einfach. So einiges machen kann man sicher, die Frage (die Du völlig korrekt stellst, wenn auch eher implizit) ist immer die nach Kosten und Nutzen. Dabei ist die Abschätzung eigentlich ganz einfach: Wie teuer ist, wenn jmd. Dein Programm crackt (und da muss man auch mal realistisch überlegen, wer sich die Mühe macht und wer dann den Crack sucht, etc.) und wie teuer ist es die SW dagegen zu sichern (was nur heißt, dass man das Cracken aufwendig / teuer macht). Ist die SW gut und die Preise fair, dann sind viele Leute (und viel wichtiger, auch Firmen!) bereit gerne auf Deine SW zurück zu greifen (und bezahlen natürlich auch dafür).
Bekommt man aber eine bescheidene SW, die noch dazu derbe verdonglet ist und deren Dongle leider keinen Platz mehr findet, da man nur 4 USB - Ports hat und neben Maus, Tastatur und Drucker schon ein anderer Dongle hängt, nun ja.... Natürlich gibt es noch eine Menge dazwischen, aber um es mal klar zu sagen, natürlich ist Deine SW einfach nie sicher. Mit genug Zeit / Aufwand kann man jeden Schutz umgehen, da nunmal das Programm als solches vorliegt und man eben den Assembler durchgehen kann. Wie man das ganze erschwert, dass ist so eine Sache, sicher ist jedenfalls nie etwas. Du kannst höchstens abschätzen, wie schwer es für einen potentiellen Angreifer ist. Die Frage ist allerdings, was man davon hat? Gerade "kreatives" umgestalten und einfügen von sinnlosem Code sind Dinge, die das Programm fehleranfälliger, langsamer und die Entwicklung insgesamt teurer machen. Wen hält man damit ab? Klar, einige "Hobby-Cracker" werden schnell aufgeben, aber meinst Du ehrlich, dass die sonst Deine SW kaufen? Die, die bereit sind Geld für SW auszugeben werden das schon tun, egal ob nun ein Crack verfügbar ist oder nicht. Die, die kein Geld ausgeben wollen verwenden entweder Deine SW nicht (gibt Schlimmeres, nutzt Dir aber auch nicht wirklich was) oder finden einen Crack (und nu?).
Wenn DU jetzt also mal ganz realistisch guckst, wie teuer der ganze "Crack-sicher-Quatsch" ist und wie viele Leute Du damit als Kunden gewinnen dürftest (und wie gesagt, es ist sehr unwahrscheinlich dass es einer ist), dann merkst Du schon, dass sich der Aufwand selten (oder nie) lohnt.

Gruß,
Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 19:33
@DMW: Die RTTI ist nicht aus der VCL und man kann sie auch nicht abstellen. Aber man kann ein klein wenig bestimmen, wie viel darin stehen soll. Letztenendes ist das, wie du schon sagtest, allerdings unerheblich wenn man an cracken denkt.

@TurboMartin
Na und? Du kannst doch ein einzelne Section verschlüsseln. Ich weiß nicht was UPX macht, aber ich habe das auch mal probiert. Siehe Anhang. Hier wird allerdings mit einem Passwort entschlüsselt. Ich weiß nicht mehr genau, was ich gemacht habe. Auf jeden Fall ist die Code-Section verschlüsselt (soweit ich mich erinnere mit XOR).
so jetzt kann man natürlich den Speicher mitlesen - dagegen eben wieder nur einen Teil des Codes entschlüsseln. Allerdings muss man da schon fast in Opcodes programmieren.
Soviel zur Machbarkeit.

Zur Sinnhaftigkeit gibt es hier bereits hunderte Threads. Und nein, es gibt keinen CanCrackMe und AntiCrackMe-Schalter in Delphi und auch nicht in VB und sicherlich auch nicht in anderen Sprachen.
Angehängte Dateien
Dateityp: exe original_480.exe (18,5 KB, 4x aufgerufen)
Dateityp: exe encrypted_180.exe (27,5 KB, 2x aufgerufen)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#8

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 19:58
@Unwissender ..

Zitat:
Bekommt man aber eine bescheidene SW, die noch dazu derbe verdonglet ist und deren Dongle leider keinen Platz mehr findet, da man nur 4 USB - Ports hat und neben Maus, Tastatur und Drucker schon ein anderer Dongle hängt, nun ja....
ich könnte Dir ja einen USB Hub für 5 Euro von Lidl empfehlen, erst vor einer Stunde bei Lidl im Angebot gesehen (kein Scherz)
Alle Dongle Programme die ich kenne, von denen gibt es keine bis gar keine Cracks im Netz !!
(ich nutze keine Dongles. ist mir, wie Du schon richtig erwähnt hast, viel zu kompliziert und zu teuer alles)
Klar ist immer die Frage nach den Kosten, auch nach den Entwicklungskosten. Aber ich fühl mich ein wenig geschützt immer besser, als gar nicht geschützt, und muss nicht irgendwelche Ausreden verwenden, warum es sich nicht lohnt, irgendwas zu sichern.
Mich interessiert eigentlich da auch mehr mein eigenes Wohlbefinden.
Was wohl jeder tut, der eine Auto teurer 10.000 Euro fährt
Letztendlich ist es auch nicht das wichtigste, und sollte es auch nicht sein!
Es nützt ja nix, wenn die Software nix taugt, aber sehr sicher ist.
Ich halte es so, dass ich jedem Kunden eine spezielle Version compiliere. Das ganze Update ist automatisierst, und da gibts auch keine lauffähige Version, die es irgendwie zu "cracken" gilt.
Eine spezielle Rechnerbindung, die ich verwende, ist auch ein Konzept, was ich von großen Firmen kenne, wo die Software mind. 1500 Euro Lizenzgebühren pro Monat und Rechner kostet ...
Ich denke, mit stäntiger "Onlinisierung" von Programmen, wird sich das Problem eh selbständig lösen.
Wenn eine Software nur noch läuft, wenn das Programm einen onlinekontakt hat, dann wird in Zukunft alles sehr viel schwieriger (und meiner Meinung nach besser für Programmierer werden) -....
Meiner Meinung nach ist immer die Frage des Aufwands wichtig. Ein Katz und Maus Spiel.
Bei gewissen Fernsehdiensten hat es auch recht lange gedauert ( einige Jahre ) bis Entschlüsselungen wieder im Netz verfügbar waren.
Denn letztendlich ist alles eine Frage der Zeit ..
(Ich besitze übrigens keinen Fernseher, nicht dass jemand auf dumme Gedanken kommt, mir irgendwas zu unterstellen

und ich finde es traurig, den Kopf in den Sand zu stecken, weil eh alles scheiß egal ist, und es (im Moment) noch keinen echten richtigen Schutz für Software gibt.
Wenn sich aber keiner mit dem Thema beschäftigt, wird es auch nie einen geben!
Danke ...
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.
  Mit Zitat antworten Zitat
DMW

Registriert seit: 6. Sep 2006
Ort: Münster
269 Beiträge
 
Delphi XE Professional
 
#9

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 22:08
Zitat von sirius:
@DMW: Die RTTI ist nicht aus der VCL und man kann sie auch nicht abstellen. Aber man kann ein klein wenig bestimmen, wie viel darin stehen soll.
Der größte Teil der RTTI in einem Delphi-oder C++Builder-Projekt wird für die VCL und ihr Streaming-System erzeugt; dies ist nicht veränderbar. Ob aber für eigene Klassen RTTI erzeugt werden soll, kann man aber, wie ich schrieb, meines Wissens mittels eines Compilerschalters selbst ein- und auch abstellen.
Moritz
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#10

Re: Compilereinstellungen gegen Cracks?

  Alt 4. Mär 2008, 22:25
ansonsten kann man sich ja die klassen mit object anlegen. aber mit erlaub, normal besitzen nur interpretative sprachen entsprechende schalter, und dort macht es auch sin. bei einen echten kommpiler find ich es für überflüssig. da reicht orderntlich zu kompilieren --> optimierung, keine debugging symbole, keine asserts, etc. jm2c

GG
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz