Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Προστασία προγράμματος

Îåêßíçóå áðü ôï ìÝëïò TasosAdve. Τελευταία δημοσίευση από το μέλος Thiseas στις 12-10-2015, 12:36. Υπάρχουν 5 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-08-2012, 13:18 71007

    Προστασία προγράμματος

    Καταρχάς καλησπέρα και καλώς σας βρήκα

    στο ψητό, είμαι φοιτητής ηλεκτρονικός και χρειάστηκε να αναπτύξω μια απλή υπολογιστική εφαρμογή για μια βιομηχανική διαδικασία. Το πρόβλημα μου είναι ότι επειδή κανονικά δεν είμαι στην "πιάτσα" του developing για πελάτες κλπ. Big Smile προφανώς μου ζητήθηκε να κλειδώσει κατά κάποιον τρόπο η εφαρμογή ώστε:

    1ον να ελέγχουν την διασπορά. Θέλουν να την δίνουν σε πελάτες, αλλά ΔΕΝ θέλουν να την δώσει πελάτης σε ανταγωνιστή, να βρεθεί γενικώς σε περιβάλλον που ΔΕΝ μπορούν να ελέγξουν (υπόψιν ότι αυτό το είχαμε συζητήση απ' την αρχή και γι αυτό είχα προτείνει web εφαρμογή που ελέγχεις -όσο μπορείς- το access που δίνεις, αλλά θέλαν desktop γιατί λόγω της φύσης της δουλειάς πολλά μηχανήματα μπορεί να είναι σε industrial plants και να μην έχουν σύνδεση με net).

    2ον προφανώς ακόμη και αν με κάποιο τρόπο φτάσει σε χέρια άλλου (κλάπηκε hasp κλπ.) να μην μπορεί να γίνει decompile με ένα salamander ή ένα reflector out of the box. Προσωπικά έχω λάβει κάποια μέτρα στον κώδικα για να τον κάνω παραπλανητικό αλλά σίγουρα δεν είναι αρκετά.

    Το θέμα όπως καταλαβαίνετε δεν είναι να μιλάμε για κάτι άσπαστο γνωρίζω ότι κάτι τέτοιο είναι αδύνατο. Αυτό που με απασχολεί είναι τουλάχιστον να είναι αρκετά δύσκολο/ακριβό να μπορέσει ο άλλος να φτάσει στα χέρια του ή να δει τον πηγαίο κώδικα.

    πχ. από HASP έχοντας δοκιμάσει, ξέρω ότι για το SRM δεν υπάρχει public available emulator αλλά άμα πέσει στα χέρια σου το dongle μπορείς με αρκετό κόπο -ομολογουμένως- να το "ανοίξεις". Οπότε προς τα κει είχα προσανατολιστεί αρχικά.

    Διάβασα και τα σχετικά Θέματα που υπάρχουν ήδη στο φόρουμ αλλά είπα να το επαναφέρω μιας και τα θέματα ασφάλειας, κρυπτογράφησης κλπ. αλλάζουν μέρα με τη μέρα.

    Ευχαριστώ πολύ για το χρόνο σας.
  •  02-08-2012, 02:55 71015 σε απάντηση της 71007

    Απ: Προστασία προγράμματος

    Αγοράστε και χρησιμοποιήστε το WinLicense (www.oreans.com) δεν έχει σπάσει εδώ και 7 χρόνια που κυκλοφορεί.. οτιδήποτε δεις "σπασμένο" σε forums είναι demo εκδόσεις, οι οποίες και δεν είναι feature complete αλλα επίσης είχαν αφαιθεί "επίτηδες" πιο χαλαρές στα κλειδώματα ώστε να υπάρχει λίγο ντόρος τριγύρω απο το προϊόν.. Το παιδί που το έχει φτιάξει είναι φίλος οπότε τα ξέρω λίγο απο πρώτο χέρι. Πιστεύω θα μείνεις απόλυτα ευχαριστημένος.
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  10-08-2012, 22:31 71071 σε απάντηση της 71007

    Απ: Προστασία προγράμματος

    Όσον αφορά το obfuscation ανεξάρτητα από το πρόγραμμα που θα χρησιμοποίησετε γιά αυτήν την διαδικασία να σιγουρευτείτε ότι η εφαρμογή σας δουλεύει σωστά πριν την κάνετε release.
    Υπάρχουν πολλές περιπτώσεις στις οποίες τα προγράμματα αυτά δεν μπορούν να γνωρίζουν γιά το αν και τι πρέπει να κάνουν obfuscate, ιδίως σε περιπτώσεις που έχουν να κάνουν με reflection και serialization και τότε θα πρέπει να αλλάξετε τον κώδικα.
    πχ Reflection and Dynamic Class Loading

    Στην προηγούμενη εταιρεία που δούλευα  χρησιμοποιούσαμε το dotfuscator (υπάρχει και Community edition που είναι δωρεάν), ο οποίος μας έδινε την δυνατότητα να επιλέξουμε ποιά "κομμάτια" του κώδικα θα κάναμε obfusctate (με attributes) και ποιά όχι, γιά τους λόγους που σας προανέφερα.

    Γιά την την προστασία από κλοπές χρησιμοποιούσαμε net services όπως σωστά σκεφτήκατε αλλά δυστυχώς το social engineering έκανε πάντα το θαύμα του.Smile

  •  11-10-2015, 12:42 77309 σε απάντηση της 71007

    Απ: Προστασία προγράμματος

    Είναι πραγματικά κρίμα το συγκεκριμένο post (και όλο το section γενικότερα) να έχει τελευταίο απάντηση το... 2012! Ελπίζω μόνο οτι αυτό είναι αποτέλεσμα του γεγονός οτι έχει "κρυφτεί" κάτω από το "Σχεδιασμός & Αρχιτεκτονική" (λέμε τώρα...) και όχι κάτι... άλλο!

    Στο θέμα του Τάσου τώρα:
    Τάσο πρέπει να απαντήσουμε σε 2 βασικά questions:

    1. Πώς θα προστατεύσω την εφαρμογή μου από αντιγραφή?
    2. Πώς θα αποτρέψω το Reverse Engineering?

    Για το 1.
    Νομίζω οτι το Hasp δεν είναι πλέον τόσο της... μόδας. Υπάρχουν αρκετές τεχνικές. Πλεόν το online check είναι πολύ διαδεδομένο και ίσως αρκετά αποδοτικό. Κάποιοι, κατά την εγκατάσταση του προγράμματος το "έδεναν" με τον Serial Number του Hard Disk και ενημέρωναν έναν online server / checker για τα επόμενα start-ups. Το πρόγραμμα βέβαια μπορούσε να τρέξει "off-line" αλλά σε συγκεκριμένες δεδομένες στιγμές ζητούσε από τον χρήστη σύνδεση σε internet για επανέλεγχο. Στις 10 (ας πούμε) αποτυχημένες προσπάθειες, κλείδωνε. Σε κάθε περίπτωση απαιτούσε λίγο Help-Desk Deptartment για να το ξεκλειδώσει κατ' απαίτηση.

    Για το 2.
    Νομίζω οτι ο obfuscator (ειδικά αν γράφεις σε .Net - μιας και δεν μας είπες σε τι γράφεις...) είναι ο πιο καλός σου σύμαχος αν και τώρα τελευταία άρχισαν να σκάνε μύτη κάποια περίεργα posts σαν αυτό εδώ με ""απειλές" οτι το .Net βγαίνει και σε Native...
    Σε κάθε περίπτωση πρόταση μου είναι (μιας και είπες  οτι διάβασες τα anti-cracking posts αυτού του ιστοχώρου), να διαβάσεις αυτό το πολύ καλό thread από το stackoverflow.

     

     


    Nothing to declare...
  •  12-10-2015, 12:15 77314 σε απάντηση της 77309

    Απ: Προστασία προγράμματος

    Δεν είναι περίεργο ότι δεν υπάρχουν πιο πρόσφατες απαντήσεις - η ερώτηση έγινε, η συζήτηση προχώρησε και κάποια στιγμή σταμάτησε. Δεν αξίζει να ξεθάβεις παλιές συζητήσεις γιατί κατά κανόνα οι εμπλεκόμενοι δεν πρόκειται να ενδιαφερθούν ή οι νέες δημοσιεύσεις δεν θα γίνουν αντιληπτές. Στο StackOverflow υπάρχει και αντίστοιχο tag, νομίζω το Necromancer.

    Θα βρεις και άλλες ερωτήσεις στο DNZ σχετικά με copy protection ή obfuscation. Οι απαντήσεις εκεί δεν διαφέρουν από αυτά που είπες - αυτά ίσχυαν και το 2012, και το 2010. Και τότε αν μπορούσες, ήταν προτιμότερο να χρησιμοποιήσεις online check. Και τότε υπήρχαν οι obfusctators. Τα προβλήματα που δημιουργούσαν όμως (και ακόμα δημιουργούν) είναι τόσο μεγάλα ώστε συνήθως δεν αξίζουν. Από την άλλη, το διαχειριστικό κόστος του μπλοκαρίσματος στα online check είναι τέτοιο που στο τέλος, είναι προτιμότερο να επιτρέπεις και στις πειρατικές εκδόσεις να τρέξουν παρά να ψάχνεις συνέχεια και να μπλοκάρεις κλεμμένα κλειδιά. Η JetBrains ξέρει πολύ καλά ότι κάποια κλειδιά είναι κλεμμένα, και ότι στην Ελλάδα υπάρχει μεγάλη πειρατεία. Ακόμη και οι πειρατές όμως είναι μελλοντικοί πελάτες, και καλύτερα να αυξήσεις το conversion rate από πειρατές σε full license, παρά να τους μπλοκάρεις όλους.

    Θα έλεγα μάλιστα, ότι αυτές οι τεχνικές ήταν χρήσιμες για *τότε*, ενώ τώρα είναι παρωχημένες. Από τη μία, η επικράτηση των App Stores σημαίνει ότι δεν υπάρχει πλέον το πρόβλημα του copy protection όπως υπήρχε τότε. Από την άλλη, το σπάσιμο σε app και server-side κώδικα, σημαίνει ότι - και δεν πα να αντιγράψει ο άλλος το app? Αν δεν αγοράσει άδεια, η εφαρμογή δεν δουλεύει. 

    Και τέλος, το "as a Service" μοντέλο και η κατακόρυφη πτώση του hosting σημαίνει ότι πολλές εφαρμογές απλά ανέβηκαν στο σύννεφο, το οποίο δεν μπορείς ούτε να αντιγράψεις ούτε να κάνεις reverse engineer έτσι απλά.


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  12-10-2015, 12:36 77315 σε απάντηση της 77314

    Απ: Προστασία προγράμματος

    Παναγιώτης Καναβός:

    Δεν είναι περίεργο ότι δεν υπάρχουν πιο πρόσφατες απαντήσεις - η ερώτηση έγινε, η συζήτηση προχώρησε και κάποια στιγμή σταμάτησε. Δεν αξίζει να ξεθάβεις παλιές συζητήσεις γιατί κατά κανόνα οι εμπλεκόμενοι δεν πρόκειται να ενδιαφερθούν ή οι νέες δημοσιεύσεις δεν θα γίνουν αντιληπτές....

    Σωστό Παναγιώτη.  Mea Culpa... sorry.

    btw... η αναφορά στο 2012 δεν ήταν για το τρέχον post μόνο αλλά για την πιο πρόσφατη κίνηση σε αυτό το section και φυσικά εννοώ αναφορές σε κώδικα μόνο, που κατά συνέπεια το dotnezone είναι πιο ειδικό, εκτός κι αν αυτό δεν ισχύει πλέον και απλά δεν υπάρχει πολύ ενδιαφέρον (από τους admins/mods ή την core ομάδα τέλος πάντων) να συντηρείται το τρέχον section.


    Nothing to declare...
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems