THMMY.gr

Ηλεκτρονικοί Υπολογιστές και Τεχνικά Θέματα => Προγραμματισμός (C, VB, Delphi, PHP, ASP...) => Topic started by: netronio on February 23, 2007, 18:16:04 pm



Title: Source Code Verification - Πως γίνεται??
Post by: netronio on February 23, 2007, 18:16:04 pm
Ενα έχουμε ένα πρόγραμμα και ένα κώδικα που υποτίθεται ότι είναι ο κώδικας του προγράμματος...μήπως ξέρει κανείς πως μπορεί να γίνει η επιβεβαίωση ότι πραγματικά αντιστοιχεί το ένα με το άλλο?

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

Δεκτες οι προτάσεις για οποιαδήποτε γλώσσα προγραμματισμού.





Title: Re: Source Code Verification - Πως γίνεται??
Post by: JAs0n-X on February 23, 2007, 18:20:32 pm
Αν θες να τα τεσταρεις σε επιπεδο source code πρεπει νομιζω να κανεις de-assembly (reverse engineering) το προγραμμα ... πραγμα αρκετα δυσκολο!

Οποτε πιο λογικος τροπος μου φαινεται να compilareis τον κωδικα που εχεις και να δεις αν το προγραμμα ειναι ιδιο (και παλι δεν μπορεις να το δεις ετσι ευκολα αλλα λεμε τωρα.. )


Title: Re: Source Code Verification - Πως γίνεται??
Post by: anonymous-root on February 23, 2007, 21:22:28 pm
Νομίζω γίνεται κάτι τις με ψηφιακή υπογραφή.

Υπογράφεις ψηφιακά το πρόγραμμα.


Title: Re: Source Code Verification - Πως γίνεται??
Post by: elmaya on February 23, 2007, 22:16:02 pm
Τι θέλεις να κάνεις ακριβώς? Και τι έχεις στη διάθεσή σου?

εδιτ: Βασικά αυτό που ρωτάω είναι: "Θέλεις να ταυτοποιήσεις ότι ο κώδικας παράγει το binary που έχεις, ή να δεις αν ο κώδικάς σου έχει λογικά σφάλματα?"


Title: Re: Source Code Verification - Πως γίνεται??
Post by: netronio on February 26, 2007, 12:06:03 pm
Θέλω να ταυτοποιήσω ότι ο κώδικας παράγει το binary που έχω.

Το πρόγραμμα είναι παλιό και ένα μεγάλο κομμάτι του είναι γραμμένο σε Pascal.

Ένας φίλος ανέφερε μια ιδέα.
Να γίνει compile ο πηγαίος κώδικας και να συγκριθούν τα αρχεία που θα παραχθούν με τα εκτελέσιμα που έχουμε.
Αν η σύγκριση γίνει bit by bit μάλλον έτσι θα γίνει η επιβεβαίωση.
Απο ότι πρόλαβα να δώ, υπάρχει η εντολή στο DOS με όνομα COMP που συγκρίνει δύο αρχεία αλλα δεν το έψαξα παραπάνω.



Title: Re: Source Code Verification - Πως γίνεται??
Post by: elmaya on February 26, 2007, 13:02:23 pm
Θέλω να ταυτοποιήσω ότι ο κώδικας παράγει το binary που έχω.

Το πρόγραμμα είναι παλιό και ένα μεγάλο κομμάτι του είναι γραμμένο σε Pascal.

Ένας φίλος ανέφερε μια ιδέα.
Να γίνει compile ο πηγαίος κώδικας και να συγκριθούν τα αρχεία που θα παραχθούν με τα εκτελέσιμα που έχουμε.
Αν η σύγκριση γίνει bit by bit μάλλον έτσι θα γίνει η επιβεβαίωση.
Απο ότι πρόλαβα να δώ, υπάρχει η εντολή στο DOS με όνομα COMP που συγκρίνει δύο αρχεία αλλα δεν το έψαξα παραπάνω.

Και εγώ μάλλον θα ξαναέφτιαχνα ένα εκτελέσιμο με τον ίδιο compiler και θα έλεγχα, αν είναι ίδια τα binary. Αυτό προϋποθέτει ίδιες ακριβώς ρυθμίσεις στον compiler.

Αλλά αν έχει κανένας άλλος καμία ιδέα...  :-\


Title: Re: Source Code Verification - Πως γίνεται??
Post by: chggr005 on February 26, 2007, 23:38:34 pm
Αν θες να τα τεσταρεις σε επιπεδο source code πρεπει νομιζω να κανεις de-assembly (reverse engineering) το προγραμμα ... πραγμα αρκετα δυσκολο!
Υπάρχουν έτοιμα προγράμματα που ονομάζονται disassemblers, αλλά αυτό που σου δίνουν είναι οι εντολές Assembly που περιέχει το πρόγραμμά σου και όχι κώδικα γλώσσας υψηλού επιπέδου όπως πχ η C++.

Εγώ αυτό που θα έλεγα είναι να κάνεις compile με τον ίδιο compiler και με τις ίδιες ρυθμίσεις και μετά σύγκριση bit by bit. Ξέρεις όμως με ποιόν compiler είχες φτιάξει το πρόγραμμα και τι ρυθμίσεις έχεις κάνει?