Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Wie lässt sich das Cracken verhinden?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 15.02.2008, 00:50    Titel: Wie lässt sich das Cracken verhinden? Antworten mit Zitat

Meine Idee ist ja diese Debugger einfach abstürzen zu lassen. Aber wie bekommt man das mit FB hin ??
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 15.02.2008, 01:49    Titel: Antworten mit Zitat

findest du das nicht n bissi paradox?, n Debugger abstürzen zu lassen, der doch gerade dafür ausgelegt ist fehlerveruhrsachende Programme zu analysieren.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cherry



Anmeldungsdatum: 20.06.2007
Beiträge: 249

BeitragVerfasst am: 15.02.2008, 07:06    Titel: Antworten mit Zitat

Wenn du Disassemblieren meinst - das kann man nicht verhindern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 15.02.2008, 11:49    Titel: Antworten mit Zitat

Ha ich hab's geschafft!
Indem man z.B einen einfachen String einfach "MessageBox" nennt happy.
Vermutlich wird dieser nicht als String sonden Teil der Windows-Api erkannt was natürlich falsch ist xD
PS: Alles nur bzgl. einer CrackMe in FB zwinkern
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Lutz Ifer
Grillmeister


Anmeldungsdatum: 23.09.2005
Beiträge: 555

BeitragVerfasst am: 15.02.2008, 11:50    Titel: Antworten mit Zitat

AndT hat Folgendes geschrieben:
Wie lässt sich das Cracken verhinden?


Wenn Du das rausfindest, wirst du den Rest deines Lebens nicht mehr arbeiten müssen - jegliche Produzenten kommerzieller Software werden dich mit Geld überschütten, um an diese Technik zu kommen.

Das Cracken eines Programmes, bzw. das umgehen einer Abfrage, ob diese Kopie der Software wirklich eine Legale ist, ist unmöglich - genauso wie es unmöglich ist, Daten "sicher" zu verschlüsseln (da es rein theoretisch immernoch möglich ist, per Zufall einen passenden Schlüssel einzugeben).

Das einzige was Du machen kannst, ist das Cracken der Software bzw. des Kopierschutzes möglichst schwer zu machen. "Relative Sicherheit" um ein Schlagwort zu gebrauchen. Nenne Deine Variable nicht "Passwort", schreibe das Passwort nicht in Klartext in das Programm, habe nicht eine einzige Funktion, die entweder "0" oder "1" zurückgibt, je nach dem, ob das Programm den Schlüssel für echt hält oder nicht. All das lässt sich verdammt leicht umgehen.

Eine (von vielen) Möglichkeiten wäre es, beispielweise die Ressourcen zum Programm (Texturen und Sounds in Spielen usw.) mit einem Zwei-Wege-Passwort zu verschlüsseln, und diese Daten während der Laufzeit mit dem eingegebenen Schlüssel zu entschlüsseln. Ist der Schlüssel richtig, läuft alles so, wie es sein soll; ist der Schlüssel falsch, macht das Spielen nicht mehr wirklich spaß...

Gruß
Lutz böse Ifer
_________________
Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 15.02.2008, 12:14    Titel: Antworten mit Zitat

AndT hat Folgendes geschrieben:
Ha ich hab's geschafft!
Indem man z.B einen einfachen String einfach "MessageBox" nennt happy.
Vermutlich wird dieser nicht als String sonden Teil der Windows-Api erkannt was natürlich falsch ist xD
PS: Alles nur bzgl. einer CrackMe in FB zwinkern

damit kannst du höchstens das kompilieren verhindenr, nicht aber das disassemblieren... hörst du uns zu? hallo?

du hast ja auch schon bei deinem "hotel-manager cheater" nicht den HM-Speicher, sondern den Cheater-Speicher ausgelesen... wahrschienlich hackst du mal wieder dich selbst...

(So, und hier hab ich deinen Post festgenagelt, selbst wenn du den oben wieder editierst, um besser dazustehen, hier ist er immer noch...)
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.


Zuletzt bearbeitet von Jojo am 15.02.2008, 12:17, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 15.02.2008, 12:16    Titel: Antworten mit Zitat

AndT hat Folgendes geschrieben:
Ha ich hab's geschafft!

AndT hat Folgendes geschrieben:
Vermutlich wird dieser nicht als String sonden Teil der Windows-Api erkannt was natürlich falsch ist xD


Was nun?!?


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 15.02.2008, 13:12    Titel: Antworten mit Zitat

also was ich damit meine als Code:
Code:

dim as string abcd = "MessageBox"

das ist alles.
_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 15.02.2008, 13:15    Titel: Antworten mit Zitat

Gute Disassembler können unterscheiden das. IDA z.B. analysiert den Code und da ist deine "Möglichkeit" schonmal unten durch. Zunge rausstrecken

Zum Thema "so sicher wie möglich machen":
- Gebrauche keine Funktion, die prüft, ob ein Passwort o.ä. eingegeben wurde und ob dieses korrekt ist
- Versteck den Code in einem Haufen anderer unnützer Berechnungen
- Spiel ein bisschen mit den Registern oder Variablen herum, lass lange Schleifen ablaufen, die z.B. die Bits eines Integers, der irgendwo in der "Sicherheits-Überprüfung" gebraucht wird, um unterschiedliche Werte rotieren
- denk ein wenig nach über Sachen, die dich verwirren würden Zunge rausstrecken
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Stephan



Anmeldungsdatum: 05.10.2004
Beiträge: 358
Wohnort: Hessen - 20km Nördlich von Frankfurt am Main

BeitragVerfasst am: 15.02.2008, 14:17    Titel: Antworten mit Zitat

Code:

DIM AS STRING abcd = "MessageBox"


Was soll das genau bringen,selbst jeder 0815 Diassembler zeigt dir an,
wenn eine Funktion aufgerufen wird und wo nicht.

Wenn du die Vorgehensweise eines Diassemblers verstehst,
dann wird dir klar,das er alles andere macht,
als die Binäre Quelldatei nach schlagwörtern zu durchsuchen,
und dir das dann als Commando auszugeben.
Und wenn du eine Variable als Messagebox Deklarierst,
wird daraus noch lange kein Assembler befehl.

ich kann mich nur anschliessen,und dir raten,
die Überprüfung möglichs undurchsichtig zu machen,
und viel anderes "Unützes" zeugs zwischendrin zu berechnen und zu Prüfen.
Wichtig ist auch,diverse Passwörter möglichst nicht im Klartext zu verwenden,
sondern durch verschlüsselte ASCII Codes zur Laufzeit zu berechnen.

Aber,wenn dein Programm so Genial ist,das es für jemanden mal Interessant werden sollte,
Wird es auch gecrackt,da kannst du nicht gegen machen.
_________________
'Wir schätzen die Zeit erst, wenn uns nicht mehr viel davon geblieben ist.'
Leo Tolstoi
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 18.02.2008, 18:15    Titel: Antworten mit Zitat

wisst ihr wie man cracken wirklich verhindern kann?
du schreibst auf dein programm drauf "nur 0.99€!" (oder weniger)
bevor ich mich DA strafbar mach, kauf ich das lieber Zunge rausstrecken

oder: lass die finger vom programmieren Zunge rausstrecken
(oder benutz die gpl Zunge rausstrecken)
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 18.02.2008, 18:22    Titel: Antworten mit Zitat

Schonmal daran gedacht, dass die Beweggründe für das Umgehen einer Sicherheitssperre nicht immer wie bei dir finanzielle Hintergründe hat? Zunge rausstrecken
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 20.02.2008, 14:45    Titel: Antworten mit Zitat

was heißt wie bei mir *gg*

jaah, sicherungskopien sind die andere sache, aber laut irgendeinem gesetz muss ein käufer das rechta uf ne sicherungskopie haben falls das original kaputtgeht Zunge rausstrecken
_________________
MFG
Flo

Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.

zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.02.2008, 19:55    Titel: Antworten mit Zitat

Solange kein Kopierschutz vorhanden ist.
Und da du ja offen von diesen redest in Bezug zum Thema cracken, geh ich davon aus, dass du dieses Gesetz ausblendest.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
AndT



Anmeldungsdatum: 02.04.2007
Beiträge: 481

BeitragVerfasst am: 20.02.2008, 20:09    Titel: Antworten mit Zitat

Ich hätte da einen kleinen Lösungsansatz.. speziel auf IDA bezogen.
Nein das ist nicht der Code sondern der daraus resultierende zwinkern

Eine kleine Anleitung dazu:
Also erstmal diesen Code kompilieren, dann starten und dann die daraus erstellte BAS datei erneut kompilieren.
Dies könnte aber etwas dauern...
Code:
dim as integer size = 100000
DIM AS STRING SUBS(1 to size)
DIM AS STRING NEWSUB

FOR I AS INTEGER = 1 to size
    FOR I2 AS INTEGER = 1 to 10
        NEWSUB +=CHR( asc("A")+INT(RND*26))
   
    NEXT
    subs(i)=newsub

    newsub=""
       
NEXT

RANDOMIZE TIMER
DIM AS INTEGER RNDID = INT(RND*size)+1
OPEN "anti_ida.BAS" FOR OUTPUT AS #1

FOR I AS INTEGER = 1 to size
    PRINT #1,"SUB ";SUBS(I)
    IF I = RNDID THEN
        open "rightkey.txt" for output as #2
        print #2,subs(i)
        close #2
      ' Das eigl. Programm 
        PRINT #1,"PRINT CHR(ASC(""R""))+CHR(ASC(""I""))+CHR(ASC(""G""))+CHR(ASC(""H""))+CHR(ASC(""T""))"
        PRINT #1,"dim as integer h = int(rnd*";str(int(rnd*9999999));")"
      ' Ende 
    PRINT #1,"END SUB"
    PRINT #1,""
    ELSE
        PRINT #1,"dim as integer h = int(rnd*";str(int(rnd*9999999));")"
        PRINT #1,"END SUB"
        PRINT #1,""
END IF

next

PRINT #1,"OPEN ""KEY"" FOR INPUT AS #1"
PRINT #1,"DIM AS STRING PASSW"
PRINT #1,"INPUT #1,PASSW"
PRINT #1,"SELECT CASE PASSW"
FOR I AS INTEGER = 1 to size
    PRINT #1,"CASE """; SUBS(I);"""
   
    PRINT #1,SUBS(I)
NEXT
PRINT #1,"END SELECT"
PRINT #1,"CLOSE #1"
CLOSE #1

_________________
Bis irgendwann... grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jensma



Anmeldungsdatum: 16.05.2005
Beiträge: 85
Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!

BeitragVerfasst am: 21.02.2008, 01:57    Titel: Antworten mit Zitat

AndT hat Folgendes geschrieben:
Ich hätte da einen kleinen Lösungsansatz.. speziel auf IDA bezogen.
Nein das ist nicht der Code sondern der daraus resultierende zwinkern

Eine kleine Anleitung dazu:
Also erstmal diesen Code kompilieren, dann starten und dann die daraus erstellte BAS datei erneut kompilieren.
Dies könnte aber etwas dauern...
Code:
supercode abgeschnitten


Was zum Henker.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz