SORU
4 NİSAN 2011, PAZARTESİ


Çalışma zamanı kod değişikliği herhangi bir akıllı durum var mı?

Çalışma zamanı kod değişikliği (program değiştirme zamanında kendi kodunu ya da herhangi bir yasal (smart) kullanır düşünebiliyor musunuz?

Modern işletim sistemleri bu tekniği virüs algılama önlemek için kullanılan bu yana bu işi yapan programlar üzerine kaşlarını görünüyor.

Aklıma tek gelen şey ya da derleme zamanında bilinmesi mümkün olmayan, zamanında bir şeyler bilerek bazı kod Ekle ki zamanı optimizasyonu.

CEVAP
4 NİSAN 2011, PAZARTESİ


Kod değişikliği için çok geçerli bir durum vardır. Çalışma zamanında kod oluşturmak için yararlı olabilir:

  • Bazı sanal makineleri kullanınTAM zamanında derlemeperformansını artırmak için.
  • Oluşturuluyorözel fonksiyonlarıanında uzun bilgisayar grafiklerinde yaygın olmuştur. Rob Pike ve Bart Locanthi ve John Reiser örneğin Hardware Software Tradeoffs for Bitmap Graphics on the Blit (1984) ya da Chris tarafından posting (2006) Bu onların OpenGL kodu uzmanlık yığın çalışma zamanı için LLVM Apple'ın kullanımı Lattner.
  • Bazı durumlarda, bir yazılım tekniği olarak bilinen başvururtrambolinyığın (veya başka bir yer) kod dinamik oluşturulmasını içerir. Örnekler nested functions GCC ve bazı ek güvenlik signal mechanism.

Bazen kod çalışma zamanında kod çevrilir (dynamic binary translation) olarak bilinen:

  • Öykünücüsünügibi Elma Rosetta Bu teknik öykünme hızlandırmak için kullanın. Bir başka örneğidir Transmeta code morphing software.
  • Sofistikehata ve profilcilerValgrind Pin idam edilirken kod aleti kullanın.
  • Uzantıları 86 komut seti için yapılmış öncesanallaştırma yazılımıVMWare gibi sanal makinelerin içine ayrıcalıklı 86 kod çalıştırabilir. Yerine 9* *daha uygun özel koda gerekiyordu.

Kod değişikliği komut seti sınırlamaları geçici bir çözüm bulmak için kullanılabilir:

  • Bilgisayar yordam iade veya dolaylı hafıza adresi için talimatlar vardı bir zaman (uzun zaman önce, biliyorum) vardı. Kendini değiştirme kodu için tek yol buydualtprogram, işaretçiler ve diziler uygulamak.

Kod değiştirme: durum daha

  • Birçok hata talimatları yerine takınkesme uygulamak.
  • Bazıdinamik bağlayıcıçalışma zamanında kod değiştir. This article etkili kod değişikliği bir şekli olan, Windows DLL, çalışma zamanı taşınması için bir arka plan sağlar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • The Verge

    The Verge

    8 AĞUSTOS 2006
  • TotalxLuna

    TotalxLuna

    27 Kasım 2011