Ana sayfa HEPSİ Tersine Mühendislik 8 Unpack İşlemi

Tersine Mühendislik 8 Unpack İşlemi [Aspack/Upx/PeCompact]

0

Tersine mühendislik aşamalarında sıklıkla karşılaşılan terimlerdir. Asıl amacı derlenmiş olan .exe/.dll dosyalarını sıkıştırma yaparak PE bölümlerini şifrelemesidir. Bu olaya en iyi örnek WinRAR uygulaması ile klasörlerinizi tek bir dosya haline getirme işlemini verebiliriz. Pack işlemi paketleme anlamına gelmekte. Packer ise paketleyici yani işlemi yapan araç anlamını taşımakta. Unpack kelimesi ise paketleme işlemini tersine çevirmek , paketi açmak anlamlarına gelir. Teorik bilgileri geçtikten sonra örnek bir paketleyicinin nasıl davrandığını, neler yaptığını inceleyelim.

Packer ve Unpacker Kavramları:

Packer ve Unpacker

Resimden anlaşılacağı üzere PE altında bulunan sektörler paketleyici tarafından şifrelenir. Oluşan yeni bölümler kalıcı olarak saklanır. Orjinal bölümler ise silinir. Bu işlemlerin başlangıç noktası olan OEP tekrardan atanır. Unpack işlemi sırasında şifrelenmiş veriler çözümlenerek eski haline gelir. Ram içerisine açılan orjinal değerler ve orjinal başlangıç adresine (OEP) sıçrar ve dosya normal olarak çalışmaya devam eder.

PE Başlığı

tersine mühendislik 8 unpack işlemi
tersine mühendislik 8 unpack işlemi

PE Header BilgileriPortable Executable (PE), Windows işletim sisteminde çalışabilen dosya biçimidir.
İlk olarak Tersine Mühendislik ile ilgilenen arkadaşların kesinlikle PE ile ilgili bilgi sahibi olması gerekiyor.
Çünkü PE dosya formatındaki başlık bilgileri analiz ve tersine mühendislik konularında detaylı bilgi sunuyor. Programın yada dosyanın
giriş adresi (EP) , dosyanın oluşturulduğu tarih, çalışabileceği makine türü gibi önem arz eden bilgiler bu alanda barınıyor.

Daha öncedende görmüş olabileceğiniz uzantıları vardır. Dosya uzantıları şu şekildedir:

  •  acm
  •  ax
  • cpl
  • drv
  • efi
  • mui
  • ocx
  • scr
  • sys
  • tsp

Peki Ya DOS Başlığı?

PE Başlığında Bulunan Bilgiler

DOS Header(DOS Başlığı) , tek bir görevi var diyebiliriz. Çünkü PE bölümündeki kısımda hata olup olmadığını denetleyip eğer uyumsuz bir sistemde  ise programın hata verip kapanmasını sağlıyor. Yani buradan şunu çıkarabiliriz. Dosyaya uyumluluk sağlamak için PE dosya başlığına ekleniyor diyebiliriz.

UPX :

Bu paketleme tersine mühendislik işlemini engellemekten çok bana göre boyut küçültmede kullanılıyor. Geçtiğimiz yıllar boyuncada sürekli paketlemenin daha küçük olması üzerinde çalışılmış ve bu yönde geliştirilmiş. Peki ya ben bu varsayıma nasıl ulaşıyorum derseniz. UPX paketleyicinin hemen hemen tüm sürümlerini unpack methodu sürekli olarak aynı kalmıştır. Bundan dolayı sadece sıkıştırmanın çok , kaynak kullanımının az olmasını hedefleyerek ilerlediği bu noktada anlaşılıyor.

Aspack :

ASPack, programları ve kitaplıkları daha küçük yapmaya yarayan bir alternatif. Sıkıştırma oranını %70 e kadar çıkarması ile ünlü paketleyicimiz .

PeCompact :


Diğer paketleyicilere göre daha çok özelleştirme ek ayar sunan bir paketleyici. Aspack ve upx gibi diğer paketleyiciler ile aynı işlevselliğe sahip.

Peki bunları karşılaştıracak olursak:

Paketleyicilerin Karşılaştırılması

Bu karşılaştırmanın dosyalara ve yapılandırma ayarlarına göre değişiklik göstereceğine eminim. Çünkü kullandıkları algoritmalar dosya mimarisindeki kodların yoğunluğunu ve türünü ele alıyorsa Aspack ile paketlenen bir dosyayı PECompact daha iyi sıkıştırabilir.

Video Anlatım:

BİR CEVAP BIRAK

Lütfen bir yorum yazın!
Lütfen Adınızı Girin!