Excel sayfalara ve VBA makrolarına konulan şifrelerin kaldırılması

Merhabalar,

Biliyorum uzun bir süredir bloğuma yazı yazamadım. Gerçi kimlerin artık bu topraklarda dolaştığını bile bilmiyorum 🙂 Bugün anlatacağım konu ile ilgili herşey geçenlerde iş yerinde tamamen teknik bilgiler içeren bir makro excelin tarafıma ulaşması ile başladı. Ama allah var şimdi yazan kişi gerçekten hem güzel hazırlamış hemde yazdığı programı güzel bir şekilde korumuş. Bizde arkadaki kodlara ulaşabilirsek bilgisayarda karşılaşılan bazı sorunları ortadan kaldırabiliriz diye düşündük ve kırma çalışmalarına başladık.

İlk olarak, internette birkaç araştırma yaptım ve aşağıda verdiğim kodu makro kısmına yapıştırmamı ve çalıştığında sayfanın şifresini vereceği yazıyordu. Adımları aşağıda anlatacağım:

şimdi excel içinden visual basic logosunu tıklıyoruz ve daha sonra,

içine mouse’u sağ tıklayarak içine bir adet module yaratıyoruz. Daha sonra aşağıda belirttiğim kodu modülün içine kopyalayıp run tuşu ile çalıştırıyoruz.


Sub PasswordBreaker()
'Breaks worksheet password protection.

Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox ("Kullanıbilir şifre: " & Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n))
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub

Yukarıdaki kod sayfanın şifresini veriyor. Kırılmış halini ise Save as diyerek başka bir yere kayıtedebilirsiniz. Bir daha şifre sormayacaktır.

[Update: vb kodunda kopyalama yapıştırma esnasında tırnak işareti gibi işaretlerin düzgün çıkmadığını farkettim. Bu sayfaya 02.10.2017 tarihinden önce bakıp kodu çalıştırmaya çalıştıysanız hata alma durumunuz olmuş olabilir. Kodu tekrar düzelttim şimdi tekrar deneyebilirsiniz. -Yazı 02.10.2017 tarihinde güncellenmiştir.- ]

Eğer VB kodu şifre ile korunuyorsa aşağıdaki işlemleri yapmanız gerekmektedir.

Çözümün orjinal olarak okumak isterseniz aşağıdaki adresten ulaşabilirsiniz:
http://superuser.com/questions/807926/how-to-bypass-the-vba-project-password-from-excel

Yapılacaklar;

  1. Excel dosyasının uzantısını zip olarak değiştirin,
  2. Ve dosyayı istediğiniz isimli olarak çıkartın ve aşağıdaki gibi bir dosya sistemi göreceksiniz.

  3. “xl” kalsörünün içine gidin,

  4. “vbaProject.bin” isimli dosyayı herhangi bir hex editörü programı ile açın. Ben HxD – Portable Hex Editor programını kullandım.
  5. Programın içinden “DPB=” karakteri “DPx=” olarak değiştirin
  1. Bu işlemi yaptıktan sonra xl klasörün bir üstüne çıkıp, tüm klasör ve xml doslarını tekrar zipleyin ve uzantısını xlms olarak değiştirin.
  2. Excel dosyasını açtığınızda karşınız aşağıdaki gibi bir ekran çıkacak bu ekrana yes diyerek geçiyoruz.

  • Vb’ye baktığınızda tüm makroların açıldığını göreceksiniz.
http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/google_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/myspace_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/yahoobuzz_48.png http://www.gokhansaman.com/wp-content/plugins/sociofluid/images/twitter_48.png