Блог

9 Нийтэлсэн 2017

Програм хангамжийн хөгжил: Дэгээ гэж юу вэ?

/
Нийтэлсэн

Програм хангамжийн хөгжил: Дэгээ гэж юу вэ?

Дугуйн хэдхэн төрлийн талаар бид мэдэх хэрэгтэй.

Дэгээ гэж юу вэ?Програм хангамж хөгжүүлэхэд, Hooking нь програмын ажиллагааг өөрчлөх боломжийг олгодог санаа юм. Боломжит код нь харьцуулах классын кодыг өөрчлөхгүйгээр ямар нэг зүйлийн эхний үйлдлийг өөрчлөх боломжийг танд олгодог. Үүнийг дэгээ стратегийг дарж бичсэн болно.

Энэ төрлийн хэрэглээ нь програмын шинэ функцүүдийг нэмж, системийн нэмэлт процедурууд болон мессежүүдийн хоорондын харилцан яриаг нэмж өгснөөр маш их тус болдог. Залгуурын ачаалал ихсэх нь систем бүрийн хэрэгцээнд зориулж системийг гүйцэтгэх хэрэгтэй болдог. Шаардлагатай үед нь танилцуулж, хамгийн түрүүнд нүүлгэн шилжүүлэх шаардлагатай.

Харилцагчийн менежментийн систем (CMS) -ийг гадны этгээдээс ашиглаж байгаа бөгөөд өөр шуудангийн түгээлт тарааж байх үед супер гүйцэтгэх захирлыг сэрэмжлүүлэхийг хүсч болох бөгөөд энэ үйлдэл нь төхөөрөмжийн үндсэн биш юм. Урагш явах хэд хэдэн зам байна:

CMS-ийн эх кодыг өөрчлөх нь ухаалаг бодол биш юм, дараа нь та дараах өөрчлөлтийг хийх болно, та өөрчлөлтийг алдах, эсвэл сэргээгдсэн бүх зүйлийг үргэлжлүүлэх хүчин чадал байхгүй байх болно;

  • Өөрсдийн тодорхойлсон CMS бол өөр нэг аймшигтай бодол, бүх зүйлийг авч үзвэл, танд хангалттай эрч хүч, эсвэл эд зүйлсийг бүтээхэд хангалттай хөрөнгө байхгүй, эсвэл бүтээх зүйлээ үргэлжлүүлэх;
  • Залгаагаа ашиглах магадлалыг хайх, өөрөөр хэлбэл, CMS гаднах модулиудыг хайж байгаа эсэхийг шалгаарай эсвэл хүссэн нэрээр элементүүдийн элементүүдийн хувьд элементүүдийг шалгах эсэхийг шалгах хэрэгтэй.
  • Дэгээ ашиглахад газар хүртэлх хэсэг нь ерөнхийдөө төхөөрөмжөөс багаж руу хэлбэлздэг. Дэгээгийн таатай байр суурь нь эхний кодыг өөрчлөх биш юм. Бүх нээлттэй эх үүсвэрийн төхөөрөмжийн бүх агуу гарын авлагуудад байнга шинэчлэгдэж байдаг шинэчлэлтүүд нь өөрөө өөрчилсөн мантра нь төвийг өөрчилдөггүй. Хэдийгээр гайхалтай санааг сэргээж чадах ч гэсэн нөхөн сэргээлт хийдэг хүн бүр өөрчлөлтийн талаар бодохоос өөр аргагүй болно.

Өргөтгөсөн байдал нь програмыг тогтвортой интерфэйсийг нэмэгдүүлэх боломжийг олгосон дэгээ стратегиудыг ашиглах бас нэг давуу тал юм. Залгуурын стратеги нь тодорхой тохиргоонд зориулсан аппликешн шинжилгээний үр дүнд бий болох олон төрлийн зайг тогтвортой интерфэйсүүд болон арилгадаг.

Шинэлэг технологи шийдэл Энэтхэг дэх Делигийн NCR дахь Гигаон дахь Программ хөгжүүлэх сургалтыг санал болгодог.

Залгих систем нь загварын дүр төрх юм

Олон тооны (бүх) тойм загвар нь дэгээнүүдийг семантик байдлаар дүрсэлдэг гэдгийг анхаарах нь сонирхолтой юм. Тэд асуудлын дэд дэд системийг хэрхэн ажиллуулах талаар ярьдаг. Зарим нь салангид бүтээн байгуулалтын дүрмээс хамаардаг: Хураангуй, Үйлдвэр, Барилгачин, Тушаал, Орчуулагч, Ажиглагч, Прототип, Төрийн болон Стратеги.

Нэгдмэл болон хуваалтын хөгжлийн хоёр жишээ нь: Загварчлалын арга ба гүүр.

Семантик нь дэг журмын нэрээр нэрлэгддэг (жишээ нь, Command in, стратеги нь execute ()) гэж нэрлэдэг.

 

Виртуал аргын хүснэгт

Програм Хангамжийн Хөгжил - Дэгээ - Point 1Virtual виртуал техник нь статик стратегиас ялгагдахгүй чиглэлд авчирдаг боловч виртуал арга техникийг өөрчилж болох тул эмхэтгэгч нь таны кодод үүнийг дуудахдаа тодорхой виртуал багтаамжийн хаягийг мэддэггүй. Тиймээс хөрвүүлэгч нь виртуал арга хүснэгт (VMT) -ийг угсардаг бөгөөд энэ нь ажиллах үеийн чадварын хаягуудыг шалгах арга замыг бий болгодог. Бүх виртуал стратеги нь VMT-аар ажиллах үед идэвхждэг. Асуултын VMT нь өөрийн прекурсоруудад зориулж бүх виртуал стратегиудыг агуулдаг ба үүнээс гадна тэдгээрийг тунхагладаг. Тиймээс виртуал арга нь илүү хурдтай ажиллах чадвартай хэдий ч элементийн стратегиас илүү санах ой ашигладаг.

VMT нь интерфэйсийн багтаамжийн хувьд санах ойн хаягуудтай санах ойг агуулсан хүснэгтээс эхлээд юу хийх ёстой вэ гэвэл хууль ёсны дэгээтэй ажлын хаягтай анхны санах ойг орлуулах явдал юм. Эдгээр мөрнүүдийн дагуу дуудагдсан техникийг дарж бичиж, хүчин чадлын шинэ хүсэл мөрөөдлийг биелүүлнэ.

 

Дүүк хийх API

Програм хангамжийн хөгжил - Дэгээ - Point 2 гэж юу вэ Дэгээ API үйл явц нь таныг ажлын системийн элементүүдийг дахин боловсруулахыг зөвшөөрдөг. Ийм төлбөрийг авах чадвартай бол, та эхлээд гүйцэтгэх үйл ажиллагааг өөрчлөх замаар параметрүүдийг нь өөрчилж болно.

Жишээ нь, тодорхой бичлэгийг хүчингүй болгох, өргөдлийг ажиллуулах, клиент архивыг тойрог дээр хадгалахыг шаарддаг.

Шийдвэр гаргах хамгийн том шийдэл нь аюулгүй байдлын бүс нутагт, жишээлбэл, вирусны эсрэг болон antispyware. Үүнийг хийхийн тулд бид "Hooking API" -ийг ашигладаг ердийн хөгжлийн нөхцөл байдал нь гол зам болж болох юм.

Програмчлалын интерфэйс Дээр дурьдсан нөхцөл байдлаас үзэхэд OS (OS), эсвэл DLL-ээс API авах, өөр үйлдлийн системийг өөр газар шилжүүлэх гэх мэт өөр хүчин чадлыг өөрчилдөг. Үндсэндээ хоёр хандлага байдаг:

EAT ба IAT: бүх EXE / DLL нь импорт болон үнийн хүснэгтийг API агуулдаг. Эдгээр хүснэгтэд API нэвтрэх цэгийг харуулсан заагчуудыг агуулдаг. Эдгээр санааг өөрчлөх замаар бидний дуудлагыг харуулснаар бид дэгээ байна. Хэрэв энэ EXE / DLL нь API-г импортлодоггүй бол энэ стратеги ажиллахгүй болно.

Шууд маягийн кодыг дарж бичих: Урьд нь API кодыг эхлүүлэх дуудлага хийхэд дуудлага нэмэх боломжтой байсан бол "API" -г дуудах боломжтой байсан бөгөөд API-г ямар ч цэг дээр дуудах боломжтой болсон. Энэ бол асуудал байж болох юм. Хэрэв кодыг нь зохицуулсны дараа бид эхний API-г дуудах хэрэгтэй бол бид дуудлага дээрээ буцаж унах болно. Нэг зохицуулалт нь холболтыг засахын тулд API-ийг дуудах чадамжтай байх ёстой. Энэ төв газарт байгаа хэд хэдэн API дуудлага хийж болох бөгөөд бидний дуудлага хийх боломжгүй болно.

Inline Hook бол бид чадавхын үндсэн удирдамжийг олж авах цэг бөгөөд бид чадавхаа дээшлүүлэх, түр зогсоох, эсвэл дуудлага хийдэг.

Уншихыг зөвлөсөн: Windows ажлын систем нь нэмэлт дэгээ API. Windows API холболт хэрхэн ажилладаг талаар бид мэдэх ёстой

 

Occasion Hooking

Програм хангамж хөгжүүлэх - Дэгээ - Point 3As hook techniques нь тогтвортой интерфэйсүүдийг арилгаж, тодорхой тохиргоонд зориулж програмыг илэрхийлэхээс гарч болох төрөл бүрийн зайг арилгаж хяналтыг буцаах тохиолдол гардаг. Объект үйл явдлын үе шатыг бэлтгэх алхмуудыг өөрчлөх. Өдрийн төгсгөлд, тохиолдол гарахад, үйлчлүүлэгч тусгайлан бэлдсэн үйл ажиллагаа явуулдаг урьдчилсан элсэлтийн объектуудад дэгээ стратегийг хүлээн авдаг. Үйл явдлын тохиолдлууд: цонхны мессеж, захидал портуудаас буух буултууд.

 

IAT Hooking дотор

Програм хөгжүүлэх - Windows дээрх Дэгээ - Цэг 4Дахин боловсруулах үйл явц нь Импорт хаягны хүснэгт (IAT) нэртэй хүснэгт бөгөөд процедур бүрийн DLL-ээс илгээгдсэн хүчин чадлыг заадаг. Энэ хүснэгтэд гүйлтийн цаг хугацаанд DLL-ийн элементийн хаягийг бичиж өгдөг.

Тодорхой хүчин чадлыг ашиглахдаа IAT хүснэгтийн бичилтийг өөрчилж болох бөгөөд үүнийг өөрчлөхийн тулд өөрчлөн тохируулах чадварын хаягаар өөрчилж, хүснэгтийг дахин уншиж болно. Уг процедур хүчин чадлыг дуудах үед түүний хаягийг IAT хүснэгтэд оруулсан бөгөөд заагчийг буцаана. IAT хүснэгт өөрчлөгдсөн тул гаалийн хүчин чадлыг эхний хүчин чадлаар нь байгуулж, процедурт оруулсан кодыг олж авдаг.

 

Netfilter дэгээ

Програм хөгжүүлэх - Дэгээ - Point 5 netfilter нь 2.4-ээс илүү чухал ач холбогдолтой Linux-ийн дэд систем юм. Энэ нь сагсыг тусгаарлах, NAT, галт хана, дахин чиглүүлэлт болон бусад зүйлсийг хариуцдаг. Netfilter онцгой өргөтгөлтэй бөгөөд түүний баримтжуулалт дууссан байна. Энэ дэгээ нь Цөмийн кодод ашиглагдах магадлалыг бий болгодог бөгөөд түүний хэрэглээ маш уян хатан, ерөнхийдөө хүлээн авдаг. Эдгээр дэгээ нь цөөн хэдэн үр дагавартай үр дүнг үлдээж, тодорхой тохиолдлуудад үүнийг идэвхжүүлдэг.

 

Дүгнэлт:

Програм хангамж хөгжүүлэх - Дэгээ гэж юу вэ - Дүгнэлт Холболтын програмчлалын горим үр дүнтэй бөгөөд програм хангамжийн инженерүүдийн хувьд хүрэх үр дүнгийн хамрах хүрээг нээж өгдөг боловч энэ нь журмын урсгал дахь илүү их инээмсэглэлийг агуулсан, үйлдлийн систем эсвэл програм хангамжийн бусад сегментийг удирдах, програмын үндэслэлийг ойлгоход хэцүү болгодог. Үүнээс гадна, энэ зүйлд өмнө дурдсанчлан, эдгээр системийг ашиглах нь параметрийн хэрэглээ нь програмын гүйцэтгэлийг бууруулж болно.

хариу үлдээх

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