დღიური

9 Mar 2017

პროგრამული უზრუნველყოფა: რა არის Hook?

პროგრამული უზრუნველყოფა: რა არის Hook?

ჩვენ უნდა ვიცოდეთ რამდენიმე სახეობის Hook.

რა არის Hook?პროგრამული უზრუნველყოფის განვითარებაში, ჰიუმინგი არის იდეა, რომელიც საშუალებას იძლევა შეცვალოს ჩაატაროს პროგრამა. შესაძლებლობა კოდის გთავაზობთ შეცვალოს პირველი ქცევის რაღაც გარეშე შეცვლის თქვენი კოდი შედარებით კლასი. ეს დასრულდა hook სტრატეგიის overwriting.

ამგვარი გამოყენება უაღრესად გამოსადეგია განაცხადების ახალი ფუნქციონირების დასამატებლად, დამატებით ხელს უწყობს სისტემის ალტერნატიული პროცედურებისა და შეტყობინებების კორესპონდენციას. ჰუკსი განაპირობებს სისტემური აღსრულების შემცირებას მომზადების დატვირთვის გაფართოებით, რაც სისტემას უნდა შეასრულოს თითოეული გზავნილი. ეს უნდა იყოს შემოღებული მხოლოდ მაშინ, როდესაც საჭიროა და ევაკუაცია ადრეული შესაძლებლობა.

ვარაუდობენ, რომ თქვენ იყენებთ მომხმარებელთა მართვის სისტემას (CMS) outsider და შეიძლება დაგვჭირდება სუპერ აღმასრულებელი უნდა გაფრთხილებული ელექტრონული ფოსტით ყოველ ჯერზე კიდევ ერთი პოსტი დაურიგდა და ეს ქცევა არ არის ნაგულისხმევი მოწყობილობა. რამდენიმე მარშრუტი იქნება:

CMS- ის კოდის შეცვლა არ არის ჭკვიანი აზროვნება, ყოველივე ამის შემდეგ მოწყობილობის შემდეგ განახლებაში თქვენ დაუპირისპირდება შეცდომის დაკარგვის სირთულეს ან არ აქვს უნარი გააგრძელოს ყველაფერი განახლება;

  • გაახარეთ თქვენი საკუთარი CMS კიდევ ერთი საშინელი აზრი, ყველაფერი რაც ითვლება, თქვენ არ გაქვთ საკმარისი ენერგია ან აქტივები საკმარისი იმისათვის, რომ ახალი რამ გააკეთოთ ან შეინარჩუნოთ რა გაყალბება;
  • გამოიკვლიეთ Hook- ის გამოყენების ალბათობა, ანუ შემოწმება, თუ CMS გამოიყურება გარე მოდულებში ან მოდულებში შესთავაზებული სახელის ელემენტების შესასრულებლად, ამ სიტუაციისთვის ახალი პოსტების განაწილება.
  • დედამიწის ქვედა ნაწილში კაუჭების გამოყენება ნაკლებად იცვლება მოწყობილობიდან ინსტრუმენტამდე. კოქსის პრინციპი ხელსაყრელი პოზიცია არ არის პირველი კოდის შეცვლა. ყველა დიდი პრაქტიკის სახელმძღვანელოები ყველა ღია წყაროებიდან, რომლებიც წყვეტენ განახლებულ მოდერებს, რომელიც თავისთავად არ იცვლება ცენტრში. მიუხედავად იმისა, რომ გაუსწორებელი არ არის, ნებისმიერი ადამიანი, რომელიც მოგვიანებით მოქცევაა, არ იფიქრებს ცვლილების შესახებ და ის პირი, რომელიც ნაკლებად განიხილავს მას, არა თქვენ აპარატს.

გაფართოება არის კიდევ ერთი სასურველი თვალსაზრისით გამოყენების Hook სტრატეგიები, რომელიც საშუალებას იძლევა განაცხადის გაზრდის მისი სტაბილური ინტერფეისები. Hook სტრატეგიები decouple სტაბილური ინტერფეისები და ჩატარება ჯიშის სივრცე, რომელიც შეიძლება წარმოიშვას საწყისი instantiation განაცხადის კონკრეტული გარემოში.

ინოვაციური ტექნოლოგიური გადაწყვეტილებები გთავაზობთ პროგრამული უზრუნველყოფის განვითარებას გურგონში, დელი NCR ინდოეთში.

ჰუკსი, როგორც დიზაინის ნიმუშები

დამაინტრიგებელია იმის აღნიშვნა, რომ მრავალრიცხოვანი (ყველა) განტოტვილი დიზაინით გამოირჩევა სემანტიკა კაუკებისთვის. ისინი საუბრობენ იმაზე, თუ როგორ უნდა შეასრულონ პრობლემის სფეროების სუბ-სისტემები. ზოგი დამოკიდებულია რაზმი, ქარხანა, აღმაშენებელი, სარდლობა, თარჯიმანი, დამკვირვებელი, პროტოტიპი, სახელმწიფო და სტრატეგია.

სხვები გაერთიანებისა და დანაყოფების განვითარების ორივე მაგალითში: თარგი მეთოდი და ხიდი.

სემანტიქსი ჩვეულებრივ ეწოდება ხუმბერტექნიკურ ტექნიკას (მაგალითად, ბრძანებაში, სტრატეგია ეწოდება შესრულებას ()).

ვირტუალური მეთოდის ცხრილი

პროგრამული უზრუნველყოფა განვითარება - რა არის ჰუკ-წერტიკული 1 ვირტუალური მეთოდი სტატიკური სტრატეგიებისგან განსხვავებული მარშრუტით, მაგრამ მას შემდეგ, რაც ვირტუალური ტექნოლოგიები შეიძლება შეიცვალოს, შემდგენელი არ იცის კონკრეტული ვირტუალური შესაძლებლობების მისამართი თქვენს კოდში. შემდგენელი, აქედან გამომდინარე, ვირტუალური მეთოდის (VMT) იკრიბება, რაც საშუალებას იძლევა, გაეცნოთ პოტენციურ მისამართებს ოპერაციებში. ყოველი ვირტუალური სტრატეგია გააქტიურებულია VMT- ის მეშვეობით. კითხვის VMT შეიცავს ყველა ვირტუალურ სტრატეგიას მის წინამორბედზე და დამატებით ის აცხადებს. აქედან გამომდინარე, ვირტუალური ტექნოლოგიები უფრო მეტ მეხსიერებას გამოიყენებენ, ვიდრე ელემენტარული სტრატეგიები, მიუხედავად იმისა, რომ ისინი სწრაფად აწარმოებენ.

მას შემდეგ, რაც VMT არის მაგიდა, რომელიც შეიცავს მითითებებს მეხსიერების მისამართებთან ინტერფეისის შესაძლებლობებს, რა უნდა გაკეთდეს, არის პირველი მეხსიერების მისამართის შეცვლის ლეგიტიმური Hook სამუშაოების მისამართი. ამასთან ერთად, ე.წ. ტექნიკის გადაწერა მოხდება, ხოლო ახალი სასურველი ქცევის განხორციელება შესრულდება.

აყვავებული API

პროგრამული უზრუნველყოფა განვითარება - რა არის Hook - Point XIMXHooking API პროცედურა ნამდვილად იძლევა საშუალებას შეცვალონ სამუშაო სისტემის ელემენტები. ამგვარი ბრალდების გადაღების შესაძლებლობით შეგიძლიათ შეცვალოთ მათი პარამეტრები, შეცვალოთ აქტივობის შეცვლა, რომელიც შესრულდება თავდაპირველად.

ეს არის წარმოდგენა, მაგალითად, კონკრეტული ჩანაწერის გაუქმება, შეინარჩუნოს აპლიკაცია, და მოითხოვოს კლიენტი დაარწმუნოს, რომ დაიცვას არქივი წრეში და ა.შ.

სინამდვილეში, გადაწყვეტილების ყველაზე დიდი ნაკადი უსაფრთხოების რეგიონშია, მაგალითად, ანტივირუსული და ანტივირუსული. იყავით, რომ ეს შეიძლება იყოს ჩვენი ჩვეულებრივი განვითარების გარემოებები, სადაც Hooking API, შეიძლება იყოს მთავარი გამოსავალი.

პროგრამირების ინტერფეისი ჩვენი კონკრეტული გარემოებების გათვალისწინებით, გულისხმობს OS- ს API- ს, ან DLL- სგან მიღებას და შეცვალეთ მისი ტიპიური შესრულება სხვაგან, უფრო ზუსტად, სხვა შესაძლებლობებით. ფუნდამენტურად ორი მიდგომაა:

EAT და IAT: ყველა EXE / DLL შეიცავს API იმპორტისა და მგზავრობის მაგიდები. ეს მაგიდები შეიცავს მრიცხველებს, რომლებიც აჩვენებენ API Entry Point- ს. ამ შეცდომების შეცვლით, ისინი მიუთითებენ ჩვენს ზურგს, ჩვენ გვაქვს hook. იყავი, რომ ეს შეიძლება, თუ EXE / DLL არ შემოიფარგლება API- ის, ეს სტრატეგია არ იმუშავებს;

Straightforward Code Overwriting: როგორც მანამდე განაცხადა, რომ ეს იყო წარმოდგენა, რომ დაამატოთ ზარი ჩვენს Callback მიმართ დაწყების API კოდი, შეგვეძლო "Hook It", რაც ჩვენი სიმძლავრე გაშვებული ნებისმიერ წერტილს API მოუწოდა. იყავით, რომ ეს შეიძლება იყოს საკითხი: თუ ჩვენი კოდი იყო გატარებული, საჭირო იყო პირველი API- ის გამოძახება, ჩვენ დავბრუნდებით ჩვენს ზურგზე და სტეკის წყალდიდობა შეიქმნება. ერთი მოწყობა ხსნის Hook ჰქონდეს შესაძლებლობა მოვუწოდებთ API, ხელახლა ცდილობს მას ერთხელ შესრულებული. იყავით, რომ ეს ცენტრი ცენტრში მოხდეს, შესაძლებელია რამდენიმე API გამოძახება და არ შეასრულოს ჩვენი ზარი;

Inline Hook არის წერტილი, სადაც ჩვენ ვიღებთ ძირითადი გაიდლაინების მოცულობა, და ჩვენ ვაჭრობის აირჩიე, Push ან Call ჩვენი შესაძლებლობები.

დადგენილი წაკითხვის: Windows სამუშაო სისტემა დამატებით underpins hooking API. უნდა ვიცოდეთ, როგორ ფუნქციონირებს Windows API?

შემთხვევა ჰიგიენური

პროგრამული უზრუნველყოფა განვითარება - რა არის Hook Point- ის Hook- ის მეთოდები, რომლებიც ადგენენ სტაბილური ინტერფეისების და სხვადასხვა სივრცის ჩატარებას, რომელიც შეიძლება შეიქმნას კონკრეტული პარამეტრისთვის ინსტალაციადან, ხდება კონტროლის შეცვლა. ობიექტების შემთხვევა handlers შეცვალეთ მომზადება ნაბიჯები. დღის ბოლოს, როდესაც შემთხვევა ხდება, დამმუშავებელი პასუხობს წინასწარ ჩაბარებულ ობიექტებზე დამახინჯებულ სტრატეგიებს, რომლებიც ახორციელებენ განსაკუთრებულ შემთხვევას ემზადებიან. შემთხვევაში შემთხვევები: ფანჯარა შეტყობინებები, ჩალიჩებისთვის სადესანტო პორტებიდან.

შიგნით

პროგრამული უზრუნველყოფა განვითარება - რა არის Hook Point -ის პროცესი Windows- ში, აქვს ცხრილის სახელწოდება იმპორტის მისამართი მაგიდა (IAT), რომელიც ინახავს თითოეული პროცედურის DLL- ს მიერ გამოგზავნილ პოტენციალს. ეს ცხრილი განლაგებულია თანდათანობით DLL- ის ელემენტების მისამართებთან ერთად.

ცალკეული შესაძლებლობების გამოყენებით, შეგვიძლია დავუშვათ, რომ IAT- ს მაგიდაზე მოხვედრა შესაძლებელი გახდება, შეცვალოს მისი მისამართი საბაჟო შესაძლებლობების მისამართის მიხედვით, მაგიდის ხელახლა აღნიშვნა, როგორც წაკითხვის შემდეგ. იმ მომენტისათვის, როდესაც პროცედურა ცდილობს მოახდინოს შესაძლებლობების გამოძახება, მისი მისამართი იტეხთა მაგიდაშია და მაჩვენებელი დაბრუნდა. მას შემდეგ, რაც IAT- ის მაგიდა შეიცვალა, საბაჟო სიმძლავრე ჩამოყალიბდა პირველი სიმძლავრის შექმნისა და პროცედურისთვის ინკორპორირებული კოდი.

Netfilter Hook

პროგრამული უზრუნველყოფა განვითარების - რა არის Hook Point 9NUMNetfilter არის Linux ცალი ქვესისტემის უფრო აღსანიშნავია, ვიდრე 5. იგი პასუხისმგებელია Bundle გამოყოფა, NAT, firewall, გადამისამართება, და სხვა. Netfilter არის უაღრესად გაფართოებული და მისი დოკუმენტაცია დასრულდა. იგი ტოვებს ბერკეტების გამოყენებას ბირთვის კოდში, რაც თავის მოხმარებას ძალიან მოქნილი და ზოგადად იღებს ჯგუფს. ეს ჰუკსი დატოვებს რამდენიმე წარმოდგენას და შეიძლება შეავსოს კონკრეტული შემთხვევებისთვის.

დასკვნა:

პროგრამული უზრუნველყოფა განვითარების - რა არის Hook - დასკვნა Hooking პროგრამირების პროცედურები ეფექტური და ქმნის ფარგლებს წარმოდგენა წარმოდგენა პროგრამული ინჟინრები, თუმცა ეს უნდა იყოს გამოყენებული მზადყოფნაში, რადგან ისინი მოიცავს უფრო თვალსაჩინო intricacy ნაკადის პროცედურები და შეცვალოს პირველი OS, აპლიკაციები ან სხვა პროგრამული უზრუნველყოფის სეგმენტების განხორციელება, რაც ძალზედ იმოქმედებს პროგრამული უზრუნველყოფის ტერმინს. გარდა ამისა, ამ მუხლით ადრე მითითებული, ამ სისტემების გამოყენება პარადიგმის გარეშე შეიძლება გამოიწვიოს განაცხადების აღსრულება.

GTranslate Your license is inactive or expired, please subscribe again!