Soru:
Hangi farklı UPX formatları vardır ve bunlar nasıl farklıdır?
qbi
2013-03-24 01:12:39 UTC
view on stackexchange narkive permalink

Kısa süre önce UPX sıkıştırmasını algılama hakkında bir soru sordum. 0xC0000022L bunun düz UPX olup olmadığını öğrenmek istedi. Ancak o noktaya kadar yalnızca düz UPX olduğunun farkındaydım. Öyleyse sorum şu:

  • UPX'in hangi sürümleri / modifikasyonları var?
  • Nasıl farklılar? Hangi özelliklere sahipler?
üç yanıtlar:
#1
+16
Ange
2013-04-12 01:45:33 UTC
view on stackexchange narkive permalink

Öncelikle UPX yapısını görelim.

UPX Yapısı

  1. Giriş

    1. CMP / JNZ DLL parametre kontrolleri

    2. Pushad, kayıtlar ayarla

    3. isteğe bağlı NOP hizalaması

  2. Dekompresyon algoritması

    • ister NRV ister LZMA olsun
  3. Çağrı / Sıçramalar geri yükleniyor

    • UPX, sıkıştırmayı iyileştirmek için göreli çağrıları ve atlamaları mutlak çağrılara dönüştürür.
  4. İthalatlar

    • kitaplıkları yükleyin, API'leri çözün
  5. Bölüm bayraklarını sıfırlayın

  6. Sonsöz

    • temiz yığını
    • orijinal Giriş Noktasına atla

Daha fazla ayrıntı için burada bir UPX-ed PE'nin yorumlanmış bir IDA (ücretsiz sürüm) IDB'sidir.

değiştirilmiş UPX varyantlar

Prolog / epilog gibi basit kısımların değiştirilmesi kolaydır ve dolayısıyla sıklıkla değiştirilir:

  • temel polimorfizm: bir komutu eşdeğeriyle değiştirme
  • bunları sıçramalarla hareket ettirmek

Açma, geri yükleme çağrıları, içe aktarma yükleme gibi karmaşık parçalar genellikle değiştirilmeden tutulur, bu nedenle genellikle aralarına özel kod eklenir:

  • bir anti-hata ayıklama
  • fazladan bir xor döngüsü (açtıktan sonra)
  • paketlenmemiş kodda daha sonra kontrol edilecek ve böylece dosyanın paketten çıkarıldığını bilecek bir işaretçi.

numara yapmak

Önsöz pek bir şey yapmadığından, onu bir Giriş Noktasına kopyalamak da önemsizdir. tanımlayıcıları kandırmak ve sahte UPX paketlemek için UPX ile paketlenmiş PE üzerine.

Bazı araçlar, PE dosyaları olması durumunda varsayılan bölüm adlarına da dayanır.
#2
+12
Peter Andersson
2013-03-24 01:29:11 UTC
view on stackexchange narkive permalink

UPX'te birden çok sıkıştırma algoritması olduğunu ve UPX'in birden çok sürümü olduğunu görmezden geleceğim.

Genelde insanlar basit mi yoksa basit bir UPX mi diye sorduğunda, bunun nedeni kötü amaçlı yazılımların ve diğer yazılımların UPX'i alıp, standart UPX yürütülebilir dosyasıyla açılmaması ve böylece anti virüslerin paketini açmakta daha zorlanıyorum. Ters mühendislikle mücadelede çok etkili değil.

Nokta üzerinde. Akıl okuyamazsın, değil mi? ;)
Nasıl değiştirildiğine dair herhangi bir örnek / site ekleyebilir misiniz? Bu tür bilgiler daha güçlü bir yanıt oluşturabilir. :)
Ve eğer bir UPX türevi koruma mekanizması olarak kullanılırsa, yüzünüz maviye dönene kadar yanlış pozitifler vereceğine bahse girebilirsiniz. UPX, çoğu güvenlik şirketi tarafından etkili bir şekilde kötü amaçlı yazılım aracı olarak sınıflandırılmıştır; bu, açık kaynak kitaplıklarında ve çalıştırılabilir araçlarda ortak olan bir kaderdir.
#3
+5
EfForEffort
2013-03-24 05:11:30 UTC
view on stackexchange narkive permalink

Sorduğunuz şeyin bu olup olmadığından emin değilim, ancak UPX'in belirli bir biçimi sıkıştırmak için birden fazla yolu vardır. Örneğin, bir ELF - doğrudan belleğe açılabilir - / tmp içine açılabilir ve oradan çalıştırılabilir

Varsayılan olarak ilk seçenek tercih edilir, ancak bunun zorunlu olduğunu düşünmüyorum. Ayrıntılar için UPX Kılavuzu 'na bakın.



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...