Reverse Engineering - Visual Basic P-Code

Merhaba arkadaşlar. Bu yazımda P-Code ile derlenmiş Visual Basic uygulamaları üstünde çalışmaktan bahsedeceğim. Visual Basic’de bilindiği üzere iki çeşit derleme tipi var.Native ve P-Code.Native bildik düz derleme biçimi.Native olarak derlenmiş programları debuggerımız (Ollydbg vs) disassembler eder ve üzerinde sorunsuzca çalışabiliriz.Fakat P-Code ile derlenmiş bir uygulamayı Ollydbg ile açtığımızda bir miktar asm kodu ve geniş veri alanları görürüz.P-Code programlama dilleriyle alakasız,kısaltma amacıyla konulan ve çalışma zamanında yorumlayıcı tarafından yorumlanan ara koddur.Avantajı programın boyutunun küçülmesini sağlaması.Fakat native’e göre performans düşüyor.Sebebi ara dilden çevrilirken vakit kaybedilmesi.

Asıl konumuza gelirsek.P-Code derlenmiş bir uygulamada Ollydbg işimizi görmüyor.Bu sebeple VB P-Code uygulamalarına özel bir debugger olan Wktvbdebugger kullanmamız gerek.

Gerekenler
Wktvbdebugger
VB Decompiler Lite/Pro (Lite yeterli)
Flexhex veya herhangi bir hex editör.

Örnek programı da buradan indirebilirsiniz.

Öncelikle örnek programımıza önbakış atarsak; Şifreye göre diğer forma geçmemizi sağlayan basit bir uygulama.Şifreyi yanlış girincede “Yanlış şifre!” mesaj penceresi çıkıyor.

Not: Programın olduğu klasörde debugger için MSVBVM60.DLL bulunması gerekiyor.

Programımızı debugger ile açmadan önce VB decompiler lite ile bir gözatalım ve bize gereken yerin/yerlerin adreslerini alalım.

Butona tıklanınca gerçekleşen olayı seçtiğimizde resimde gördüğünüz üzere bir sürü garip kod bizi karşılayacak.Bunlar kısaltma amacıyla konulmuş ve hepsinin birer karşılığı var.Örneğin BranchF ile koşula göre belirli adrese zıplanıyor.Şifre yanlışsa zıplanarak program akışına devam ediliyor.

Tarih:
Hit: 5879
Yazar: FireX

Taglar: reverse engineering - visual basic p-code


Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.