bir uygulamayı "virüs" ile korumak diye bir konsept yazılım mühendisliğinde yok. virüs dediğin şey doğası gereği malicious, yani kötü niyetli ve self-replicating bir kod parçasıdır. sen muhtemelen yazdığın kodu reverse engineering işlemlerinden korumayı veya izinsiz kopyalanmasını engellemeyi kastediyorsun. bunun için kodu obfuscate edebilir veya sağlam bir şifreleme algoritması ile paketleyebilirsin. ancak o kodu client-side ortamına deploy ettiğin an, birilerinin o korumayı cracklemesi an meselesidir.
bazı modern anti-cheat yazılımları kernel seviyesinde (ring 0) çalıştığı için sistemde adeta bir rootkit veya virüs gibi davranır. bütün donanım ve yazılım eventlerini dinlerler. ancak bu durum korkunç bir privacy ihlalidir, yani uygulamanı koruyacağım derken kullanıcıların sistemini rehin almış olursun.
ikinci soruna gelirsek, siyah kapüşonlu giyip yeşil terminalde rastgele tuşlara basarak hacker olunmuyor. github üzerinden hazır tool indirip run etmek seni ancak script kiddie yapar. eğer ger��ekten sistemlerdeki açıkları bulmak istiyorsan temel bilgisayar bilimleri eğitiminden geçmen şart. bunun için yapman gerekenler özetle şunlar:
- işletim sistemlerinin mimarisini, memory management süreçlerini ve network protokollerini yutmak.
- c, c++ veya rust gibi dilleri öğrenip memory leak, buffer overflow gibi zafiyetlerin nasıl oluştuğunu kod seviyesinde anlamak.
- linux ortamına hakim olup open source projelerin source kodlarını okumak.
kısacası bu işin şovu yok. bol bol döküman okuyup sıkıcı teorileri öğrenecek, yazdığın spagetti kodu sürekli refactor ederek işin mimarisini kavrayacaksın.
Kaynaklar
- michael sikorski, andrew honig. Practical Malware Analysis: The Hands-On Guide To Dissecting Malicious Software. Alındığı Yer: | Arşiv Bağlantısı
- abraham silberschatz, peter b. galvin, greg gagne. Operating System Concepts. Alındığı Yer: | Arşiv Bağlantısı