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 Anda sendiri adalah pemikiran buruk lain, semua hal dipertimbangkan, Anda tidak memiliki cukup energi atau aset yang cukup untuk menghasilkan barang baru atau bahkan mengikuti 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 dari penggunaan kait berfluktuasi secara umum dari perangkat ke instrumen. Prinsip menguntungkan posisi kait bukan untuk mengubah kode pertama. Dalam semua manual latihan bagus dari semua perangkat open source yang memiliki pembaruan intermiten, mantra yang menghembuskan dirinya sendiri tidak mengubah pusatnya. Meskipun membuat penyegaran tak terbayangkan, setiap individu yang datang kemudian melakukan perawatan tidak akan memikirkan perubahannya, dan orang yang jarang membicarakannya 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 dibawa dalam rute yang tidak dapat dibedakan dari strategi statis, namun karena teknik virtual dapat diubah, compiler tidak mengetahui alamat kapasitas virtual tertentu saat Anda menamainya dalam kode Anda. Compiler, dengan demikian, merakit Virtual Method Table (VMT), yang memberi jalan untuk penyelidikan terhadap alamat kapasitas dalam runtime. Setiap strategi virtual tunggal diaktifkan saat runtime melalui VMT. VMT dari sebuah pertanyaan berisi semua strategi virtual untuk prekursornya, dan tambahan yang diproklamirkan. Oleh karena itu, teknik virtual memanfaatkan lebih banyak memori daripada strategi elemen, terlepas dari kenyataan 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 2Sistem API Hooking benar-benar memungkinkan Anda untuk menemukan kembali elemen 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 tabel impor dan tarif. Tabel ini berisi petunjuk yang menunjukkan titik masuk API. Dengan mengubah petunjuk ini, membuat mereka menunjukkan panggilan balik kita, kita memiliki kaitan. Jadilah seperti itu, jika EXE / DLL ini tidak mengimpor API, strategi ini tidak akan berhasil;

Kode Tukar Lurus: Seperti yang telah dikatakan sebelumnya, jika mungkin kita menambahkan panggilan ke panggilan balik kita ke awal kode API, kita bisa "menghubungkannya", sehingga kapasitas kita berjalan pada titik apa pun API dipanggil. Jadilah seperti itu, ada masalah: jika setelah kode kita ditangani, kita perlu memanggil API pertama, kita akan kembali pada callback kita, dan tumpukan banjir akan dibuat. Satu pengaturan adalah memperbaiki hook agar memiliki kapasitas untuk memanggil API, mencobanya kembali setelah dijalankan. Jadilah seperti itu, di tengah tanah pusat ini, beberapa panggilan API dapat dibuat dan tidak akan melakukan 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 - Apakah teknik hook Hook Point 3As memisahkan antarmuka dan perilaku yang stabil dari berbagai ruang yang dapat muncul dari instantiasi aplikasi untuk pengaturan tertentu yang terjadi sebagai pembalikan kendali. Penangan kesempatan benda memodifikasi langkah persiapan. Pada akhir hari, ketika sebuah kejadian terjadi, pawang menanggapi strategi pengeditan pada objek pra-terdaftar yang melakukan aktivitas persiapan tertentu. Kasus kesempatan: pesan jendela, kumpulan pendaratan dari port korespondensi.

 

Di dalam IAT Hooking

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

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 adalah tanggung jawab untuk memisahkan bundel, NAT, firewall, redirection, antara lain. Netfilter sangat diperluas, dan dokumentasi selesai. Ini meninggalkan kemungkinan penggunaan Hooks dalam kode Kernel, membuat penggunaannya sangat fleksibel dan umumnya diterima oleh grup. Hooks ini meninggalkan beberapa hasil yang mungkin dan dapat mengisi sebagai pemicu untuk acara-acara tertentu.

 

Kesimpulan:

Pengembangan Perangkat Lunak - Apa itu Hook - Kesimpulan Prosedur pemrograman hooking efektif dan membuka lingkup kemungkinan hasil bagi insinyur perangkat lunak, namun harus digunakan dengan waspada karena mencakup kerumitan yang lebih menonjol dalam arus prosedur dan mengubah yang pertama. pelaksanaan OS, aplikasi atau segmen perangkat lunak lainnya, sehingga sulit untuk memahami dasar pemikiran perangkat lunak. Selain itu, seperti yang ditentukan sebelumnya dalam artikel ini, pemanfaatan sistem ini tanpa paradigma dapat merusak pelaksanaan aplikasi.

Tinggalkan Balasan

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