Γιατί το 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, μαζί με εξειδικευμένες βιβλιοθήκες και πλαίσια, θα καταστήσουν την ανάπτυξη προστασίας από ιούς πιο εύχρηστη και αποτελεσματική.
Θυμηθείτε, η ανάπτυξη προστασίας από ιούς είναι ένα πολύπλοκο πεδίο. Ξεκινήστε με μικρότερους, εφικτές στόχους και σταδιακά επεκτείνετε τις γνώσεις και τις δεξιότητές σας.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα