Προς το περιεχόμενο

Δημιουργία emulator σε πρόγραμμα με hasp protection


johnpontios

Προτεινόμενες αναρτήσεις

Καλημέρα σε όλους....

 

Για εκπαιδευτικούς λόγους και μόνο ψάχνω να μάθω πως γίνεται σε ένα πρόγραμμα που έχει hasp protection και λειτουργεί μόνο με usb, να φτιαχτεί ένα emulator που να μπορεί να τρέχει το πρόγραμμα χωρίς την ανάγκη ύπαρξης usb.

 

Ξέρει κάποιος που να κοιτάξω για πάρω πληροφορίες ; Και πάνω απ' όλα να μάθουμε φυσικά...!!

 

Ευχαριστώ...!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η εφαρμογη ελεγχει για την παρουσια του συγκεκριμενου hardware και τρεχει ή δεν τρεχει.

Ο emulator ουσιαστικα θα ειναι ενας (virtual) driver της συσκευης.

 

Π.χ. αν θελουμε να εχουμε emulator για καποια συσκευη που συνδεεται σε θυρα COM χρειαζομαστε εναν virtual serial port.  

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Για να φτιάξεις ενα τετοιο emulator χρειάζεσαι πέρα απο τα coding skills και τα αναλογα skills για να καταλαβεις πως δουλευει το αναλογο dongle. Θες να φτιαξεις δηλαδη το προγραμμα πχ http://www.software-key.org/haspsbs.html/ http://www.dongleservice.com/dongle-emulator.phtml

http://www.testprotect.com

και οπως βλεπεις εχει και τις αναλογες τιμες...

 

To link που σου δωσανε πιο πανω ουσιαστικα εξηγει πως θα κανεις dump τα "σημαντικα δεδομενα" απλα για να τρεξεις το εκαστοτε προγραμμα!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Θέλω να προσπαθήσω για να δω τι μπορώ να καταφέρω και πάνω απ όλα να δω τι μπορώ να καταλάβω (σε επίπεδο κώδικα)...!

Και ας μη τα καταφέρω κάτι θα μείνει στο τέλος....!!

 

Ευχαριστώ καταρχήν για τις απαντήσεις σας.

 

Απλά να τονίσω τα εξής:

1. Στη διάθεση μου έχω το FULL setup του προγράμματος (σε.exe)

2. Δυστυχώς δεν έχω το usb hasp key (πρέπει να αγοράσεις το πρόγραμμα για να το πάρεις)

3. Έχω στη διάθεση μου τον emulator της προηγούμενης έκδοσης του προγράμματος (σε.exe)

 

Σε αυτή την έκδοση που ψάχνομαι το hasp key είναι το ίδιο γιατί η έκδοση αυτή είναι ουσιαστικά μια αναβάθμιση.

Επομένως ότι έχει αλλάξει θα είναι ενσωματωμένο στο setup !!

 

Εμένα με ενδιαφέρει αν από το το exe μπορούμε να πάρουμε πληροφορίες για να δούμε πως δουλεύει το πρόγραμμα (ας είναι και με assembly και ας μας πάρει καιρό) και προσπαθήσουμε να δημιουργήσουμε ένα νέο emulator...

 

Το θέμα είναι να βρούμε κάποιο tutorial να μας βοηθήσει στο ξεκίνημα.....!!

 

 

Σημείωση

Όταν τρέχω την full έκδοση της εφαρμογής μου βγάζει error:

Sentinel key not found (H0007)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η εφαρμογη γραφει και διαβαζει στο HASP μεσω καποιου read/write api.

Ο emulator "ακουει" αυτα που γραφει η εφαρμογή και απανταει.

Το θεμα ειναι να ξερει ο emulator τι bytes να στειλει πισω.

Αυτο θα ειναι καποια (κρυπτογραφημενη) μυστική πληροφορία που η εταιρια δε θέλει να ξερεις 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Από τα βασικά του reverse engineering, γιατί αυτό που πας να κάνεις τώρα είναι λιγότερο πιθανό να συμβεί από το να κερδίσεις Τζόκερ.

  • Like 2
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Καταρχας οι υποθεσεις που κανεις ειναι λαθος, συνηθως το usb dongle χρειαζεται. Κατα δευτερον δεν ειναι απλο να παρεις ενα debugger να αναλυσεις ολο το dongle protection, μιλαμε για x86 assembly(που δεν εχεις εμπειρια απο οτι βλεπω) και μετα να ξαναγραψεις emulator. Εξαρταται απο το ποσο καλη ειναι η υλοποιηση μπορει να παρει σε καποιον εμπειρο πολλους μηνες. Μαλλον θα σε απογοητευσει η προσπαθεια..αλλα η εννοια που ψαχνεις ειναι reverse code engineering.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Sentinel ε; Το είχαμε χρησιμοποιήσει σε ένα project για να κλειδώσουμε το πρόγραμμα. Πολύ ανώμαλο σύστημα φίλε ... σπάει @@ να το ρυθμίσεις. Μάλιστα η Safenet το διαφήμιζε πως είναι κατάλληλο για .Net εφαρμογές και τελικά χρειάστηκε να βγάλουνε patch για να μπορέσουμε να το δουλέψουμε.

Από προσωπική εμπειρία θα πω πως είναι πιθανότερο να βρεις ένα πρόβλημα στον τρόπο ενσωμάτωσης του Sentinel στο εκάστοτε πρόγραμμα, παρά να σπάσεις το ίδιο.

Γενικά, από όσο γνωρίζω, τα dongle έχουν έναν "κρυπτο-επεξεργαστή". Η κλειδωμένη εφαρμογή περιέχει κρυπτογραφημένα τμήματα, τα οποία για να χρησιμοποιήσει πρέπει πρώτα να τα στείλει στο dongle να τα αποκρυπτογραφήσει. Οπότε, θεωρητικά αν έπιανες όλο το traffic μεταξύ εφαρμογής και dongle, θα μπορούσες να καταγράψεις τι επιστρέφει για κάθε input και να το κάνεις τελικά emulate. Αυτό βέβαια μπορεί να συμβαίνει από πάρα πολλές φορές έως άπειρες, οπότε πρακτικά είναι πολύ δύσκολο να το πετύχεις.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εξαρτάται την υλοποίηση. Αν π.χ. το traffic μεταξύ εφαρμογής και dongle κρυπτογραφείται με εναλλασόμενα κλειδιά, δεν υπάρχει κάτι που μπορείς να κάνεις με τον emulator εκτος κι αν ξέρεις ακριβώς τον αλγόριθμο του dongle. σε αυτή την περίπτωση, πρέπει να "σπάσεις" το executable. Πολλοί απλά βάζουν το dongle και δεν προσέχουν στην υλοποίηση (γιατί είναι πολύπλοκη, όπως έγραψε κι ο kagelos) οπότε σε τέτοιες περιπτώσεις, η δημιουργία emulator είναι εφικτή.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...