Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 15.02.2008, 00:50 Titel: Wie lässt sich das Cracken verhinden? |
|
|
Meine Idee ist ja diese Debugger einfach abstürzen zu lassen. Aber wie bekommt man das mit FB hin ?? _________________ Bis irgendwann...  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 15.02.2008, 01:49 Titel: |
|
|
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 |
|
 |
Cherry
Anmeldungsdatum: 20.06.2007 Beiträge: 249
|
Verfasst am: 15.02.2008, 07:06 Titel: |
|
|
Wenn du Disassemblieren meinst - das kann man nicht verhindern. |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 15.02.2008, 11:49 Titel: |
|
|
Ha ich hab's geschafft!
Indem man z.B einen einfachen String einfach "MessageBox" nennt .
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  _________________ Bis irgendwann...  |
|
Nach oben |
|
 |
Lutz Ifer Grillmeister

Anmeldungsdatum: 23.09.2005 Beiträge: 555
|
Verfasst am: 15.02.2008, 11:50 Titel: |
|
|
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 Ifer _________________ Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 15.02.2008, 12:14 Titel: |
|
|
AndT hat Folgendes geschrieben: | Ha ich hab's geschafft!
Indem man z.B einen einfachen String einfach "MessageBox" nennt .
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  |
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 15.02.2008, 12:16 Titel: |
|
|
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 |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 15.02.2008, 13:12 Titel: |
|
|
also was ich damit meine als Code:
Code: |
dim as string abcd = "MessageBox"
|
das ist alles. _________________ Bis irgendwann...  |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 15.02.2008, 13:15 Titel: |
|
|
Gute Disassembler können unterscheiden das. IDA z.B. analysiert den Code und da ist deine "Möglichkeit" schonmal unten durch.
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  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Stephan

Anmeldungsdatum: 05.10.2004 Beiträge: 358 Wohnort: Hessen - 20km Nördlich von Frankfurt am Main
|
Verfasst am: 15.02.2008, 14:17 Titel: |
|
|
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 |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 18.02.2008, 18:15 Titel: |
|
|
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
oder: lass die finger vom programmieren
(oder benutz die gpl ) _________________ 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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 18.02.2008, 18:22 Titel: |
|
|
Schonmal daran gedacht, dass die Beweggründe für das Umgehen einer Sicherheitssperre nicht immer wie bei dir finanzielle Hintergründe hat?  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 20.02.2008, 14:45 Titel: |
|
|
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  _________________ 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 |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.02.2008, 19:55 Titel: |
|
|
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 |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 20.02.2008, 20:09 Titel: |
|
|
Ich hätte da einen kleinen Lösungsansatz.. speziel auf IDA bezogen.
Nein das ist nicht der Code sondern der daraus resultierende
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...  |
|
Nach oben |
|
 |
jensma

Anmeldungsdatum: 16.05.2005 Beiträge: 85 Wohnort: Gleich neben Frankfurt, zwei Zimmer neben Lloyd!
|
Verfasst am: 21.02.2008, 01:57 Titel: |
|
|
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
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 |
|
 |
|