Alithinos Δημοσ. 10 Μαρτίου 2017 Δημοσ. 10 Μαρτίου 2017 Σκεφτόμουν μια ιδέα για DRM. Ας υποθέσουμε ότι έχουμε μια εφαρμογή που θέλουμε να πουλάμε μέσω μιας ιστοσελίδας. 1) Αφού ο χρήστης κατεβάσει την εφαρμογή, η εφαρμογή συνδέεται με τον server, και λαμβάνει ένα μοναδικό ID το οποίο αντιστοιχεί σε ένα χρήστη, του οποίου τα στοιχεία αποκτήθηκαν από λογαριασμό που έκανε για να μπορεί να αγοράσει και κατεβάσει το πρόγραμμα. 2) Αποθηκεύει το ID τοπικά σε ένα binary αρχείο το οποίο επίσης είναι αναγκαίο για να λειτουργήσει η εφαρμογή. 3) Αν κάποιος "έξυπνος" ανεβάσει το πρόγραμμα σε torrent ή άλλο πειρατικό site, το αρχείο αυτό θα περιέχει μέσα το ID με το οποίο μπορεί να γίνει ταυτοποίηση των στοιχείων του. 4) Κατεβάζοντας ο δημιουργός το πειρατικό πρόγραμμα, με έναν ειδικό τρόπο που ξέρει μόνο αυτός, θα μπορεί να ταυτοποιήσει αυτόν που ανέβασε το πρόγραμμα στο torrent, και στη συνέχεια θα μπορεί να κάνει ότι νομίζει (πχ να κινηθεί νομικά) Είναι καλή αυτή η ιδέα / αλγόριθμος για τη καταπολέμηση της πειρατείας ? Αν όχι πείτε γιατί, και αναφέρετε κάποιον άλλο αλγόριθμο.
Anubis13 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 To 2 που γραφεις σπαει ευκολα και το 3 δεν ειναι απαραιτητο να συμβει. Μπορεις να κανεις watermark το προγραμμα για καθε user μονο που θα πρεπει να το κανεις ξεχωριστα compile για τον καθενα. Δεν ειναι μονο θεμα αλγοριθμου αλλα και υλοποιησης αυτου
Alithinos Δημοσ. 11 Μαρτίου 2017 Μέλος Δημοσ. 11 Μαρτίου 2017 (επεξεργασμένο) To 2 που γραφεις σπαει ευκολα και το 3 δεν ειναι απαραιτητο να συμβει. Μπορεις να κανεις watermark το προγραμμα για καθε user μονο που θα πρεπει να το κανεις ξεχωριστα compile για τον καθενα. Δεν ειναι μονο θεμα αλγοριθμου αλλα και υλοποιησης αυτου Σπάει εύκολα ε ? Με decompile ? Χμ... Αν 'μεταμφιέσω' το id και του δώσω ξεκάρφωτη ονομασία ? Να το κάνω να μοιάζει με άσχετο field ? πχ τύπου "CowColor" ? (αν υποθέσουμε ότι το πρόγραμμα έχει κάποια σχέση με.. αγελάδες) Και χρησιμοποιήσω και obfuscator ? Και αν το βάλω να αποθηκεύεται σε κρυφό φάκελο σε κάποιο ασυνήθιστο directory / path με άσχετα ονόματα του τύπου .../2380052234/534982012.bin Επεξ/σία 11 Μαρτίου 2017 από Alithinos
Anubis13 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Αναλογως το ποσο καλα ξερεις να χρησιμοποιεις τον debugger και ποση υπομονη εχεις. Υπαρχουν apis για διαβασμα αρχειου και προγραμματα που δειχνουν ποια αρχεια και ποια registry keys ψαχνει ενα προγραμμα. Obfuscator ειναι καλη λυση αλλα ξερεις οτι δεν υπαρχει deobfuscator? 1
παπι Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Οι κρακερς δουλευουν με debugger. Ολο αυτο που λες, θα το δουν. Για την πειρατεια εχεις τα παρακατω: Κουφια εφαρμογη και οι λειτουργιες να ειναι στο σερβερ. Εφαρμογη που ειναι σχεδιασμενη απο την μανα του να παιρνει τονους αποupdates. Εφαρμογη που θα ειναι freeαλλα με αρκετα features επι πληρωμη. Και τελος το καλυτερο. Free εφαρμογη με εσοδα απο donate. 1
Tsalikis177 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Μην ψάχνεσαι. Εδώ σπάνε κορυφαία προγράμματα... αυτό που λες είναι εύκολο για αυτούς. Άσε που... ποιος σου λέει εσένα ότι κατά την απόκτηση του Id δεν θα έχει δώσει ψεύτικο όνομα. Τι θα του ζητήσεις και ΑΤ? ΑΦΜ? Σορρυ δεν προβλέπεται και θα βρεις εσύ μπελά μετά. Επίσης, ενα πρόγραμμα το ανεβάζουν πολλοί σε τορενταδικα. Η λύση είναι μια φίλε. Να τρέχει όλο το logic σε έναν Server και εσύ απλά να παρέχεις τον Client για τα Calls.
tarantules Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Υπάρχει πολύ απλός τρόπος για να κλειδώσεις ένα πρόγραμμα που θες να πουλήσεις και το χρησιμοποιούν αρκετοί προγραμματιστές. Αυτό που κάνουν είναι οτι "δένουν" το μοναδικό hardware id του υπολογιστή σου (είτε το CPU id είτε το HDD id). Το concept είναι το εξής : Όταν αγοράσει κάποιος το πρόγραμμα , υπάρχει ενσωματωμένη ρουτίνα η οποία αν τακτά χρονικά διαστήματα συνδέεται στον server του δημιουργού και ελέγχει εαν υπάρχει στη λίστα νόμιμων χρηστών το κλειδί που έχει δημιουργηθεί με βάση το hardware id του υπολογιστή. Το κόλπο είναι οτι το κλειδί είναι μοναδικό όχι μόνο για τον συγκεκριμένο χρήστη αλλά αφορά μόνο τον συγκεκριμένο υπολογιστή.Εαν δηλαδή ο ίδιος ο νόμιμος χρήστης πάει και το εγκαταστήσει σε έναν άλλο υπολογιστή , αυτό απλά δεν θα δουλέψει. Εαν δεν βρει το valid κλειδί μέσα σε συγκεκριμένο χρονικό διάστημα ή μετά από x αποτυχημένες προσπάθειες, τότε απλά ενεργοποιούνται ρουτίνες που μπορούν να κλειδώσουν κάποια futures του προγράμματος ή και ολόκληρο το πρόγραμμα. Οπότε , μπορείς εσύ το πρόγραμμα να το διαθέτεις στο internet ελεύθερα και απλά όταν κάποιος κάνει την αγορά , με βάση το hardware id του υπολογιστή του να του παράγεις ένα μοναδιαίο κλειδί το οποίο θα βρίσκεται στον server ώστε όποτε χρειάζεται να γίνεται η ταυτοποίηση. Ένα τέτοιο προγραμματιστικό εργαλείο είναι και το Hardware Unique ID Extractor της εταιρίας Tahionic 1
Anubis13 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Εχει υλοποιηθει αυτη η ιδεα που περιγραφεις με διαφορες παραλλαγες και εχει σπαστει κιολας 1
Anubis13 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Εχει υλοποιηθει στο Ubisoft DRM και στο Steam CEG με λιγο διαφορετικο τροπο απο τον οποιο περιγραφεις. Σε αυτο που περγραφεις βλεπω 3 τροπους 1) Γραφω emulator που κανει emulate τα server responses. 2) Κανω bypass το να αναζητει το κλειδι στον server και πειραζω την ρουτινα κλειδωματος 3) Κανω bypass τα hardware locks και κανω patch οτιδηποτε σε server responses η ελεγχους κλειδιου αναλογως υλοποιησης.
defacer Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Σκεφτόμουν μια ιδέα για DRM. Ας υποθέσουμε ότι έχουμε μια εφαρμογή που θέλουμε να πουλάμε μέσω μιας ιστοσελίδας. 1) Αφού ο χρήστης κατεβάσει την εφαρμογή, η εφαρμογή συνδέεται με τον server, και λαμβάνει ένα μοναδικό ID το οποίο αντιστοιχεί σε ένα χρήστη, του οποίου τα στοιχεία αποκτήθηκαν από λογαριασμό που έκανε για να μπορεί να αγοράσει και κατεβάσει το πρόγραμμα. 2) Αποθηκεύει το ID τοπικά σε ένα binary αρχείο το οποίο επίσης είναι αναγκαίο για να λειτουργήσει η εφαρμογή. 3) Αν κάποιος "έξυπνος" ανεβάσει το πρόγραμμα σε torrent ή άλλο πειρατικό site, το αρχείο αυτό θα περιέχει μέσα το ID με το οποίο μπορεί να γίνει ταυτοποίηση των στοιχείων του. 4) Κατεβάζοντας ο δημιουργός το πειρατικό πρόγραμμα, με έναν ειδικό τρόπο που ξέρει μόνο αυτός, θα μπορεί να ταυτοποιήσει αυτόν που ανέβασε το πρόγραμμα στο torrent, και στη συνέχεια θα μπορεί να κάνει ότι νομίζει (πχ να κινηθεί νομικά) Είναι καλή αυτή η ιδέα / αλγόριθμος για τη καταπολέμηση της πειρατείας ? Αν όχι πείτε γιατί, και αναφέρετε κάποιον άλλο αλγόριθμο. Δεν υπάρχει σε κενό "μια ιδέα για DRM" όπως δεν υπάρχει "μια ιδέα για γεύμα". Πόσοι θα φάνε; Είναι χορτοφάγοι; Πόσο μπάτζετ έχεις; Πόσο χρόνο; Πόσους μάγειρες; Ανάλογα, ποιός είναι αυτός από τον οποίο θες να προστατευτείς, για πόσο χρονικό διάστημα, πόσο αποφασισμένος είναι, πόσο πολύ δε σε πειράζει να σπάσεις τα @@ των πελατών που πληρώνουν, κλπ. Οποιοδήποτε DRM θεωρητικά σπάει end of story εκτός αν έχεις εσύ τον έλεγχο κάποιου ικανού μέρους της πλατφόρμας (π.χ. hardware, ή software που τρέχει σε δικό σου server και κάνει τη δουλειά, κλπ). 2
masteripper Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Πιστεύω ότι η καλύτερη λύση είναι μισή εφαρμογή στον υπολογιστή μισή στον server... Έλεγχος κάθε φορά ποιος είναι συνδεδεμένος που και ανάλογες ενέργειες... Τέλος υπάρχουν και ασπαστες εφαρμογές γιατί απλώς απευθύνονται σε συγκεκριμένο κοινό και δεν προκαλούν αρκετό ενδιαφέρον άσχετα από το αν κοστίζουν χιλιάδες €
Tsalikis177 Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Ρε παιδιά. αν είναι μια εφαρμογή/υπηρεσία που απευθύνεται στον απλό κοσμάκη τότε τι σας νοιάζει αν θα σπάσει. Σιγά μην ασχοληθεί κανείς. Άσε που υπάρχει και ένας διαρκείς πόλεμος. Το σπάνε, το πατσαρεις κλπ. σκεφτόμαστε λες και όλοι έχουν σχέση με την πληροφορική, και όλοι είναι χακερς.
Επισκέπτης Δημοσ. 11 Μαρτίου 2017 Δημοσ. 11 Μαρτίου 2017 Οτιδήποτε εγκαθίσταται σε υπολογιστή τρίτου είναι θέμα χρόνου να σπάσει. Ο μόνος τρόπος να μην έχεις πειρατεία είναι το software να τρέχει αποκλειστικά server side.
Alithinos Δημοσ. 11 Μαρτίου 2017 Μέλος Δημοσ. 11 Μαρτίου 2017 Αναλογως το ποσο καλα ξερεις να χρησιμοποιεις τον debugger και ποση υπομονη εχεις. Υπαρχουν apis για διαβασμα αρχειου και προγραμματα που δειχνουν ποια αρχεια και ποια registry keys ψαχνει ενα προγραμμα. Obfuscator ειναι καλη λυση αλλα ξερεις οτι δεν υπαρχει deobfuscator? Άμα κρατήσω το μη obfuscated κώδικα σε backup ? Οι κρακερς δουλευουν με debugger. Ολο αυτο που λες, θα το δουν. Για την πειρατεια εχεις τα παρακατω: Κουφια εφαρμογη και οι λειτουργιες να ειναι στο σερβερ. Εφαρμογη που ειναι σχεδιασμενη απο την μανα του να παιρνει τονους αποupdates. Εφαρμογη που θα ειναι freeαλλα με αρκετα features επι πληρωμη. Και τελος το καλυτερο. Free εφαρμογη με εσοδα απο donate. Δεν υπολογίζω να γνωρίζουν πολλοί απ' τους χρήστες στους οποίους απευθύνεται η εφαρμογή πως να χειρίζονται ένα debugger. Άμα ήξεραν, θα είχαν φτιάξει και οι ίδιοι κάποια αντίστοιχη εφαρμογή, αλλά δεν υπάρχει τίποτα μιας και απευθύνεται σε πολύ niche κοινό. Και αυτός είναι ο λόγος που έκατσα και έφτιαξα κάτι τέτοιο εξ αρχής. Επειδή είδα ότι δεν το είχε φτιάξει κάποιος άλλος. Μην ψάχνεσαι. Εδώ σπάνε κορυφαία προγράμματα... αυτό που λες είναι εύκολο για αυτούς. Άσε που... ποιος σου λέει εσένα ότι κατά την απόκτηση του Id δεν θα έχει δώσει ψεύτικο όνομα. Τι θα του ζητήσεις και ΑΤ? ΑΦΜ? Σορρυ δεν προβλέπεται και θα βρεις εσύ μπελά μετά. Επίσης, ενα πρόγραμμα το ανεβάζουν πολλοί σε τορενταδικα. Η λύση είναι μια φίλε. Να τρέχει όλο το logic σε έναν Server και εσύ απλά να παρέχεις τον Client για τα Calls. Sites όπως το Facebook, το Paypal και άλλα ζητάν φωτογραφία από έγγραφα ταυτοποίησης. Αυτοί πως μπορούν ? Υπάρχει πολύ απλός τρόπος για να κλειδώσεις ένα πρόγραμμα που θες να πουλήσεις και το χρησιμοποιούν αρκετοί προγραμματιστές. Αυτό που κάνουν είναι οτι "δένουν" το μοναδικό hardware id του υπολογιστή σου (είτε το CPU id είτε το HDD id). Το concept είναι το εξής : Όταν αγοράσει κάποιος το πρόγραμμα , υπάρχει ενσωματωμένη ρουτίνα η οποία αν τακτά χρονικά διαστήματα συνδέεται στον server του δημιουργού και ελέγχει εαν υπάρχει στη λίστα νόμιμων χρηστών το κλειδί που έχει δημιουργηθεί με βάση το hardware id του υπολογιστή. Το κόλπο είναι οτι το κλειδί είναι μοναδικό όχι μόνο για τον συγκεκριμένο χρήστη αλλά αφορά μόνο τον συγκεκριμένο υπολογιστή.Εαν δηλαδή ο ίδιος ο νόμιμος χρήστης πάει και το εγκαταστήσει σε έναν άλλο υπολογιστή , αυτό απλά δεν θα δουλέψει. Εαν δεν βρει το valid κλειδί μέσα σε συγκεκριμένο χρονικό διάστημα ή μετά από x αποτυχημένες προσπάθειες, τότε απλά ενεργοποιούνται ρουτίνες που μπορούν να κλειδώσουν κάποια futures του προγράμματος ή και ολόκληρο το πρόγραμμα. Οπότε , μπορείς εσύ το πρόγραμμα να το διαθέτεις στο internet ελεύθερα και απλά όταν κάποιος κάνει την αγορά , με βάση το hardware id του υπολογιστή του να του παράγεις ένα μοναδιαίο κλειδί το οποίο θα βρίσκεται στον server ώστε όποτε χρειάζεται να γίνεται η ταυτοποίηση. Ένα τέτοιο προγραμματιστικό εργαλείο είναι και το Hardware Unique ID Extractor της εταιρίας Tahionic Ενδιαφέρον αυτό με το hardware id. Δε το σκέφτηκα νωρίτερα γιατί εγώ κάνω συχνά αλλαγές στον υπολογιστή μου και μια αλλάζω το ένα κομμάτι, μια το άλλο... Το μόνο εξάρτημα που συνεχίζει να παραμένει στο σύστημα που έχω τώρα σε σχέση με αυτό που είχα πριν 5 χρόνια είναι ένας HDD. Αλλά έχω αλλάξει 3 μητρικές, 4 cpus, 4 gpus, δίσκους, λειτουργικά... Δεν υπάρχει σε κενό "μια ιδέα για DRM" όπως δεν υπάρχει "μια ιδέα για γεύμα". Πόσοι θα φάνε; Είναι χορτοφάγοι; Πόσο μπάτζετ έχεις; Πόσο χρόνο; Πόσους μάγειρες; Ανάλογα, ποιός είναι αυτός από τον οποίο θες να προστατευτείς, για πόσο χρονικό διάστημα, πόσο αποφασισμένος είναι, πόσο πολύ δε σε πειράζει να σπάσεις τα @@ των πελατών που πληρώνουν, κλπ. Οποιοδήποτε DRM θεωρητικά σπάει end of story εκτός αν έχεις εσύ τον έλεγχο κάποιου ικανού μέρους της πλατφόρμας (π.χ. hardware, ή software που τρέχει σε δικό σου server και κάνει τη δουλειά, κλπ). Ναι σωστά. Η εφαρμογή απευθύνεται σε πολύ niche κοινό, και μέχρι στιγμής δεν υπάρχει άλλη αντίστοιχη ανταγωνιστική ακριβώς για αυτό το λόγο. Πολλοί δεν ξέρουν καν για την ύπαρξη αυτού του κοινού, πόσο μάλλον των αναγκών του και των προβλημάτων που καλείται να λύσει η εφαρμογή. Το target audience είναι γύρω στα 10.000 άτομα max. Το ποσοστό από αυτούς τους 10.000 που θα πειστούν να το αποκτήσουν μου είναι άγνωστο. Διαθέσιμος χρόνος το αργότερο έως τέλη Ιουνίου. Budget μικρό. Μάγειρας 1. Αυτό που θέλω είναι να μη μπορεί ο μέσος χρήστης (ο οποίος ίσως να ξέρει πως να μπει σε κανένα rapidShare ή μTorrent) αλλά δεν έχει γνώσεις προγραμματισμού, να το ανεβάσει έτσι απλά. Τώρα αν κάποιος "Συνάδελφος" βαλθεί να τη κρακάρει... Ας το δοκιμάσει και ας το κάνει. Θα τον συνέφερε περισσότερο όμως πιστεύω να κάνει reverse engineering και να φτιάξει ανταγωνιστική εφαρμογή. 2500 γραμμές είναι μέχρι στιγμής όλο κι όλο με όλα τα κύρια features να λειτουργούν, και να έχουν απομείνει τελευταίες πινελιές όπως αλλαγή γραμματοσειρών για να γίνει πιο όμορφο αισθητικά το GUI, μερικά refactors εδώ και κει για καθάρισμα του κώδικα να είναι πιο ευανάγνωστος για πιθανές αλλαγές στο μέλλον... Αλλά δε θεωρώ πολύ πιθανό το να βρεθεί κάποιος που θα αποφασίσει να τη κρακάρει, γιατί όπως ανέφερα σε άλλη απάντηση, η εφαρμογή απευθύνεται σε πολύ niche κοινό, το οποίο δεν έχει απαραίτητα μεγάλη εξοικείωση με τη πληροφορική, και αμφιβάλλω πως θα μαθευτεί η ύπαρξη της έξω από αυτό το μικρό κύκλο ανθρώπων. Και στατιστικά, πόσοι crackers αντιστοιχούν σε ένα δείγμα 10.000 ανθρώπων, οι οποίοι δεν είναι απαραίτητα εξοικειωμένοι με τη πληροφορική / προγραμματισμό, αλλά ξέρουν κάποια βασική χρήση υπολογιστή πχ να μπαίνουν στο Facebook / Youtube και ίσως μερικοί και κάνα office ? Τέλος θα προτιμούσα να σπάσω τα νεύρα των πελατών όσο το δυνατόν λιγότερο. Καθόλου αν γίνεται. Πιστεύω ότι η καλύτερη λύση είναι μισή εφαρμογή στον υπολογιστή μισή στον server... Έλεγχος κάθε φορά ποιος είναι συνδεδεμένος που και ανάλογες ενέργειες... Τέλος υπάρχουν και ασπαστες εφαρμογές γιατί απλώς απευθύνονται σε συγκεκριμένο κοινό και δεν προκαλούν αρκετό ενδιαφέρον άσχετα από το αν κοστίζουν χιλιάδες € Σίγουρα φαίνεται να είναι η πιο ασφαλής επιλογή να χρειάζεται να είναι συνέχεια ο χρήστης συνδεδεμένος online. Αυτό που με κάνει να διστάζω ξέρεις τι είναι ? Ίσως φανεί παράξενο... 1) Ότι αναμένω σημαντικός αριθμός των χρηστών να είναι άνθρωποι μιας μεγαλύτερης ηλικίας, οι οποίοι δεν είναι αρκετά εξοικειωμένοι με κάποια πράγματα, και ίσως είναι επιρρεπής σε θεωρίες συνωμοσίας περί φακελώματος μέσω internet από τη CIA και άλλα τέτοια, και ποιος ξέρει τι μπορεί να φαντάζονται άμα η εφαρμογή προσπαθεί να συνδεθεί στο internet κάθε φορά που παν να την ανοίξουν... Για αυτό θα προτιμούσα έναν τρόπο που να περιορίζει τις συνδέσεις, για να τους κάνει να νιώθουν πιο "ασφαλείς". 2) Θέλω ακόμα και σε περίπτωση όπου για κάποιο λόγο ο χρήστης δεν έχει σύνδεση, να μπορεί να τρέξει την εφαρμογή. Πες πως πέφτει το internet για κάποιες ώρες (κάτι που τυχαίνει που και που από κάποιους παρόχους ISP) ή πως μετακομίζει ο χρήστης, και μέχρι ο πάροχος να του φτιάξει τη σύνδεση στο νέο σπίτι, μπορεί να περάσει και ένας ολόκληρος μήνας.(Τουλάχιστον στην Ελλάδα) (Ναι, αργούν τόσο πολύ, το ξέρω από προσωπική εμπειρία) Ίσως το να μπορεί να τρέχει η εφαρμογή με σύνδεση ή χωρίς αλλά να υπάρχει στο background ένα process που τσεκάρει αν υπάρχει σύνδεση και αν true επικοινωνεί με τον server, όπως πχ έχει ο Chrome το Chrome Update, να μην ήταν κακή ιδέα. Αλλά το να χρειάζεται η εφαρμογή να είναι πάντα συνδεδεμένη με τον server για να τρέξει, είναι κάτι που θέλω να αποφύγω.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα