Forum
Bilindiği üzere bilinçsizce kullanılan Api deklerasyonları ve kodlamada kullanılan bazı
makro fonksiyonları bilgisayarınıza zarar verebilir (tüm dosyalarınız silinebilir,
sisteminiz çökertilebilir, verilerinize erişilebilir vs.). Güvenliğinden emin olmadığınız
(Web'ten indirdiğiniz) Excel dosyalarının zararlı bir içerik barındırıp barındırmadığını
öğrenmek için, aşağıda yazdığım kodları kullanabilirsiniz. Yalnız, hangi makronun,
kod satırının zararlı olduğunu anlamanız için elbette ki makroları bilmeniz gerekiyor.
Bu kodlarla dosyayı açmadan, içerisindeki Sayfa > Module > ClassModule ve UserForm'daki kodları görüntüleyebilirsiniz.
Gerekli Nesneler
■ UserForm
■ 2 Adet TextBox
■ 2 Adet CommandButton
■ 1 Adet ListBox
Private Type Makrom
Makro_Adı As String
Kaynak_Kodu As String
End Type
Dim Makrolar() As Makrom
Sub Makro_Ara(Kitap As Workbook)
Dim s As Long, say As Long, i As Long, Kod_Satırı As Long
Dim Kodlar As String
With Kitap.VBProject.VBComponents
Erase Makrolar
For i = 1 To .Count
With .Item(i)
With .CodeModule
s = .CountOfLines
If s <> 0 Then
For Kod_Satırı = 1 To s
Kodlar = Kodlar & .Lines(Kod_Satırı, 1) & vbCrLf
Next
say = say + 1
ReDim Preserve Makrolar(1 To say)
Makrolar(say).Makro_Adı = .Name
ListBox1.AddItem .Name
Makrolar(say).Kaynak_Kodu = Kodlar
Kodlar = ""
End If
End With
End With
Next
End With
End Sub
Private Sub CommandButton1_Click()
Dim Rky As Object
ListBox1.Clear
Set Rky = New Excel.Application
Rky.Workbooks.Open TextBox2.Value
Call Makro_Ara(Rky.ActiveWorkbook)
Application.DisplayAlerts = False
Rky.Quit
Set Rky = Nothing
End Sub
Private Sub CommandButton2_Click()
dsy = Application.GetOpenFilename(FileFilter:="Excel Dosyaları,*.xls;*.xlsx;*.xlsm", Title:="Dosya Seç")
If dsy = "" Or dsy = False Then Exit Sub
TextBox2.Value = dsy
End Sub
Private Sub ListBox1_Click()
If ListBox1.ListIndex <> -1 Then
TextBox1.Value = Makrolar(ListBox1.ListIndex + 1).Kaynak_Kodu
End If
End Sub
■ Not: Makro Ayarlarından, "VBA Projesi nesne modeli erişimine güven"i seçmelisiniz.
Hoşça kalın !
Teşekkürler.
1984 doğumluyum. 4 yaşından bu yana İstanbul’da yaşıyorum. Sırası ile aşağıdaki okullarda eğitim gördüm. Paşaköy ilkokulu (1990-1995) Kartal Zekeriyya Güçer İlköğretim Okulu(1995-1998) Ümraniye Teknik ve Endüstri Meslek Lisesi Bilgisayar Bölümü(1998-2001) Kocaeli Üniversitesi Bilgisayar Programcılığı(2002-2004) Anadolu Ünv. İşletme Fakültesi(2006-2009) Lise yıllarından sonra bir bilgisayar firmasının teknik servisinde mesleğe merhaba dedim. Outsource olarak Citibank ytl ve bina taşınma projesinde yer alarak 8 ay görev yaptım. Bu görevden sonra şu an çalışmakta olduğum yerde bilgi işlem sorumlusu olarak göreve başladım ve 18 yıldır görevimin başındayım.
Vaktiyle bizleri rahatsız eden bir üyemizden gelebilecek tehditleri engelleyebilme amacıyla hazırlamıştım.