blog

9 Sel 2017

Pengembangan Perangkat Lunak: Apa itu Hook?

/
Dikirim oleh

Pengembangan Perangkat Lunak: Apa itu Hook?

Kita harus Tahu Tentang Beberapa Jenis Hook.

Apa itu Hook?Dalam pengembangan perangkat lunak, Hooking adalah ide yang memungkinkan perubahan perilaku sebuah program. Kode kemungkinan menawarkan Anda untuk mengubah perilaku pertama dari sesuatu tanpa mengubah kode kelas pembanding Anda. Ini selesai dengan menimpa strategi kail.

Penggunaan semacam ini sangat membantu karena menambahkan fungsi baru ke aplikasi, sekaligus mendorong korespondensi antara prosedur alternatif dan pesan sistem. Kait cenderung mengurangi eksekusi sistem dengan memperluas beban persiapan yang perlu dilakukan sistem untuk setiap pesan. Ini harus diperkenalkan hanya saat dibutuhkan dan dievakuasi pada kesempatan paling awal.

Bayangkan bahwa Anda menggunakan Sistem Manajemen Pelanggan (Customer Management System / CMS) dari pihak luar dan Anda mungkin menginginkan eksekutif super untuk diingatkan melalui email setiap kali ada pos lain yang didistribusikan dan bahwa tindakan ini bukan default dari perangkat. Akan ada beberapa rute ke depan:

Mengubah kode sumber CMS bukanlah pemikiran cerdas, setelah semua dalam penyegaran berikut perangkat Anda akan menghadapi kesulitan untuk kehilangan perubahan Anda atau tidak memiliki kapasitas untuk melanjutkan semuanya segar kembali;

  • Buat CMS khusus Anda sendiri merupakan pemikiran yang mengerikan, semua hal dipertimbangkan, Anda tidak memiliki cukup energi atau aset yang cukup untuk membuat hal-hal baru atau bahkan menjaga apa yang harus dibuat;
  • Jelajahi kemungkinan memanfaatkan kait, yaitu memeriksa apakah CMS melihat modul atau modul luar untuk elemen nama yang ditawarkan untuk dieksekusi pada saat yang didambakan, untuk situasi ini, distribusi posting baru.
  • Bagian bawah ke bumi menggunakan kait berfluktuasi umumnya dari perangkat ke instrumen. Prinsip posisi hook yang baik adalah untuk tidak mengubah kode pertama. Dalam semua manual praktik hebat dari semua perangkat sumber terbuka yang memiliki pembaruan berselang-seling mantra yang mengulanginya sendiri tidak mengubah pusat. Meskipun membuat penyegaran tak terbayangkan, setiap individu yang datang kemudian untuk melakukan pemeliharaan tidak akan berpikir tentang perubahan itu, dan orang yang jarang membahasnya adalah Anda, bukan aparatusnya.

Perpanjangan adalah sudut pandang lain yang lebih disukai dari penggunaan strategi pengait yang memungkinkan aplikasi untuk menambah antarmuka stabilnya. Strategi hook memisahkan antarmuka dan perilaku yang stabil dari berbagai ruang yang dapat muncul dari instantiasi aplikasi untuk pengaturan tertentu.

Solusi Teknologi Inovatif menawarkan Software Developement Training di Gurgaon, Delhi NCR di India.

Pola Desain Hooks As

Menarik untuk dicatat bahwa banyak (semua) desain garis besar menggambarkan semantik untuk kait. Mereka berbicara tentang bagaimana melaksanakan sub-sistem dari area masalah. Beberapa bergantung pada aturan pengembangan detasemen: Abstrak, Pabrik, Pembangun, Komando, Interpreter, Observer, Prototipe, Negara, dan Strategi.

Lain dalam kedua contoh unifikasi dan pengembangan partisi: Metode Template dan Bridge.

Semantik biasanya dikomunikasikan dalam nama teknik kail (misalnya, dalam Komando, strategi disebut execute ()).

Metode Virtual Tabel Hooking

Pengembangan Perangkat Lunak - Apa itu teknik Hook - Point 1Virtual yang dibawa dalam rute yang tidak dapat dibedakan dari strategi statis, tetapi karena teknik virtual dapat diubah, kompiler tidak mengetahui alamat kapasitas virtual tertentu ketika Anda memanggilnya dalam kode Anda. Compiler, dengan demikian, merakit Tabel Metode Virtual (VMT), yang memberikan cara untuk menyelidiki alamat kapasitas dalam runtime. Setiap strategi virtual tunggal diaktifkan saat runtime melalui VMT. VMT pertanyaan berisi semua strategi virtual untuk pendahulunya, dan tambahan yang diberitakannya. Oleh karena itu, teknik virtual menggunakan lebih banyak memori daripada strategi elemen, terlepas dari fakta bahwa mereka berjalan lebih cepat.

Karena VMT adalah tabel yang berisi petunjuk dengan alamat memori untuk kapasitas antarmuka, yang harus dilakukan adalah mengganti alamat memori pertama dengan alamat kerja kait yang sah. Sepanjang jalur ini, teknik yang disebut akan ditimpa, dan perilaku baru yang didambakan akan dieksekusi.

API pengait

Pengembangan Perangkat Lunak - Apa itu Hook - Point 2The Hooking API prosedur benar-benar memungkinkan Anda untuk menemukan kembali unsur-unsur sistem kerja. Dengan kemampuan untuk menangkap biaya tersebut, Anda dapat mengubah parameter mereka dengan mengubah aktivitas yang akan dilakukan pada awalnya.

Bisa dibayangkan, misalnya, untuk membatalkan pembatalan catatan tertentu, menyimpan aplikasi agar tidak berjalan, dan menuntut penegasan klien untuk meluangkan arsip ke lingkaran, dan lain-lain.

Memang, potongan keputusan terbesar ada di wilayah keamanan, misalnya antivirus dan antispyware. Jadilah seperti itu, ada keadaan dalam perkembangan biasa kita dimana API Hooking, bisa menjadi jalan keluar utama.

Pemrograman antarmuka Hooking, dalam keadaan khusus kami, menyiratkan mendapatkan API dari OS, atau dari DLL manapun, dan mengubah eksekusi khasnya ke tempat lain, semuanya lebih tepatnya, ke kapasitas lain. Pada dasarnya ada dua pendekatan:

EAT dan IAT: semua EXE / DLL berisi API untuk mengimpor dan tabel tarif. Tabel-tabel ini berisi pointer yang menunjukkan Titik Masuk API. Dengan mengubah pointer ini, membuat mereka menunjukkan panggilan balik kami, kami memiliki kail. Meskipun begitu, jika EXE / DLL ini tidak mengimpor API, strategi ini tidak akan berfungsi;

Kode Langsung Timpa: Seperti sebelumnya dikatakan, dalam hal itu mungkin untuk menambahkan panggilan ke panggilan kami menuju awal kode API, kita bisa "hook it", membuat kapasitas kita berjalan pada titik mana pun API dipanggil. Karena itu mungkin, ada masalah: jika setelah kode kami ditangani, kami perlu memanggil API pertama, kami akan kembali menggunakan callback kami, dan tumpukan banjir akan dibuat. Satu pengaturan adalah memperbaiki hook untuk memiliki kapasitas untuk memanggil API, mencoba kembali setelah dijalankan. Meskipun demikian, di tengah pusat ini, beberapa panggilan API dapat dilakukan dan tidak akan menjalankan panggilan balik kami;

Inline Hook adalah titik di mana kita mendapatkan pedoman utama dari sebuah kapasitas, dan kita memperdagangkan Jump, Push atau Call untuk kapasitas kita.

Ditetapkan membaca: Windows sistem kerja tambahan underpins hooking API. Kita harus tahu bagaimana fungsi hooking Windows API?

Acara Hooking

Pengembangan Perangkat Lunak - Apa itu Hook - Point 3A teknik kait memisahkan antarmuka stabil dan melakukan berbagai ruang yang dapat muncul dari Instansiasi aplikasi untuk pengaturan tertentu terjadi pembalikan kontrol. Penanganan kejadian objek memodifikasi langkah-langkah persiapan. Pada akhir hari, ketika suatu peristiwa terjadi, pawang merespon strategi pengait pada objek yang sudah didaftarkan sebelumnya yang melakukan kegiatan khusus yang mempersiapkan kegiatan. Kasus kesempatan: pesan jendela, bundel pendaratan dari port korespondensi.

Di dalam IAT Hooking

Pengembangan Perangkat Lunak - Apa itu Hook - Point 4Each proses di Windows memiliki tabel yang disebut Import Address Table (IAT), yang menyimpan pointer ke kapasitas yang dikirim oleh DLL dari setiap prosedur. Tabel ini diisi secara progresif dengan alamat elemen-elemen DLL pada waktu proses.

Dengan menggunakan kapasitas tertentu, kita dapat membuat tabel IAT dapat ditulis, kemungkinan untuk mengubah alamatnya dengan alamat kapasitas khusus, yang menunjukkan kembali tabel sebagai telah dibaca - tepat setelah perubahan ini. Pada titik ketika prosedur mencoba memanggil kapasitas, alamatnya didapat di tabel IAT, dan sebuah pointer dikembalikan. Karena tabel IAT telah diubah, kapasitas kustom dibawa dari kapasitas pertama dan kode yang dimasukkan ke dalam prosedur diperoleh.

Netfilter Hook

Pengembangan Perangkat Lunak - Apa itu Hook - Point 5Netfilter adalah subsistem potongan Linux yang lebih penting daripada 2.4. Ini bertanggung jawab atas bundle memisahkan, NAT, firewall, redirection, antara lain. Netfilter sangat dapat diperluas, dan dokumentasinya telah selesai. Ini meninggalkan kemungkinan memanfaatkan Hooks dalam kode Kernel, membuat pemanfaatannya sangat fleksibel dan umumnya diterima oleh grup. Hook ini meninggalkan beberapa hasil yang mungkin dan dapat diisi sebagai pemicu untuk acara-acara tertentu.

Kesimpulan:

Pengembangan Perangkat Lunak - Apa itu Hook - kesimpulanMetode pemrograman yang mengaitkan efektif dan membuka ruang lingkup hasil yang bisa dibayangkan bagi para insinyur perangkat lunak, namun harus digunakan dengan waspada karena mereka termasuk suatu kerumitan yang lebih menonjol dalam aliran prosedur dan mengubah yang pertama pelaksanaan OS, aplikasi atau segmen perangkat lunak lainnya, sehingga sulit untuk memahami alasan perangkat lunak. Selain itu, seperti yang ditentukan sebelumnya dalam artikel ini, pemanfaatan sistem ini tanpa paradigma dapat merendahkan eksekusi aplikasi.

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