λογισμικό

Γνώση Υπολογιστών >> λογισμικό >  >> Λογισμικό προστασίας από ιούς

Πώς δημιουργείτε ένα λογισμικό προστασίας από ιούς χρησιμοποιώντας τη γλώσσα C;

Δεν μπορείτε να δημιουργήσετε ένα πλήρως λειτουργικό πρόγραμμα προστασίας από ιούς χρησιμοποιώντας μόνο το C, ειδικά για τα σύγχρονα συστήματα. Εδώ γιατί και τι εμπλέκεται:

Γιατί το C μόνο δεν είναι αρκετό:

* Συμπληρωματικές αλληλεπιδράσεις λειτουργικού συστήματος: Το λογισμικό προστασίας από ιούς χρειάζεται βαθιά πρόσβαση στο λειτουργικό σας σύστημα για:

* Αρχεία σάρωσης σε πραγματικό χρόνο (παρακολούθηση συστήματος αρχείων).

* Αναλύστε τις διαδικασίες λειτουργίας και τη μνήμη τους.

* Παρακολούθηση της κυκλοφορίας δικτύου για κακόβουλα μοτίβα.

* API σε επίπεδο συστήματος πρόσβασης για χαρακτηριστικά ασφαλείας.

Το C παρέχει πρόσβαση χαμηλού επιπέδου, η οποία είναι καλή, αλλά τα σύγχρονα λειτουργικά συστήματα (Windows, MacOs, Linux) έχουν εκτεταμένους μηχανισμούς API και ασφαλείας που απαιτούν γλώσσες προγραμματισμού υψηλότερου επιπέδου και πλαίσια.

* Βάσεις δεδομένων υπογραφής και ευρετικά: Τα προγράμματα προστασίας από ιούς βασίζονται σε μεγάλο βαθμό σε:

* Βάσεις δεδομένων υπογραφής: Τεράστια, συνεχώς ενημερωμένες λίστες γνωστών μοτίβων κώδικα κακόβουλου λογισμικού (υπογραφές).

* Ευρετική ανάλυση: Αλγόριθμοι που εντοπίζουν ύποπτες συμπεριφορές ακόμη και χωρίς να ταιριάζουν γνωστές υπογραφές.

Η διαχείριση αυτών των βάσεων δεδομένων και η εφαρμογή προηγμένων ευρετικών στοιχείων απαιτεί αποτελεσματικά συχνά εξειδικευμένες βιβλιοθήκες και δομές δεδομένων πέρα ​​από το Basic C.

* Διεπαφή χρήστη (UI): Οι χρήστες χρειάζονται έναν τρόπο αλληλεπίδρασης με το antivirus (ξεκινήστε σαρώσεις, προβολή αναφορών, διαχείριση ρυθμίσεων). Η δημιουργία ενός φιλικού προς το χρήστη UI στο Pure C είναι πολύ χρονοβόρο.

Βασικά στοιχεία και πώς σχετίζονται με C:

1.

- Σάρωση αρχείου:

- Θα μπορούσατε να χρησιμοποιήσετε τις λειτουργίες I/O του αρχείου C (`fopen`,` fread ', κλπ.) Για να διαβάσετε τα περιεχόμενα αρχείων.

-Για να αναζητήσετε υπογραφές ιών εντός των αρχείων, θα χρειαστείτε αποτελεσματικούς αλγόριθμους αντιστοίχισης συμβολοσειρών (π.χ. Boyer-Moore, Rabin-KARP), τις οποίες θα μπορούσατε να εφαρμόσετε στο C.

- Σάρωση μνήμης:

- Πιο πολύπλοκη, απαιτώντας από τα APIs ειδικά για το OS να αποκτήσουν πρόσβαση στη μνήμη της διαδικασίας.

- Το C μπορεί να βοηθήσει στην αλληλεπίδραση με αυτά τα API, αλλά πιθανότατα θα χρειαστείτε περιτυλίγματα ή βιβλιοθήκες υψηλότερου επιπέδου.

2. Βάση δεδομένων υπογραφής:

- Αποθήκευση: Θα χρειαστείτε πιθανώς ένα σύστημα βάσης δεδομένων (SQLITE είναι μια επιλογή συμβατή με C) ή αποτελεσματικές δομές δεδομένων (όπως πίνακες hash ή δοκιμές) για γρήγορες αναζητήσεις.

- Ενημερώσεις: Απαιτούν ασφαλή επικοινωνία με διακομιστές ενημέρωσης (χρησιμοποιώντας βιβλιοθήκες όπως το OpenSSL, το οποίο διαθέτει C API).

3.

- Ανάλυση συμπεριφοράς: Εξαιρετικά προκλητική σε καθαρό C. Θα χρειαστείτε τρόπους παρακολούθησης των κλήσεων συστήματος, της δραστηριότητας του συστήματος αρχείων και της κυκλοφορίας δικτύου, οι οποίες συνήθως περιλαμβάνουν άγκιστρα σε επίπεδο συστήματος ή API.

- Μηχανική μάθηση: Παρόλο που είναι δυνατόν για την εφαρμογή ορισμένων αλγορίθμων ML στο C, είναι πολύ πιο συνηθισμένο να χρησιμοποιείτε εξειδικευμένες βιβλιοθήκες (συχνά με δεσμεύσεις Python ή R).

4. Διεπαφή χρήστη:

- βασισμένη στην κονσόλα: Δικαστήριο στο C, αλλά περιορισμένο όσον αφορά την εμπειρία των χρηστών.

- Γραφικό UI: Θα απαιτούσε εξωτερικές βιβλιοθήκες (όπως GTK+ ή QT) που παρέχουν στοιχεία GUI. Αυτές οι βιβλιοθήκες έχουν συνήθως διεπαφές C ++.

Τι μπορείτε να μάθετε από την προσπάθεια:

Ενώ η οικοδόμηση ενός πλήρους antivirus στο Pure C είναι ανέφικτο, εδώ είναι μερικά πολύτιμα πράγματα που μπορείτε να μάθετε προσπαθώντας μέρη του:

* Αρχείο I/O: Mastering Reading, γράφοντας και χειραγώγηση.

* Αλγόριθμοι συμβολοσειράς: Εφαρμογή και βελτιστοποίηση της αναζήτησης συμβολοσειρών για αντιστοίχιση υπογραφής.

* Δομές δεδομένων: Χρησιμοποιώντας συστοιχίες, συνδεδεμένες λίστες, δέντρα ή τραπέζια κατακερματισμού για την αποθήκευση και διαχείριση υπογραφών ιού.

* Βασικές κλήσεις συστήματος: Γνωρίζοντας τον τρόπο με τον οποίο τα προγράμματα αλληλεπιδρούν με το λειτουργικό σύστημα για πρόσβαση αρχείων, πληροφορίες διαδικασίας κ.λπ.

πιο ρεαλιστικές προσεγγίσεις:

* συμβάλλουν σε έργα ανοιχτού κώδικα: Το CLAMAV είναι ένα δημοφιλές antivirus ανοιχτού κώδικα που γράφτηκε κυρίως στο C. Η συμβολή σε τέτοια έργα είναι ένας πολύ καλός τρόπος για να μάθετε για την ανάπτυξη antivirus σε πραγματικό κόσμο.

* Εστίαση σε συγκεκριμένες περιοχές: Αντί για ένα πλήρες antivirus, σκεφτείτε μικρότερα έργα όπως:

* Ένας απλός σαρωτής αρχείων που χρησιμοποιεί μια προκαθορισμένη λίστα υπογραφής.

* Ένα εργαλείο που αναλύει το σύστημα απαιτεί ύποπτη συμπεριφορά.

* Χρησιμοποιήστε γλώσσες υψηλότερου επιπέδου: Οι γλώσσες όπως η Python, C ++, ή GO, μαζί με εξειδικευμένες βιβλιοθήκες και πλαίσια, θα καταστήσουν την ανάπτυξη προστασίας από ιούς πιο εύχρηστη και αποτελεσματική.

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα