Yeni bir Paket Programlama dersi makalesi ile birlikteyiz.
Ofis 2007 ve üzeri versiyonlarda Excel programı ile oluşturulan çalışma kitapları xlsx uzantılı olarak kaydediliyor. Daha önceki versiyonlarda ise uzantı xls idi. Yeni ofis dosyaları aslında birbirinden bağımsız çok sayıda XML dosyalarının sıkıştırılması ile oluşturuluyor. Aslında her çalışma sayfası bir XML dosyası olarak ayrı ayrı oluşturuluyor, sonra Excel bunları sıkıştırıp tek dosya gibi gösteriyor.
Vba şifresi verilmiş bir Excel dosyasının winrar ile açtığımda birden fazla klasör ve dosyalarla karşılaştığımda doğrusu dehşete düştüm. Aşağıda winrar ile açılmış olan Excel dosyasının içeriği görülmektedir.

Yazdığımız makrolar ve oluşturduğumuz vba şifreleri ise bu sıkıştırılmış dosyada bulunan XL klasöründeki vbaProject.bin dosyasının içinde tutuluyor. vbaProject.bin dosyasını winrar ile Excel çalışma kitabından çıkarttıktan sonra bu dosyaya aşağıda verilen macroyu uygulayın.
Private Sub CommandButton1_Click()
Dim x As Byte
Dim y As Byte
Dim z As Byte
Dim fd As FileDialog
Dim filePath
On Error GoTo Hata
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.AllowMultiSelect = False
.InitialView = msoFileDialogViewWebView
.InitialFileName = ThisWorkbook.Path & "\"
.Filters.Clear
.Filters.Add "Excel Files", "*.xls, *.xla"
If .Show = -1 Then filePath = fd.SelectedItems(1)
End With
Set fd = Nothing
DoEvents
Close #1
Open filePath For Random As #1 Len = 1
i = 1
Do Until EOF(1)
Get #1, i, x
If x = 68 Then
Get #1, i + 1, y
If y = 80 Then
Get #1, i + 2, z
If z = 66 Then
Put #1, i + 2, CByte(0)
MsgBox "VBA şifresi sıfırlandı"
Close #1
Exit Sub
End If
End If
End If
i = i + 1
Loop
MsgBox "VBA şifresi bulunamadı"
Close #1
Exit Sub
Hata:
MsgBox "Şu hata oluştu: " & Err.Description
Close #1
End Sub
Daha sonra değiştirilmiş vbaProject.bin dosyasını yine winrar kullanarak Excel dosyasının içerisine tekrar koyunuz. Excel dosyasını çalıştırdığınızda hata verecek. Evet diyerek devam ediniz. Şifrenin sıfırlandığını görürsünüz.