Raymond Chen (Microsoft), bunu ayrıntılı olarak tartışan bir blog gönderisine sahip:
Kısacası, çalışma zamanı sıcak yamalamayı desteklemek için uygulanan bir derleme zamanı eklemesidir, bu nedenle işlev, yürütmeyi başka bir kod parçasına yeniden yönlendirmek için bir JMP talimatı ile ilk iki baytın üzerine yazılabilir.
Belirli bir konuma, mov komutundan 5 bayt önce atlanması amaçlanmıştır. Oradan, 32-bit bellek alanında başka bir yere uzun bir sıçrama için değiştirilmek üzere tasarlanmış 5 bayta sahipsiniz. Hot-patch yaparken, 5 bayt atlamanın ilk olarak yerleştirilmesi gerektiğini ve ardından mov'un değiştirilebileceğini unutmayın. Diğer tarafa gidersek, değiştirilen mov-jmp'nin ilk önce çalışmasını ve orada ne olursa olsun 5 bayta atlamasını riske atarsınız (varsayılan olarak hepsi sıfırdır, ancak asla bilemezsiniz).
[ekleme aşağıdaki gibidir ]
5 bayt atlamasının yazılmasıyla ilgili olarak - ayrıca atomik olarak 4 bayttan fazla yazmanıza izin verecek tek bir talimat vardır - cmpxchg8b ve bu amaç için ideal bir talimat değildir. Önce 0xe9 ve sonra bir dword yazarsanız, o zaman 0xe9 dword yerleştirilmeden önce çalıştırılırsa bir yarış koşulunuz olur. Önce uzun atlamayı yazmak için başka bir neden daha.
courtey Hotpatching and the Rise ofThird-Party Patches sunumu BlackHat USA 2006'da Alexander Sotirov
Hotpatching Nedir? Anında düzeltme, bir uygulamanın davranışını çalışma zamanında ikili kodunu değiştirerek değiştirme yöntemidir. Pek çok kullanımı olan yaygın bir tekniktir:
• hata ayıklama (yazılım kesme noktaları)
• çalışma zamanı araçları
• Windows API işlevlerini bağlama
• yürütmeyi değiştirme veya kapalı kaynak uygulamalara yeni işlevler ekleme
• yazılım güncellemelerini yeniden başlatmadan dağıtma
• güvenlik açıklarını düzeltme
Anında düzeltme orijinal ve yamalı ikili dosyaları karşılaştıran otomatik bir araç tarafından oluşturulur. Değiştirilen işlevler, .hp.dll uzantılı bir dosyaya dahil edilir. Anında düzeltme DLL'si çalışan bir işlemde yüklendiğinde, savunmasız işlevin ilk yönergesi, anında yamaya atlamayla değiştirilir.
The / hotpatch derleyici seçeneği, her işlevin ilk talimatının, hotpatch tarafından güvenle üzerine yazılabilen bir mov edi, edi talimatı olmasını sağlar. Windows'un eski sürümleri bu seçenekle derlenmez ve anında uygulanamaz.