Blog

9 Mar 2017

Yazılım Geliştirme: Bir Kanca Nedir?

/
Tarafından gönderildi

Yazılım Geliştirme: Bir Kanca Nedir?

Kanca Türleri Hakkında Bilmemiz Gerekir.

Bir kanca nedir?Yazılım geliştirmede, Hooking bir programın davranışını değiştirmeye izin veren bir fikirdir. Fırsat kodu, karşılaştırma sınıfının kodunu değiştirmeden bir şeyin ilk davranışını değiştirmenizi sağlar. Bu, kanca stratejilerinin üzerine yazılarak tamamlanır.

Bu tür kullanımlar, uygulamalara yeni işlevler eklemek açısından son derece yararlıdır, ayrıca alternatif prosedürler ve sistem mesajları arasındaki uyumu teşvik eder. Kancalar, sistemin her mesaj için gerçekleştirmesi gereken hazırlama yükünü genişleterek sistem çalışmasını azaltma eğilimindedir. En erken fırsatta gerekli ve tahliye edildiğinde tanıtılmalıdır.

Dışardan bir Müşteri Yönetim Sistemi (CMS) kullandığınızı ve başka bir gönderi her dağıtıldığında e-posta ile uyarılmayı ve bu davranışın cihazın varsayılanı olmadığını bir süper yöneticinin isteyebileceğini düşünün. İleriye doğru birkaç yol var:

CMS kaynak kodunu değiştirmek akıllıca bir düşünce değildir, her şeyden sonra cihazın aşağıdaki yenilemesinde değişikliklerinizi kaybetme zorluğuyla karşı karşıya kalacaksınız veya herşeyin yenilenme kapasitesine sahip olmayacaksınız;

  • Kendi CMS'nizi bir başka korkunç düşünce olarak düşünün, her şey düşünüldüğünde, yeni şeyler yapmak için yeterli enerjiniz veya varlığınız yok, hatta nelerin üretileceğini takip edin;
  • Kanca kullanma olasılığını araştırın, yani CMS'nin, dışarıdaki modüller veya modüller için, bu durum için, yeni mesajların dağıtımı için, teklif edilen bir ismin öğelerinin, kısa bir süre içinde yürütülüp yürütülmeyeceğini kontrol edin.
  • Kancaları kullanmanın toprak parçası, genellikle cihazdan cihaza değişir. Kancaların prensip olarak uygun konumu, ilk kodu değiştirmemektir. Aralıklı güncellemelere sahip tüm açık kaynak kodlu cihazların tüm büyük uygulama kılavuzlarında, kendini yeniden şekillendiren mantra merkezi değiştirmez. Yenilemenin hayal bile edilememesine rağmen, daha sonra bakım yapmak için gelen herhangi bir kişi değişim hakkında düşünmeyecek ve bunu tartışan kişi aparat değil, sizsiniz.

Genişletilebilirlik, uygulamanın stabil ara yüzlerini güçlendirmesine izin veren kanca stratejilerini kullanmanın tercih edilen başka bir bakış açısıdır. Kanca stratejileri, kararlı arayüzleri ve belirli bir ayar için bir uygulamanın başlatılmasından ortaya çıkabilecek çeşitli alanların ayrıştırılmasını çözer.

Yenilikçi Teknoloji Çözümleri Hindistan Gurgaon, Delhi NCR Yazılım Geliştirme Eğitimi sunmaktadır.

Tasarım Kalıpları Olarak Kancalar

Çok sayıda (tüm) taslak tasarımın kancalar için semantiği örneklediğini belirtmek ilgi çekicidir. Problemli alanların alt sistemlerini nasıl yürüteceklerini konuşuyorlar. Bazıları, dekolman geliştirme kuralına bağlıdır: Soyut, Fabrika, Oluşturucu, Komuta, Tercüman, Gözlemci, Prototip, Devlet ve Strateji.

Her iki birleştirme ve bölüm geliştirme örneklerinde diğerleri: Şablon Yöntemi ve Köprü.

Semantikler genellikle kanca tekniği adıyla iletilir (örneğin, Komuta'da, strateji execute () olarak adlandırılır).

 

Sanal Yöntem Tablosu

Yazılım Geliştirme - Kanca Nedir - Nokta 1Virtual teknikleri statik stratejilerden ayırt edilemez bir rotada getirilir, ancak sanal teknikler değiştirilebildiğinden, derleyici kodunuzda çağırdığınızda belirli bir sanal kapasitenin adresini bilmez. Derleyici, bu nedenle, çalışma zamanında kapasite adreslerine sorgulamanın bir yolunu veren bir Sanal Yöntem Tablosunu (VMT) bir araya getirir. Her bir sanal strateji, VMT aracılığıyla çalışma zamanında etkinleştirilir. Bir sorunun VMT'si, öncüleri için tüm sanal stratejileri ve ek olarak beyan ettiğileri içerir. Bu nedenle, sanal teknikler, daha hızlı çalıştıkları gerçeğine rağmen, eleman stratejilerinden daha fazla bellek kullanırlar.

VMT, arayüz kapasiteleri için bellek adresleriyle birlikte işaretçileri içeren bir tablo olduğu için, yapılması gereken ilk bellek adresinin meşru bir çengel çalışmasının bir adresiyle tamamlanmasıdır. Bu hatlar boyunca, çağrılan tekniğin üzerine yazılacak ve kapasitenin yeni imzalı icraatı yapılacaktır.

 

Hooking API'sı

Yazılım Geliştirme - Hook nedir - Point 2 Hooking API prosedürü, çalışma sisteminin elemanlarını yeniden keşfetmenize izin verir. Bu tür ücretleri yakalayabilme özelliğiyle, başlangıçta gerçekleştirilecek aktiviteyi değiştirerek parametrelerini değiştirebilirsiniz.

Örneğin, belirli bir kaydın iptal edilmesi, bir uygulamanın çalışmasını engellemek ve bir arşive daire ve arşive bir arşivi doldurmak için bir müşteri onayı talep etmek düşünülebilir.

Gerçekten de, en büyük karar, güvenlik alanında, örneğin, antivirüs ve antispyware'tir. Olabildiğince, Hooking API'sinin ana çıkış yolu olabileceği sıradan gelişmemizde koşullar vardır.

Programlama arabirimi Hooking, bizim özel durumumuzda, işletim sisteminden veya herhangi bir DLL'den bir API almayı ve tipik bir uygulamayı başka bir yere, daha tam olarak başka bir kapasiteye değiştirmeyi ima eder. Temel olarak iki yaklaşım vardır:

EAT ve IAT: tüm EXE / DLL tabloları almak ve ücret almak için API içerir. Bu tablolar API Giriş Noktası'nı gösteren işaretçiler içerir. Bu işaretçileri değiştirerek, onları geri çağırmamızı sağlayarak, bir çengelimiz var. Bu EXE / DLL API'sini içe aktarmazsa, bu strateji çalışmayacaktır;

Açık Kodun Üzerine Yazma: Önceden de söylediğimiz gibi, API kodunun başlangıcına yönelik geri bildirime bir çağrı eklemenin düşünülebildiği durumlarda, kapasitemizi API'nın çağrıldığı herhangi bir noktada gerçekleştirerek “bağlayabiliriz”. Olması gerektiği gibi, bir sorun var: eğer kodumuz ele alındıktan sonra, ilk API'yi çağırmamız gerekirse, geri bildirimimize geri döneceğiz ve bir yığın sel yaratılabilecekti. Bir düzenleme, çeneyi API'yi arama kapasitesine sahip olacak şekilde, bunu gerçekleştirildikten sonra yeniden denemek üzere düzeltir. Olabildiğince, bu merkez zeminde, birkaç API çağrısı yapılabilir ve geri bildirimimizi yerine getirmeyebiliriz;

Inline Hook, kapasitenin ana kurallarını aldığımız noktadır ve kapasitemiz için bir Jump, Push veya Call için ticaret yapıyoruz.

Önceden hazırlanmış okuma: Windows çalışma sistemi ek olarak hooking API'yi destekler. Windows API'nin işlevlerini nasıl çektiğini bilmeliyiz?

 

Fırsat Hooking

Yazılım Geliştirme - Kanca Nedir - Nokta 3As kanca teknikleri kararlı arayüzler ve belirli bir ayar için bir uygulamanın başlatılması ortaya çıkmasına yol açabilecek çeşitli alan davranışını bir kontrol tersine olur. Nesneler vesilesi işleyicileri hazırlama aşamalarını değiştirir. Günün sonunda, bir vesile olduğunda, işleyici, özel etkinlik hazırlama faaliyetlerini yürüten önceden kaydedilmiş nesneler hakkında çağrışım kancası stratejilerine cevap verir. Vaka durumları: pencere mesajları, yazışma portlarından iniş demetleri.

 

İç İAT Hooking

Yazılım Geliştirme - Hook - Point 4Each işleminin Windows'da, her yordamın DLL'leri tarafından gönderilen kapasitelere işaretçileri depolayan Import Address Table (IAT) adlı bir tablo vardır. Bu tablo, çalışma zamanında DLL'lerin öğelerinin adresi ile aşamalı olarak doldurulur.

Belirli kapasiteleri kullanarak, IAT tablosunu yazılabilir hale getirebilir, adresini, özel bir kapasitenin bir adresiyle değiştirebiliriz ve bu değişimin ardından tabloyu yeniden okunabilir şekilde yeniden ifade edebiliriz. Prosedürün kapasiteyi aramaya çalıştığı noktada, adresi IAT tablosunda alınır ve bir işaretçi döndürülür. IAT tablosu değiştikçe, ilk kapasiteden özel kapasite getirilir ve prosedüre aktarılan kod alınır.

 

Netfilter Kancası

Yazılım Geliştirme - Kanca Nedir - Nokta 5Netfilter, 2.4'ten daha dikkat çeken bir Linux parça alt sistemidir. Diğerleri arasında demet ayırma, NAT, güvenlik duvarı, yönlendirme sorumludur. Netfilter son derece genişletilebilir ve belgeleri tamamlandı. Çekirdek kodunda Hooks kullanabilme olasılığını ortadan kaldırır ve kullanımı son derece esnek ve genel olarak grup tarafından alınır. Bu Kancalar, akla gelebilecek birkaç sonuç bırakıyor ve belirli durumlar için tetikleyici olarak doldurabilir.

 

Sonuç:

Yazılım Geliştirme - Bir Kanca nedir - conclusionThe çengel programlama prosedürleri ancak onlar prosedürlerin akışında daha belirgin bir karışıklık dahildir ve ilk değişiklik beri uyarı ile kullanılmak gerektiğini, etkili ve yazılım mühendisleri için akla sonuçların bir kapsamı açmak İşletim sisteminin, uygulamaların veya diğer yazılım bölümlerinin yürütülmesi, yazılımın mantığını kavramasını zorlaştırır. Bunun dışında, bu makalede daha önce belirtildiği gibi, bu sistemlerin paradigma olmaksızın kullanılması, uygulamaların yürütülmesini engelleyebilir.

GTranslate Please upgrade your plan for SSL support!
GTranslate Your license is inactive or expired, please subscribe again!