Öncelikle UPX yapısını görelim.
Giriş
CMP / JNZ DLL parametre kontrolleri
Pushad, kayıtlar ayarla
isteğe bağlı NOP hizalaması
Dekompresyon algoritması
Çağrı / Sıçramalar geri yükleniyor
İthalatlar
Bölüm bayraklarını sıfırlayın
Sonsöz
Daha fazla ayrıntı için burada bir UPX-ed PE'nin yorumlanmış bir IDA (ücretsiz sürüm) IDB'sidir.
Prolog / epilog gibi basit kısımların değiştirilmesi kolaydır ve dolayısıyla sıklıkla değiştirilir:
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:
Ö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.
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.
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.