Merhabalar eskilerden bilirsiniz yanlış hatırlamıyorsam visual basic dilinde imza okuma işlemi yapılamıyor diye antivirüs yazması zor olur diyorlardı. Geçen gün C# dilinde bulduğum bir metodu converter telerik ile çevirip Visual Basic.NET üzerinde yapınca işe yaradı. Ayrıca imza okuma ve antivirüslerin çalışma mantığı hakkında bilgi edinmek için aşağıda bıraktığım konuyu incelemenizi öneririm. Çok fazla uzatmadan kodlarımıza geçelim.
Konu ;
https://www.turkhackteam.org/konular/antivirus-nasil-calisir.1269874/
Bir buton ve bir richtextbox ögesi oluşturalım.
Ana kütüphane kodlarımız;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
Buda butonlarımız arasına gireceğimiz kod;
Not: Kodlar içeresinde açıklamaları vardır.
byte[] bytes = File.ReadAllBytes(@"D:\FB.exe"); // hedef dosya yolundaki uygulamanın baytlarını oku dedik
string hex = BitConverter.ToString(bytes); // okunan baytları hexe çevirdik
richTextBox1.Text = hex; // veriyi richtextbox'a yansıttık
richTextBox1.Text.ToUpper(); // yazılar küçük geldiği için hepsini büyük yap dedik
değiştir(); // virüs imzasına benzemesi için gelen verideki - ibarelerini kaldır dedik.
Gelen verideki hex patternleri virüs imzasına benzemesi için bir değiştir ögesi altında topladım;
void değiştir()
{
{
string withParts = richTextBox1.Text;
string withoutParts = richTextBox1.Text.Replace('-', ' ');
richTextBox1.Text = withoutParts;
}
}
Evet bu kadar artık gelen veri içerisinde virüs imzası araması yapabilirsiniz. Orası sizlere kalmış. Baştaki konuyu okuyarak da bir çıkarımda bulunabilirsiniz.
Visual Basic.NET üzerindeki işlemlerim hemen hemen aynı sadece yukarıdaki bazı detayları(karakter silme) eklemedim. Kodumuz yine bir buton ve bir richtextbox üzerinde;
Unutmadan ekleyelim başına;
Imports System.IO
Daha sonra buton içerisine şunları yazalım;
Dim bytes As Byte() = File.ReadAllBytes("D:\FB.exe")
Dim hex As String = BitConverter.ToString(bytes)
RichTextBox1.Text = hex
RichTextBox1.Text.ToUpper()
-Son-