1 Temmuz 2020 Çarşamba

(Reserve Engineering Software) Tersine Mühendislik Uygulamaları



Bir uygulamanın kırılması için disassemble kodu, iki yöntem ile alınabilmektedir. İlk yöntem; disassembler kullanarak almaktır. Disassembler uygulamasında deadlist yöntemi kullanılarak program içeriği görülebilmektedir.Bu yöntemler arasında en çok tercih edilen yöntem, ikinci yöntemdir.İkinci yöntemin tercih edilmesinin sebebi; daha kolay daha hızlı bir şekilde yapılmasıdır.Diğer yöntem disassembler yöntemi ise; daha zor ve daha geç bir şekilde yapılmaktadır.Tersine mühendislik alanında henüz profesyonel olmayan kişiler, ilk yöntemi kullanmaktadır.Ancak tersine mühendislik kavramı geniş bir kavram olduğu için uygulama geliştirirken iki yöntemi de ele alarak geliştirmemiz gerekmektedir.Tersine mühendislik uygulamaları olarak göreceğimiz konular disassembler, hex editör ve debugger uygulamalarıdır.


Disassembler
Disassembler uygulamaları mevcut uygulamalarda yer alan makine dilinin anlaşılabilmesi için Assembly diline çevrilmesini sağlamaktadır. Disassembler, uygulamalarına örnek olarak W32Dasm uygulamasını gösterebiliriz.

W32DASM 
W32dasm uygulaması örnek bir disassembler uygulamalarından biridir.W32dasm uygulamasının kurulumu kolaydır.Kurulumu kolay olduğu için genellikle bu uygulama tercih edilmektedir.Bu uygulamanın özellikleri şunlardır:

  • Uygulamanın bilgisayarda rahat bir şekilde çalışabilmesi için Windows NT 4.0 ihtiyaç duyulmaktadır.
  • Bu uygulama Intel MMX komutlarını disassemble edebilmektedir.
  • İşlemci kaydedicilerin ve bayrakların değişiklik göstergesi bulunmaktadır.

HEX EDITOR
Hex editör, uygulama geliştirenlerin patch editörü olarak bilinmektedir.Hex editöründe kendi içinde uygulamaları bulunmaktadır.Bu uygulamalara örnek verecek olursak hexedit uygulamasını örnek verebiliriz.

HEXEDIT
Hexedit uygulaması hex editör uygulamalarından birisidir.Bu uygulamanın çalışabilmesi için he.exe adında uygulamaya ihtiyaç duyulmaktadır.


Hexedit uygulamasının özellikleri şöyledir:
  • Hexedit ile birlikte çalışan dosyalarda sınırlama yapılmamaktadır.
  • Hexedit, makine performansı yüksek olan makinelerde tarama hızı 10 megabyte/saniye gibi hıza ulaşabilmektedir.
  • Hexedit, bilinen bir diğer özelliği ise dosya üzerinde yapılan tüm değişiklikler kaydedilmektedir.
  • Heksadesimal ve karakter string'leri imkanı sunmaktadır.
  • Desimal, heksadesimal ve binary sistemleri arası dönüşüm yapılabilmektedir.
  • İkili dosya işlemlerinde string'ler için tarama yapılmasına izin verilmektedir.
  • Hızlı ve esnek yapıya sahiptir.
Hexedit, uygulamasının fonksiyonları ise aşağıdaki gibidir:
  • F1: Yardım fonksiyonu için kullanılmaktadır.
  • F2: Byte atlama fonksiyonu için kullanılmaktadır.
  • Shift- F2: İstediğimiz bir sektöre atlama fonksiyonu için kullanılır.
  • F3: Arama yapmak için kullanılır.
  • F4: Bul ve değiştir fonksiyonu için kullanılmaktadır.
  • F8: Byte'ları maskeleme fonksiyonudur.Her byte maskelenmez.Text olmayan byte'lar maskelenmektedir.
  • F9: Mod belirlemek için kullanılmaktadır.
  • Alt-A: ASCII karakter tablosunu görüntülemek için kullanılmaktadır.
  • Alt-B: Taban dönüşümü için kullanılmaktadır.
  • Alt-C: Config ayarları için kullanılır.
  • Alt-N: Sonraki bulgu için kullanılmaktadır.
  • Alt-P: Önceki bulgu için kullanılmaktadır.
  • Alt-S: Dos ekranına geçiş için kullanılır.
  • Alt-T: Text araması yapmak için kullanılıyor.
  • Alt-U: Undo komutu yani ctrl+z komutudur.
  • Alt-X: Uygulamadan direkt çıkış için kullanılmaktadır.
  • ESC: Çıkış.
  • Backspace: Kaydetmediğimiz değişiklikleri geri almaktadır.
DEBUGGER
Tersine mühendislik uygulamaları arasında yer alan bir diğer seçenek ise debugger'dır. Debugger, Türkçe anlamıyla Hata ayıklayıcı anlamına gelmektedir. Debugger, bir uygulamanın analiz edilmesini sağlamaktadır.Bu sayede uygulamada oluşan hataları kullanıcılara gösterir.Kullanıcıların dikkat etmesi gereken noktaları belirtir.Bazı debugger uygulamaları kullanıcılara analiz izni verdikleri zaman, uygulamada herhangi bir hata meydana geldiği zaman, düzeltme izni de vermektelerdir. Bu özellik kaydedicilerin incelenmesini ve değiştirilmesini sağlar.Tüm bu işlemler mikroişlemcideki komutlar vasıtasıyla yapılmaktadır. Debugger uygulamaları kullanılmadan önce, uygulama içerisine bazı kodlar girilerek analizleri yapılmaktaydı.Bu kodlara örnek olarak aşağıdaki kodları gösterebiliriz.

----------------------------------------
(. . .)
loop
change_a_veriable;
show_value_of_variable;
end_loop
(. . .)
----------------------------------------

Debugger uygulamalarının geliştirilmesi ile beraberinde bu kodlar günümüzde halen kullanılsa da yaygın değildir.Günümüzde geliştirilen birçok uygulama registry özelliğine sahip bir uygulamadır. Registry özelliğine sahip olan bir uygulamada bug bulma daha kolaydır. Örnek bir debugger uygulamasına örnek verecek olursak Soft Ice uygulamasını örnek olarak verebiliriz.Soft Ice uygulamasını bir başka yazımızda detaylı olarak anlatacağız..

Hiç yorum yok:

Yorum Gönder