blog

9 Mar 2017

Dasturiy ta'minotni ishlab chiqish: nimani anglatadi?

/
Posted by

Dasturiy ta'minotni ishlab chiqish: nimani anglatadi?

Biz Kookning ozgina turlari haqida bilishimiz kerak.

Hook nima?Dasturiy ta'minotni ishlab chiqishda, Kooking dasturi dasturni o'zgartirishni ta'minlaydigan fikrdir. Imkoniyat kodi sizga solishtiradigan sinfning kodini o'zgartirmagan holda, biror narsaning birinchi harakatini o'zgartirishni taklif qiladi. Bu kanca bo'yicha strategiyalarni yozib tugatildi.

Ushbu turdagi foydalanish ilovalarga yangi funktsiyalarni kiritish hisobiga juda foydali bo'lib, tizimning muqobil protseduralari va xabarlari o'rtasidagi yozishmalarni qo'shimcha ravishda rag'batlantiradi. Kancalar tizimning har bir xabar uchun bajaradigan tayyorgarlik yukini kengaytirish orqali tizimni qisqartirishga moyildirlar. Zarur bo'lganda, uni eng erta imkoniyatdan bo'shatish kerak.

Siz chet eldan xaridorlarni boshqarish tizimidan (CMS) foydalanayotganingizni tasavvur qiling va har qanday boshqa xabarni tarqatish paytida super boshqaruvchining elektron pochta orqali ogohlantirishini xohlaysiz va ushbu xatti-qurilmaning standarti emas. Oldinga yo'nalishda ikkita yo'nalish mavjud:

CMS kodini o'zgartirgandan so'ng aql-idrokli fikr emas, chunki keyingi yangilanishda Siz o'zgarishlarni yo'qotish qiyinchiliklariga duch kelasiz yoki har bir narsani yangilab turish imkoniyatiga egasiz;

  • O'zingizning maxsus CMS-ingizni boshqa qo'rqinchli fikrga aylantiring, barcha narsalarni hisobga oling, sizda yangi narsalar yaratish yoki hatto nimani uydirish uchun etarlicha energiya va aktivlar yo'q;
  • Kanishni ishlatish ehtimolini o'rganing, ya'ni CMS tashqi modullarga yoki modullarga taklif etilgan ismning elementlari uchun, bu vaziyatda, yangi xabarlarni taqsimlash uchun bajarilishi kerakligini tekshiring.
  • Kancalardan foydalanishning erga tushadigan qismi odatda asbobdan asbobga aylantiriladi. Kancalarning maqbul pozitsiyasi birinchi kodni o'zgartirish emas. O'zining qayta tiklanadigan mantrani intervalgacha yangilanishlarga ega bo'lgan barcha ochiq manba qurilmalarining barcha buyuk amaliy qo'llanmalari markazni o'zgartirmaydi. Tasavvur qilinadigan narsalarni yangilashga qaramay, keyinchalik parvarish qilish uchun keladigan har qanday odam o'zgarish haqida o'ylamaydi va bu haqda gapiradigan kishi siz emas, balki apparatdir.

Uzaytirgich, ilovaning barqaror interfeyslarini kuchaytirishga imkon beradigan kanca strategiyalaridan foydalanishning yana bir ustun nuqtai nazaridir. Kanca bo'yicha strategiyalar barqaror interfeyslarni ajrata oladi va muayyan sozlamalar uchun dasturni yaratishdan kelib chiqadigan turli joylarni boshqaradi.

Innovatsion texnologiyalar echimlari Hindistonning Gurgaon shahrida joylashgan Dehli NCR dasturiy ta'minotni rivojlantirish bo'yicha o'quv kursini taklif qiladi.

Ustki naqshlar kabi ilgaklar

Ko'p sonli (barcha) konstruktsiyalar kancalar uchun semantikani misol qilib keltirish mumkin. Ular muammoli hududlarning quyi tizimlarini qanday bajarish kerakligini gapirishadi. Ba'zilari dekret, ishlab chiqarish, quruvchi, buyruq, tarjimon, kuzatuvchi, prototip, davlat va strategiyani ishlab chiqish qoidasiga bog'liq.

Birlashma va bo'linishni ishlab chiqishda ikkala misol: template Method and Bridge.

Semantika odatda kanca texnikasi nomi bilan xabar qilinadi (Masalan, Buyruqda, strategiya execute () deb nomlanadi).

 

Virtual uslub jadvali

Dastur oshirish - Hook - Point 1Virtual texnikasi nima statik strategiyalardan ajratib bo'lmaydigan yo'nalishga keltiriladi, lekin virtual texnik o'zgartirilishi mumkin, chunki siz kodingizda uni chaqirganda kompilyator ma'lum virtual imkoniyatlarning manzilini bilmaydi. Derleyici, shu bilan birga, virtual usul jadvali (VMT) ni to'playdi, bu ish vaqtida imkoniyatlar manzillarini tekshirish uchun imkoniyat yaratadi. Har bir virtual strategiya VMT orqali ish vaqtida faollashtiriladi. Savolning VMTi o'zining prekursorlari uchun barcha virtual strategiyalarni va qo'shimcha ravishda e'lon qilganlarni o'z ichiga oladi. Shuning uchun, virtual uslublar ular tezroq ishlashiga qaramasdan, elementlar strategiyasidan ko'proq xotiradan foydalanadi.

VMT interfeysi imkoniyatlari uchun xotira manzillari bo'lgan ko'rsatkichlarni o'z ichiga olgan jadval bo'lganligi sababli, birinchi xotira manzilini legitim kanca ishi manziliga joylashtirish uchun nima qilish kerak. Ushbu yo'nalishlar bo'yicha, chaqirilgan texnika qayta tiklanadi va imkoniyatlarning yangi qiziqarli xulq-atvori bajariladi.

 

Kanca API

Dastur oshirish - Hook - Point 2The Hooking API protsedurasi nima ishlaydigan tizim elementlarini qaytadan kashf qilishga imkon beradi. Bunday to'lovlarni qo'lga kiritish qobiliyati bilan dastlab amalga oshiriladigan faoliyatini o'zgartirish orqali parametrlarini o'zgartirishingiz mumkin.

Misol uchun, ma'lum bir yozuvni bekor qilish, dasturni ishga tushirishni davom ettirish va mijozga arxivni doiraga saqlashni talab qilishni talab qilish mumkin.

Haqiqatan ham, qarorning eng katta qismi xavfsizlik sohasida, masalan antivirus va antispyware. Qolaversa, odatdagi rivojlanishimizda ham Hooking API-ning asosiy sababi bo'lishi mumkin bo'lgan holatlar mavjud.

Dasturlash interfeysi Bizning maxsus holatlarimizda API-dan yoki har qanday DLL-dan APIni olishni va odatdagi bajarilishini boshqa joyga, aniqrog'i boshqa imkoniyatlarga o'zgartirishni nazarda tutadi. Asosiy ikki yondashuv mavjud:

EAT va IAT: barcha EXE / DLL jadvallarni import qilish va sotib olish uchun API ni o'z ichiga oladi. Ushbu jadvallar API kirish nuqtasini ko'rsatuvchi ko'rsatgichlardan iborat. Ushbu ko'rsatgichlarni o'zgartirib, ularni qayta chaqirishimizni ko'rsatib, bizda kanca bor. Ehtimol EXE / DLL API ni import qilmasa, ushbu strategiya ishlamaydi;

Sodiq kodni yozib olish: oldindan aytib o'tilganidek, agar API kodining boshlanishiga qaratilgan qayta qo'ng'iroqqa qo'ng'iroq qilishimiz mumkin bo'lsa, uni ishga tushirishimiz mumkin. Ehtimol, muammo bo'lishi mumkin: agar bizning kodimiz ko'rib chiqilgandan so'ng, biz birinchi APIni qidirishimiz kerak bo'lsa, biz qayta chaqiruvimizga qaytamiz, va suv toshqini hosil bo'ladi. Bir tuzilma kookni APIni chaqirish imkoniyatiga ega bo'lishi uchun o'rnatadi, uni amalga oshirilgandan keyin qayta ishlashga urinadi. Qolaversa, ushbu markaz doirasida bir necha API chaqiruvlari amalga oshirilishi mumkin va biz qayta qo'ng'iroqni amalga oshirmasligimiz kerak;

Inline Hook - bu imkoniyatlarning asosiy printsiplarini oladigan nuqta, biz esa Jump, Push yoki bizning imkoniyatlarimiz uchun qo'ng'iroq qilish uchun savdoni qilamiz.

Rejalashtirilgan o'qish: Windows ishchi tizimi qo'shimcha kanca API'sining asosini tashkil etadi. Biz qanday qilib Windows API kanca funktsiyalarini bilishimiz kerak?

 

Vaqtinchalik kanca

Dasturiy ta'minotni ishlab chiqish - Xook - Point 3As kook texnikasi barqaror interfeyslarni ajralib chiqadi va muayyan sozlamalar uchun dasturni yaratishdan paydo bo'ladigan turli joyni boshqarish nazoratni tiklash bo'ladi. Vaktsiyalarni bajaruvchilar dastlabki qadamlarni o'zgartirishadi. Kunning oxirida, bir voqea sodir bo'lganda, ishlovchilar tadbirga tayyorgarlik ko'rish uchun maxsus tayyorlangan ob'ektlarni oldindan ro'yxatdan o'tgan ob'ektlar ustida kanca bo'yicha strategiyalarni bajarishga javob beradi. Vaziyatli vaziyatlar: oynadagi xabarlar, yozishmalar portlaridan kelgan to'plamlar.

 

IAT ichkarida kanca

Dasturiy ta'minotni ishlab chiqish - Windowsda Xook - Point 4Each jarayoni nimani anglatadiki, har bir protseduraning DLL'lari tomonidan yuborilgan imkoniyatlarga markerni saqlaydigan importli manzil jadvali (IAT) nomi berilgan jadval mavjud. Ushbu jadval DLL-larning ishlash vaqtida manzillari bilan asta-sekin to'ldiriladi.

Muayyan imkoniyatlardan foydalanib, IAT jadvali yoziladigan bo'lishi mumkin, chunki uning manzili maxsus imkoniyatlarning manzili bilan o'zgartirilishi mumkin, jadvalni ushbu o'zgarishdan keyin o'qib, qayta o'qiy olish mumkin. Jarayon, imkoniyatni chaqirishga urinadigan nuqtada, uning manzili IAT stolida olinadi va ko'rsatgich qaytariladi. IAT jadvali o'zgartirilganligi sababli, maxsus imkoniyatlar birinchi imkoniyatni o'rnatadi va protsedura ichiga kiritilgan kod olinadi.

 

Netfilter kanca

Dastur oshirish - Hook - Point 5Netfilter, Linux qismlari quyi tizimi, 2.4'ten yanada e'tiborlidir. Uni boshqalar qatori NAT, xavfsizlik devori, qayta yo'naltirish, ajratish uchun javobgardir. Netfilter juda kengayadi va hujjatlari tugadi. Bu Kooker kodini ishlatish mumkin, chunki uni ishlatish juda moslashuvchan va odatda guruh tomonidan qabul qilinadi. Ushbu kancalar bir necha aniq natijalarni qoldirib, muayyan holatlar uchun tetikler sifatida to'ldirishi mumkin.

 

Xulosa:

Dasturiy ta'minotni ishlab chiqish - Hook - outNation nima? Kanca dasturiy vositalarining samaradorligi va dasturiy ta'minot muhandislari uchun tushunarli natijalar doirasini ochib beradi, biroq ular vositachilar oqimida yanada sezilarli murakkablikni o'z ichiga olganligi va birinchi operatsion tizimni, ilovalarni yoki boshqa dasturiy ta'minot segmentlarini o'tkazish, bu dasturiy ta'minotning mantiqiy asoslarini tushunish qiyin kechadi. Bundan tashqari, ushbu moddaning oldingi qismida ko'rsatilgandek, ushbu tizimlar paradigmadan foydalanmaslik ilovalarning bajarilishini rad etishi mumkin.

Leave a Reply

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