Үйл ажиллагааны дуудлагын эмуляц. Функцийн дуудлагын үйл явдлын эмуляц Дуудлагын эмуляц гэж юу гэсэн үг вэ?


Зургаан сарын өмнө надаас ийм зүйл асуухад: "Би хэрэглэгчийн үйлдэл дээр тодорхой функцийг ажиллуулдаг том хүрээ ашигладаг. Би энэ функцийн кодыг өөрчлөхгүйгээр энэ функцийг дуудсан тохиолдолд өөрийн кодыг ажиллуулахыг хүсч байна." Дадлага нь хамгийн сайн зүйлээс хол байна, функцийг дуудах үйл явдал байхгүй, би зүгээр л сүм рүүгээ хуруугаа мушгиад, энэ бол аймшигтай новшийн код, чи үүнийг хийх ёсгүй, энэ нь зүгээр л боломжгүй юм гэж хэлсэн.

Хэдхэн хоногийн өмнө Одесс хотынх биш харьцангуй дулаахан өвлийн үдэш гэртээ харьж явахдаа "Хэрвээ бид зургаан сарын өмнө Богданы хэлснийг хийх гэж оролдвол яах вэ?" гэсэн ер бусын бодол төрсөн. Гэртээ ирээд компьютераа асаагаад хэдхэн минутын дотор төлөвлөсөн зүйлээ хийлээ. Юуны өмнө суулгасан аргууд нь дарагдсан тохиолдолд хэрхэн ажиллах, дараа нь өмнөх төлөвийг нь ямар нэгэн байдлаар дуудах боломжтой эсэхийг сонирхож байсан. Хэрэв объектыг дахин тодорхойлох юм бол үүнтэй холбоотой ишлэлүүд ижил харагдах байдлаар устахгүй гэдгийг би мэдэж байсан. Суулгасан функцүүдийн хувьд эргэлзээ төрж байсан. Чи чадна гэж харагдаж байна.

Би ийм хэрэгслийг хэзээ ч ашиглах шаардлагагүй байх магадлалтай, гэхдээ зөвхөн таамаглалаар хэн нэгэн тодорхой функц руу дуудлага хийх, дуудлага бүрийн тайланг хүлээн авах үүрэгтэй байж магадгүй юм.

  1. Гүйцэтгэлийн үр дүн
  2. Аргументууд өнгөрсөн
  3. Дуудлагын контекст (энэ нь юу гэж дуудагдах вэ)
  4. Зохицуулагч үүсгэсний дараа функц дуудлагын тоо
(Энэ жагсаалт нь зохицуулагч руу дамжуулсан аргументуудтай бүрэн нийцэж байна)

addCallListener = функц(функ, буцаан дуудах)( var callNumber = 0; буцах функц()( var args = .slice.call(аргумент); var үр дүн; оролдох (үр дүн = func.apply(энэ, аргумент); callNumber++; ) барих (e) ( буцаан дуудах(e, args, this, callNumber); шидэх e; ) буцааж дуудах (үр дүн, args, this, callNumber); үр дүнг буцаах; ) )

Маш энгийн бөгөөд богино, тийм үү?

Дараа нь бид зарим функцийг дараах байдлаар дахин тодорхойлно.

SomeFunct = addCallListener(someFunct, функц(үр дүн, арг, өөрөө, дуудлагын дугаар)( //Ямар нэгэн зүйл хий )); // эсвэл Constructor.prototype.method = addCallListener(Constructor.prototype.method, function(үр дүн, args, self, callNumber)( //Ямар нэгэн зүйл хий ));

Мэдээжийн хэрэг, энэ нь кодын тохиолддог хэсэгт "харагдах" байх ёстой.

Хэд хэдэн жишээ
Жишээнүүдийг ажиллуулахын тулд та нээлттэй консолтой байх ёстой (хром дээр үүнийг Ctrl+Shift+i гэж нэрлэдэг).

Шүүмжлэл, нэмэлт оруулсан javascript.ru форумын нөхдүүдэд баярлалаа.

UPD
Функцийг бага зэрэг өргөжүүлсэн: одоо нэг дуудлагын оронд объектыг хоёр дахь аргумент болгон дамжуулж байна

  1. өмнө (функц эхлэхээс өмнө дуудагдсан)
  2. амжилт (хэрэв функц амжилттай болсон бол дуудна)
  3. алдаа (алдаа гарсан бол)
  4. дараа (амжилтаас үл хамааран ямар ч байсан дууддаг)
Зохицуулагч бүрд объект дамждаг
  1. өөрөө (контекст)
  2. нэр (функцын нэр)
  3. статус("алдаа" эсвэл "амжилт")
  4. амжилтын дугаар (амжилттай дуудлагын тоо)
  5. алдааны дугаар (алдаатай дуудлагын тоо)
  6. үр дүн (үр дүн, хэрэв байгаа бол)
  7. алдаа (алдаа, хэрэв байгаа бол)
Нэмж дурдахад addCallListener функц нь одоо цонх эсвэл процессыг цохихгүйн тулд Function байгуулагч объектын нэг хэсэг болсон.

Та энд сэрээ хийгээд тест хийж болно.

Зургаан сарын өмнө надаас ийм зүйл асуухад: "Би хэрэглэгчийн үйлдэл дээр тодорхой функцийг ажиллуулдаг том хүрээ ашигладаг. Би энэ функцийн кодыг өөрчлөхгүйгээр энэ функцийг дуудсан тохиолдолд өөрийн кодыг ажиллуулахыг хүсч байна." Дадлага нь хамгийн сайн зүйлээс хол байна, функцийг дуудах үйл явдал байхгүй, би зүгээр л сүм рүүгээ хуруугаа мушгиад, энэ бол аймшигтай новшийн код, чи үүнийг хийх ёсгүй, энэ нь зүгээр л боломжгүй юм гэж хэлсэн.

Хэдхэн хоногийн өмнө Одесс хотынх биш харьцангуй дулаахан өвлийн үдэш гэртээ харьж явахдаа "Хэрвээ бид зургаан сарын өмнө Богданы хэлснийг хийх гэж оролдвол яах вэ?" гэсэн ер бусын бодол төрсөн. Гэртээ ирээд компьютераа асаагаад хэдхэн минутын дотор төлөвлөсөн зүйлээ хийлээ. Юуны өмнө суулгасан аргууд нь дарагдсан тохиолдолд хэрхэн ажиллах, дараа нь өмнөх төлөвийг нь ямар нэгэн байдлаар дуудах боломжтой эсэхийг сонирхож байсан. Хэрэв объектыг дахин тодорхойлох юм бол үүнтэй холбоотой ишлэлүүд ижил харагдах байдлаар устахгүй гэдгийг би мэдэж байсан. Суулгасан функцүүдийн хувьд эргэлзээ төрж байсан. Чи чадна гэж харагдаж байна.

Би ийм хэрэгслийг хэзээ ч ашиглах шаардлагагүй байх магадлалтай, гэхдээ зөвхөн таамаглалаар хэн нэгэн тодорхой функц руу дуудлага хийх, дуудлага бүрийн тайланг хүлээн авах үүрэгтэй байж магадгүй юм.

  1. Гүйцэтгэлийн үр дүн
  2. Аргументууд өнгөрсөн
  3. Дуудлагын контекст (энэ нь юу гэж дуудагдах вэ)
  4. Зохицуулагч үүсгэсний дараа функц дуудлагын тоо
(Энэ жагсаалт нь зохицуулагч руу дамжуулсан аргументуудтай бүрэн нийцэж байна)

addCallListener = функц(функ, буцаан дуудах)( var callNumber = 0; буцах функц()( var args = .slice.call(аргумент); var үр дүн; оролдох (үр дүн = func.apply(энэ, аргумент); callNumber++; ) барих (e) ( буцаан дуудах(e, args, this, callNumber); шидэх e; ) буцааж дуудах (үр дүн, args, this, callNumber); үр дүнг буцаах; ) )

Маш энгийн бөгөөд богино, тийм үү?

Дараа нь бид зарим функцийг дараах байдлаар дахин тодорхойлно.

SomeFunct = addCallListener(someFunct, функц(үр дүн, арг, өөрөө, дуудлагын дугаар)( //Ямар нэгэн зүйл хий )); // эсвэл Constructor.prototype.method = addCallListener(Constructor.prototype.method, function(үр дүн, args, self, callNumber)( //Ямар нэгэн зүйл хий ));

Мэдээжийн хэрэг, энэ нь кодын тохиолддог хэсэгт "харагдах" байх ёстой.

Хэд хэдэн жишээ
Жишээнүүдийг ажиллуулахын тулд та нээлттэй консолтой байх ёстой (хром дээр үүнийг Ctrl+Shift+i гэж нэрлэдэг).

Шүүмжлэл, нэмэлт оруулсан javascript.ru форумын нөхдүүдэд баярлалаа.

UPD
Функцийг бага зэрэг өргөжүүлсэн: одоо нэг дуудлагын оронд объектыг хоёр дахь аргумент болгон дамжуулж байна

  1. өмнө (функц эхлэхээс өмнө дуудагдсан)
  2. амжилт (хэрэв функц амжилттай болсон бол дуудна)
  3. алдаа (алдаа гарсан бол)
  4. дараа (амжилтаас үл хамааран ямар ч байсан дууддаг)
Зохицуулагч бүрд объект дамждаг
  1. өөрөө (контекст)
  2. нэр (функцын нэр)
  3. статус("алдаа" эсвэл "амжилт")
  4. амжилтын дугаар (амжилттай дуудлагын тоо)
  5. алдааны дугаар (алдаатай дуудлагын тоо)
  6. үр дүн (үр дүн, хэрэв байгаа бол)
  7. алдаа (алдаа, хэрэв байгаа бол)
Нэмж дурдахад addCallListener функц нь одоо цонх эсвэл процессыг цохихгүйн тулд Function байгуулагч объектын нэг хэсэг болсон.

Та энд сэрээ хийгээд тест хийж болно.

Би амьдралынхаа туршид энгийн утас хэрэглэж, зөвхөн Nokia брэндийг илүүд үздэг байсан. Гэхдээ амьдрал зогсохгүй, нэг удаа би камертай, интернетэд холбогдсон утас авахыг хүсч байсан - энэ нь маш тохиромжтой! Гар утасны дэлгүүрт Nokia товчлуурын загвар нь тийм ч том биш байсан ч 301 Dual хувилбарыг нэн даруй авч үзсэн. Би энгийн, гэхдээ амттай, шаардлагагүй залхмаар нарийн ширийн зүйлгүй байх дуртай. Энэ утас нь гадаад үзэмжийн хувьд надад 100% сэтгэл хангалуун байсан. Би үүнийг ойроос харахыг хүссэн - надад бүх зүйл таалагдсан. Худалдан авалт надад дөрвөн мянган үнэтэй байсан. Би бас арьсан гэр худалдаж авсан.

Би утасны талаар хоёр сэтгэгдэлтэй байна. Анх дассан чинь бүх зүйл дэгжин санагдсан. Тун удалгүй би хуучин Ока машинаа Renault Logan болгон сольсон тул харьцуулалт ижил байсан. Утасны бүх зүйлийг жижиг нарийн ширийн зүйл хүртэл бодож хийсэн нь надад маш их таалагдсан. Загварлаг, тав тухтай. Таньд юу хэрэгтэй вэ. Гэвч цаг хугацаа өнгөрөхөд мэдээжийн хэрэг сул талууд бас илэрсэн, гэхдээ хамгийн түрүүнд хийх зүйл.

Гаднаас нь харахад би утсанд дуртай. Загварлаг, цэвэрхэн, нимгэн. Маш сайн хуванцар. Утасны хэмжээ харьцангуй том боловч халаасанд багтах боломжтой. Утасны дэлгэц нь том, өнгө нь цочроохгүй, сүүдэр нь зөөлөн бөгөөд нүдэнд тааламжтай. Товчнууд нь эвтэйхэн, дээр нь тэд цаг хугацаа өнгөрөхөд элэгдэхгүй, гэхдээ хавдах магадлал бий (би ижил төстэй "хатуу" гартай утастай байсан, байнгын хэрэглээнээс болж хавдсан байсан, би найдаж байна. Энэ утсанд тохиолдохгүй). Утасны полифони нь тодорхой боловч харьцангуй чимээгүй байдаг. Гудамжинд, заримдаа гэртээ ч би түүнийг сонсохгүй, дуудлагыг үргэлж алддаг. Энэ нь "уугуул" дохио болон татаж авсан хөгжимд хамаарна. Уурлаж бухимддаг. Гэхдээ хөгжим сонсоход жишээлбэл чанга яригч хамгийн тохиромжтой. Заримдаа би гэртээ чанга яригчаар радио сонсдог - энэ нь сайн дуу хураагч шиг сонсогддог. Би утасны цэсэнд үнэхээр дуртай, энэ нь тохиромжтой, янз бүрийн програмууд байдаг. Утасны дэвтэр бол гайхалтай! Энд та нэр, овгийн дор график байна. Та холбоо барих хаяг, сонголтууд - далайд олон тооны дугаар нэмж болно. Гэхдээ гол зүйл байхгүй, миний бодлоор утас бүрт байх ёстой зүйл - хар жагсаалт. Миний үүрэн холбооны оператор дугаар хаах үйлчилгээ үзүүлэхгүй байгаа нь асуудлыг улам хүндрүүлж байна. Би мэдлэгтэй хүний ​​хүсэлтээр тохирох програмыг олох гэж оролдсон боловч дэмий хоосон. Тиймээс би дугаараа сольж, түүнийг таньдаг хүмүүсийн хүрээлэлд болгоомжтой хандах хэрэгтэй болсон.

Интернет .... Энэ бол тусдаа яриа юм. Маш анхдагч. Хэрэв та компьютерээ мартаж, нийгмийн сүлжээн дээр тав тухтай харилцах боломжтой утас хайж байгаа бол хажуугаар нь өнгөрөө. Энэ утаснаас зөвхөн шинэчлэлтүүдийг үзэх боломжтой. Хуудсуудыг ачаалж байх хооронд та хумсаа хазах болно. Мөн би байнгын алдаа дутагдалд аль хэдийн дассан: үйлдлүүд ихэвчлэн хаашаа ч явдаггүй. Энэ нь мессеж илгээх, сэтгэгдэл бичих, хуудас ачаалах зэрэгт мөн хамаатай (анх удаагаа дүрмээр бол бүх зүйл "ямар ч хамаагүй" болж хувирдаг). Мессежийг илгээхээсээ өмнө би үргэлж хуулж авдаг: хэрэв үйлдэл нь ажиллахгүй бол текстийг бүхэлд нь шавхах болно. Энэ нь тохиолддог бөгөөд зуу дахин ижил зүйл илгээгддэг. Дуртай хүмүүсийн хувьд бол өөр түүх. Та энд байна, соронзон хальснаас үзэхдээ дуртай зүйл дээрээ лайк дарж, цааш гүйлгэж байна, тийм үү? Энд бүх зүйл төвөгтэй байдаг. Дүрмээр бол эхний лайк тавигдаж, хоёр дахь нь таны мэдээний сувгийг эхэнд нь илгээдэг. Тэгээд тогтмол! Сүүлийн үед би шинэ андройд дээр суурилсан мэдрэгчтэй утас худалдаж авах талаар илүү их боддог болсон, учир нь эдгээр бүх дутагдал нь нэлээд ядаргаатай болсон: энэ нь маш их цаг хугацаа, мэдрэл шаарддаг.

Мөн утас нь ихэвчлэн алдаатай байдаг, үнэнийг хэлэхэд би Nokia-ээс хүлээж байгаагүй. Ямар ч шалтгаангүйгээр дэлгэц цагаан болж, бүхэл систем дахин ачаалагдана. Бичиж байхдаа наранд үсэг харагдахгүй, камерт дургүй... Мэдээжийн хэрэг 3.2 биш! Хамгийн ихдээ 2 мегапиксел татах. Тийм ээ, утас бага зэрэг удааширч ажилладаг, гэхдээ миний санах ой бараг хоосон байна (дуудлагад зөвхөн нэг дуу дуулагддаг). Сонголтуудын хувьд утас нь ухаалаг юм шиг санагддаг, гэхдээ дотор нь би ойлгохгүй олон нэрс байдаг. Жишээлбэл, "Дуудлагын эмуляци" - энэ юу вэ?

Ерөнхийдөө би сэтгэл дундуур байна. Би илүү сайн хүлээж байсан. Би загварт дуртай, бусад бүх зүйл тийм л байна. Би цаг тухайд нь өөр нэг зүйлийг худалдаж авах болно. Би утсыг дунджаар гурван оноогоор үнэлдэг, гэхдээ би үүнийг худалдаж авахыг зөвлөж байна: үнэ, чанарын харьцаа нь хангалттай юм.

Худалдан авснаас хойш зургаан сарын дараа би шүүмжээ шинэчилж байна.Өнөөдөр 2015 оны нэгдүгээр сарын 3. Эхлээд утсаа солих гэсэн зэрлэг хүсэл байсан ч утсаа аваад яв. Цаг хугацаа өнгөрөхөд би үүнд дассан, одоо надад таалагдаж, өөр зүйл хүсэхгүй байна. Интернет дээр ажиллахын тулд би Opera хөтөчийг өөртөө суулгасан бөгөөд одоо бүх зүйл хэвийн ажиллаж байна. Мөн камер нь тийм ч муу байгаагүй. Зургийн чанар нь энэ үнийн категорийн бусад загваруудаас, тэр ч байтугай зарим нь илүү үнэтэй утаснуудаас илүү байх болно гэж би хэлэх болно. Тэдгээрийг хэвлэх боломжтой бөгөөд нийгмийн сүлжээнд нийтлэхээс ичдэггүй. Цорын ганц анхааруулга нь ямар нэг шалтгааны улмаас гудамжинд байхаас илүү дотор нь илүү сайн зураг авдаг. Цаг хугацаа өнгөрөх тусам товчлуурууд хавдсангүй, би дэмий л санаа зовсон. Мөн утас нь өөрөө "барааны" дүр төрхөө алдаагүй байна. Өмнөх шигээ үе үе алдаа гаргадаг ч тэр бүр биш. Хэд хэдэн удаа утас өөрөө унтарч, би удаан хугацаанд асааж чадахгүй байсан. Энэ нь юутай холбоотой байсныг би мэдэхгүй. Миний санах ой огтхон ч дүүрээгүй байна (би түүн дээр зураг, хөгжим хадгалдаггүй, зөвхөн SMS болон харилцагчид). Би "гурван" оноог "дөрөв" болгож өөрчилдөг. Тийм муу утас биш.


RU 2514141 патентын эзэд:

Техникийн талбар

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

Орчин үеийн байдал

Орчин үеийн программуудын код, түүний дотор хортой програмууд нь нарийн төвөгтэй заавар юм: үсрэлт, дуудлага, гогцоо гэх мэт. Гүйцэтгэх боломжтой файлуудын нарийн төвөгтэй байдал байнга нэмэгдэж байгаа нь өндөр түвшний програмчлалын хэлүүд улам бүр түгээмэл болж, компьютерийн тоног төхөөрөмж, үйлдлийн системүүдийн хүндрэлтэй холбоотой гэдгийг тэмдэглэх нь зүйтэй. Энэ нь итгэмжлэгдсэн програмууд болон хортой програмуудад хамаарна. Хортой програмууд нь DDoS халдлага хийх эсвэл спам илгээх зориулалттай ботнетэд байгаа компьютер зэрэг нууц үг болон хэрэглэгчийн бусад нууц мэдээллийг хулгайлах, хулгайлах зорилгоор системийн зөв ажиллагааг хаах зэрэг хэд хэдэн ердийн үйлдлүүдийг хийж болно. болон хэрэглэгчийн үүднээс хүсээгүй үйлдлүүд .

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

Хөтөлбөрийн кодын эмуляцийг эсэргүүцэхийн тулд хортой програм бүтээгчид эмуляц хийх үйл явцтай холбоотой хязгаарлалт, вирусын эсрэг шийдэлд эмуляторыг хэрэгжүүлэхтэй холбоотой янз бүрийн заль мэхийг ашигладаг. Эдгээр аргуудын нэг нь програмын кодонд хортой бүрэлдэхүүн хэсэг агуулаагүй олон тооны зааварчилгааг нэмэх явдал юм, гэхдээ дуурайлган хийхэд цаг хугацаа шаардагддаг. Хөтөлбөрийн кодыг дуурайлган дуурайлган хийх хугацаа нь хэрэглэгчийн сэтгэл ханамжгүй байдлыг үүсгэхгүйн тулд хязгаарлагдмал байдаг тул (дүрмээр бол энэ хугацаа хэдэн секунд байж болно) эмуляц хийх үйл явц үнэхээр хортой кодыг ажиллуулахаас өмнө зогсох боломжтой. Энэхүү эмуляцийн эсрэг арга барилтай тэмцэх нэг аргыг US7603713-д тайлбарласан бөгөөд энэ нь бодит процессор дээр хэд хэдэн зааварчилгааг гүйцэтгэх замаар ажилладаг бөгөөд энэ нь хамгийн хортой код руу орохын тулд үл мэдэгдэх програмуудыг дуурайх үйл явцыг ихээхэн хурдасгадаг. US20110225655 өргөдөлд дэлгэсэн өөр нэг арга нь эмуляцийг эсэргүүцэх тохиолдолд тухайн програмыг сэжигтэй гэж тодорхойлох сонголтыг авч үздэг. Энэхүү арга нь аюулгүй (хууль ёсны) програм нь дүрмээр бол эмулятор дээр гүйцэтгэх боломжгүй тухай сэрэмжлүүлгийг харуулдаг бол хорлонтой програм нь гүйцэтгэлийг тайван зогсоож эсвэл гүйцэтгэлийн векторыг (логик) огцом өөрчилдөг явдал юм.

Эмуляцийг эсэргүүцэх өөр нэг арга бол тухайн программ нь бодит үйлдлийн систем дээр биш харин эмулятор дээр ажиллаж байгааг тодорхойлоход суурилдаг. Эмулятор нь процессор, компьютерийн бүрэлдэхүүн хэсэг, үйлдлийн систем (OS) -ийн виртуал хуулбарыг зөвхөн хязгаарлагдмал хэмжээгээр үүсгэдэг гэдгийг тэмдэглэх нь зүйтэй, учир нь ижил процессор эсвэл системийн API функцүүдийн бүх чадварыг бүрэн сэргээх боломжгүй юм. хэд хэдэн шалтгааны улмаас: , баримтжуулаагүй функцүүд байгаа эсэх, ийм эмулятор ажиллуулах үед гүйцэтгэл их хэмжээгээр буурсан. Тиймээс, хортой програм бүтээгчид дууриамал орчинд гүйцэтгэлийн баримтыг илрүүлэхийн тулд дараах заль мэхийг ашиглаж болно.

Баримт бичиггүй эсвэл ховор хэрэглэгддэг API функцийг дуудаж байна.

CPU-ийн багц зааварчилгааг ажиллуулаад дараа нь жишээ нь тугуудын багцыг шалгана уу. Процессорын командын эмуляц хангалтгүй байгаа тул хэд хэдэн туг нь процессор дээр ажиллах үед тохируулагдсанаас өөр утгатай байж болно.

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

Тодорхой байт санах ой хайх. Жишээлбэл, процесс эхлэх үед kernel32.dll-г ачаалсны дараа санах ойд MZ толгойг байтаар байтаар хайх. Vista 64-д kernel32.dll нь 64Kb зэрэгцүүлэлтийг ашигладаг бөгөөд толгой болон эхний хэсгийн хоорондох хэсэг нь процессын хаягийн орон зайд харагдахгүй бөгөөд хэрэв та хандахыг оролдвол онцгой тохиолдол гарах болно. Хэрэв ямар нэгэн үл хамаарах зүйл бүртгэгдээгүй бол стандарт үйлдлийн системийн онцгой тохиолдлын зохицуулагчийг дуудаж процессыг зогсооно.

Сүүлийн аргыг хаа сайгүй ашигладаг бөгөөд энэ нь одоо байгаа эмуляторуудыг байнга тойрч гарах боломжийг олгодог тул дээр дурдсан шалтгааны улмаас API функц бүрийн зөв эмуляцийг хэрэгжүүлэх боломжгүй юм.

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

Шинэ бүтээлийн мөн чанар

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

Хэрэгжүүлэх сонголтуудын аль нэгийн дагуу эмуляцийн эсрэг арга хэмжээг тойрч гарахын тулд системийн функцын дуудлагыг дуурайлган дууриах аргыг өгсөн бөгөөд үүнд: гүйцэтгэх боломжтой файлыг эмуляторын оролт болгон хүлээн авдаг; системийн функцын дуудлагыг дуурайх шаардлагын нөхцлийг шалгах; хэрэв дээрх нөхцлүүдийн дор хаяж нэг нь хангагдсан бол системийн дуудлагын эмуляцийг ашигладаг; зааврын дараалсан гүйцэтгэлийн дагуу гүйцэтгэгдэх файлын гүйцэтгэлийг дуурайх; системийн функцын дуудлагыг илрүүлэх үед эмуляцийн процессыг системийн дуудлагын эмуляц руу шилжүүлэх; системийн функцийн дуудлагын эмуляцийг доод түвшний дуудлагын гинжин хэлхээ хэлбэрээр үүсгэх.

Хэрэгжүүлэх тодорхой сонголтуудын аль нэгийн дагуу системийн функцүүдийн дуудлагыг дуурайлган дуурайлган хийх шаардлага нь гүйцэтгэгдэх файлын эмуляцийг хурдан дуусгах явдал юм.

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

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

Хэрэгжүүлэх тодорхой хувилбаруудын аль нэгийн дагуу зааврыг дараалан гүйцэтгэх нь наад зах нь нөхцөлт болон болзолгүй бүх шилжилтийг гүйцэтгэх, мөн гүйцэтгэх файл доторх янз бүрийн функцуудыг дуудах явдал юм.

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

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

Хувийн хэрэгжүүлэлтийн сонголтуудын аль нэгийн дагуу цөмийн горимд шилжих үед системийн функцийн дуудлагын эмуляцийг зогсооно.

Зургийн товч тайлбар

Энэхүү шинэ бүтээлийн нэмэлт объект, онцлог, давуу талууд нь шинэ бүтээлийн биелэлийг дагалдах зургийн дагуу дараах тайлбарыг уншсанаар тодорхой болно.

Зураг 1-д API функцийн дуудлагыг боловсруулах үеийн сонгодог эмуляторын жишээг үзүүлэв.

2-т Windows үйлдлийн орчинд API функцийг гүйцэтгэх жишээг харуулав.

3-т энэхүү шинэ бүтээлийн хүрээнд API функцийн дуудлагыг дуурайлган дууриах аргыг харуулсан болно.

4-т энэхүү шинэ бүтээлийг хэрэгжүүлэх тогтолцоог харуулж байна.

5-р зурагт энэхүү шинэ бүтээлийг хэрэгжүүлэх аргыг харуулав.

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

Шинэ бүтээлийн хувилбаруудын тодорхойлолт

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

Зураг 1-д API функцийн дуудлагыг боловсруулах үеийн сонгодог эмуляторын жишээг үзүүлэв. Бодит үйлдлийн систем дээр хэрэглүүр ажиллаж байх үед API функц дуудагдах үед үйлдлийн систем нь олон тооны үйлдлүүдийг гүйцэтгэдэг бөгөөд энэ нь үйлдлийн системийн нарийн төвөгтэй дотоод архитектуртай холбоотой юм. Схемийн дагуу API функцийг дуудах нь процессор дээр олон тооны зааварчилгааг гүйцэтгэхэд хүргэдэг бөгөөд үүний дараа дуудагдсан API функцийн ажлын үр дүн програм руу буцаж ирдэг. Эмулятор ажиллаж байх үед API функцийг дуудах нь бодит үйлдлийн системтэй адил цуврал зааврыг гүйцэтгэхэд хүргэдэггүй, харин оронд нь програм API функцийн дууриамал үр дүнг буцаадаг. Жишээлбэл, файл үүсгэхийг оролдох үед эмулятор нь виртуал файл руу заагчийг буцаана. Гэсэн хэдий ч ажлын ерөнхий үр дүнг үл харгалзан (жишээлбэл, файл руу заагчийг буцаах) дуудагдсан API функцийн ажлын үр дүн нь үйлдлийн систем болон эмулятор дээр ялгаатай байж болох бөгөөд энэ нь API-г дуудах үед тохиолддогтой холбоотой юм. функц, жишээлбэл, процессорын зарим регистрийг өөрчлөх боломжтой бөгөөд энэ нь эмулятор ажиллаж байх үед тусгагдахгүй. Энэ зөрүүг эмуляци болон юуны түрүүнд хорлонтой программаас сэргийлэхэд ашиглаж болно.

2-т Windows үйлдлийн систем дээр API функцийг гүйцэтгэх жишээг харуулав. WriteFile-г API функцийн жишээ болгон сонгосон. 210-р блок дээр Windows программ (жишээлбэл, Microsoft Word эсвэл Notepad) Kernel32.dll дахь WriteFile Win32 API функцийг дуудаж файлд өгөгдөл бичихийг оролддог. Дараа нь 220-р алхам дээр NtWriteFile-ийг Ntdll.dll-д дууддаг (өөрөөр хэлбэл бүх холбогдох системийн функцуудыг дарааллаар нь дууддаг), энэ нь эргээд 230-р алхам дээр урхи үүсгэж, тохирох зохицуулагчийг хайхад хүргэдэг (үүнийг KiSystemService хийдэг). Ntoskrnl.dll дахь функц ) NtWriteFile руу залгах үед. Энэ процесс нь хэрэглэгчийн горимд явагддаг бөгөөд тасалдлыг дуудсаны дараа цөмийн горимд шилжинэ гэдгийг анхаарна уу. 240-р алхам дээр NtWriteFile-ийг Ntoskrnl.dll-д шууд дуудаж, файлыг 250-р алхам дээр шууд бичдэг (файлын системийн драйверын ажиллагаатай холбоотой дэлгэрэнгүй мэдээллийг энд бас нуусан болно). Үүний үндсэн дээр орчин үеийн үйлдлийн системд нэг API функцийг дуудах үед олон тооны үйлдлүүд (жишээ нь, OS-ийн бүтцийг өөрөө авч үзэх хүрээнд доод түвшний үйл явдлууд), түүний дотор програмын гүйцэтгэлийг дараахаас шилжүүлэх нь тодорхой болж байна. хэрэглэгчийн горимыг цөмийн горимд шилжүүлнэ. Эдгээр үйлдлүүдийг ассемблер хэл дээрх зааврыг гүйцэтгэх үүднээс авч үзэхэд бүх процессорын регистрүүдийн төлөв байдал, бүх төлөвийг харгалзан үзэх шаардлагатай тул API функцийн дуудлагыг зөв дуурайх нь маш хэцүү болох нь тодорхой болно. OS-ийн дотоод бүтэц.

Өмнө дурьдсанчлан, хортой програм бүтээгчид API функцийн гүйцэтгэлийн зөв эсэхийг шалгахын тулд янз бүрийн сонголтуудыг ашиглаж болно, үүнд програм эмулятор дээр ажиллаж байгаа эсэхийг тодорхойлохын тулд төв процессорын бүртгэлийг шалгаж болно. Иймээс ийм шалгалтыг тойрч гарахын тулд (эсвэл эс тэгвээс давах) энэхүү шинэ бүтээл нь машины кодын зааврын дагуу дуудагдсан бүх функцийг гүйцэтгэх аргыг санал болгож байна.

3-т энэхүү шинэ бүтээлийн хүрээнд API функцийн дуудлагыг дуурайлган дууриах аргыг харуулсан болно. 310-р алхам дээр, жишээ нь Notepad програмыг эмуляци хийх тохиолдолд програмын сонгодог эмуляци тохиолддог (OllyDbg дибаг хийх үед програмын кодын жижиг хэсгийг харуулсан болно):

MOV, PUSH, SUB, LEA гэх мэт зааварчилгааг байгаагаар нь дууриах болно, i.e. эмулятор дахь виртуал процессор ашиглан ассемблерийн зааврыг дуурайх замаар. API функцийн дуудлага тохиолдсоны дараа (блок 320-д тодорхойлсон) гэх мэт

дараа нь ийм дуудлагын эмуляци нь машины зааварчилгааны дагуу (алхам 330), бүх үүрлэсэн дуудлагыг харгалзан үзэх болно, жишээ нь, Зураг 2-т үзүүлсэн шиг. 340-р алхам дээр шалгах API функцийг гүйцэтгэх явцад цөмийн горимд шилжихэд эмуляцийг стандарт (хэвийн, сонгодог) горимд шилжүүлнэ, өөрөөр хэлбэл. Цаашдын дуудлагыг заавар тус бүрээр дараалан боловсруулахгүй бөгөөд зөвхөн функцийн дуудлагын үр дүнг буцаана. Дараа нь энэ арга нь 350-р алхамаас 310-р алхам руу буцаж, цаашдын эмуляци хийх болно.

4-т энэхүү шинэ бүтээлийг хэрэгжүүлэх тогтолцоог харуулж байна. Хэрэглэгчийн компьютер дээр үл мэдэгдэх, гүйцэтгэх боломжтой файл 410 байна гэж бодъё, энэ нь хортой байж болзошгүй эсэхийг тодорхойлохын тулд дуурайлган хийх ёстой. Гүйцэтгэх боломжтой файлыг зөвхөн PE эсвэл ELF форматтай гүйцэтгэх боломжтой файлууд төдийгүй .class эсвэл .jar файлууд (Java виртуал машин дээр гүйцэтгэх) гэх мэт янз бүрийн код агуулсан бусад файлуудыг ойлгох ёстой гэдгийг тодруулах хэрэгтэй. .vbs болон бусад олон скрипт файлууд. 410-р файл нь өөрөө 420-р зааврыг агуулдаг бөгөөд цуваа эмуляц нь 410-р файлын гүйцэтгэлийг хуулбарладаг. Цуврал эмуляц нь болзолт ба болзолгүй бүх үсрэлтүүдийг гүйцэтгэхээс гадна 410-р гүйцэтгэгдэх файл доторх янз бүрийн функцуудыг дууддаг болохыг анхаарна уу. Цуврал хэлбэрээр эмуляц хийх үед 420-р заавар бүр эмулятор 405 доторх заавар задлах модулийн 430-ын оролт руу ордог бол энэ модуль нь заавар нь системийн API функцийн дуудлага мөн эсэхийг тодорхойлох ба хэрэв хариулт эерэг байвал эмулятор 405 нь дуудлагыг дуурайдаг. энэ функцийг (450 гэж харуулсан) доод түвшний үйл явдлын гинжин хэлхээ хэлбэрээр, тухайлбал, 2-р зурагт үзүүлсэн (өөрөөр хэлбэл, цөмийн горимд орохын өмнө 2-р зурагт 210-230 алхам). Үгүй бол эмулятор 405 нь түүний гүйцэтгэлийг сонгодог эмуляцийн нэг хэсэг болгон дуурайдаг (440 гэж харуулсан), өөрөөр хэлбэл. функцийн дууриамал үр дүнг буцаана (жишээ нь 2-р зурагт заасан бүх үе шатыг дуурайхгүйгээр). Зарим тохиолдолд API функцийг дуудах зааврыг сонгодог 440 эмуляцтай адил дуурайж болно. Жишээ нь, доод түвшний дүрслэл дэх URLDownloadToFile функц нь TCP руу залгах нарийн төвөгтэй гинжин хэлхээг агуулдаг. / IP драйвер, ийм гинжин хэлхээний цуваа эмуляц нь практик биш байж магадгүй юм. Нэг хэрэгжүүлэлтээр системийн дуудлагын эмуляцийг ашиглах нь зүйтэй эсэхийг жишээлбэл, тодорхой дуудлагын эмуляцийн хурдны талаарх мэдэгдэж буй мэдээлэлд үндэслэн задлан шинжлэгч 430 заавраар тодорхойлдог.

5-р зурагт энэхүү шинэ бүтээлийг хэрэгжүүлэх аргыг харуулав. 510-р блок дээр хэрэглэгчийн компьютер дээр 410-р гүйцэтгэх файлыг дуурайх оролдлого хийдэг. 520 блок дээр системийн API функцүүдийн эмуляц шаардлагатай эсэхийг шалгана.

Системийн функцийг дуурайхад тавигдах шаардлага:

Эхний эмуляцийг хэрэглэгчдэд анхааруулахгүйгээр маш хурдан дуусгасан. Энэ нь ихэвчлэн програм нь эмулятор дээр ажиллаж байгааг илрүүлдэг боловч энэ талаар хэрэглэгчдэд мэдэгддэггүй гэсэн үг бөгөөд үүнийг ихэвчлэн аюултай програмууд хийдэг.

Гүйцэтгэх файл 410-ыг илүү гүнзгий эмуляц хийх шаардлагатай. Энэ нь гүйцэтгэх боломжтой файл 410 өмнө нь таарч байгаагүй тохиолдолд тохиолддог бөгөөд энэ нь эмулятор байгаа вирусын эсрэг програмын үл мэдэгдэх файлын талаар мэдээлэл байхгүй гэсэн үг юм. ажиллаж байгаа (өөрөөр хэлбэл, энэ нь вирусын эсрэг програмын мэдээллийн санд хор хөнөөлтэй эсвэл аюулгүй програм гэж ангилагдаагүй).

Сонгодог эмулятор нь эмуляцийг эсэргүүцэх аргуудыг илрүүлсэн, тухайлбал: API функцийг илт буруу параметртэй дуудаж, дараа нь алдааны төлөвийг (код) шалгах, API функцийг дуудсаны дараа тогтворгүй бүртгэлийг шалгах, системийн модулиудын агуулгыг сканнердах, систем дэх дибаглагч, түүнчлэн виртуал машин (RedPill) дор гүйцэтгэлийг илрүүлэх стандарт аргуудыг дууддаг.

Өөрийгөө задлах эсвэл өөрийгөө хамгаалах арга техникийг ашиглахыг илрүүлэх (савлагч ба хамгаалагч).

Бүх номын сан, орчуулагчтай (жишээ нь .NET эсвэл Java) хэрэглэгчийн үйлдлийн системийн нэг хэсэг болгон хортой байж болзошгүй програмыг дуурайх хэрэгцээ. Мөн санал болгож буй эмуляцийн арга нь .bat эсвэл .cmd өргөтгөлтэй багц файл (багцын файл), powershell скриптүүд, бүртгэлд өгөгдөл оруулах reg файлууд болон бусад төрлийн файлууд гэх мэт багц болон хяналтын файлуудыг дуурайх боломжийг олгодог. эхлүүлэх нь хэрэглэгчийн компьютер дээр гүйцэтгэх код руу хүргэдэг.

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

Эдгээр шаардлагуудын дор хаяж нэгийг нь биелүүлснээр 450-р системийн дуудлагыг 530-р блок дээр дууриахад хүргэдэг бөгөөд 4-р зурагт үзүүлсэн шиг API функцийг машины заавраар дуурайдаг. Үгүй бол 540-р алхам дээр зөвхөн сонгодог эмуляц 440-ийг ашигладаг.Ийм шаардлагыг ашиглах нь хэрэглэгчийн сэтгэл ханамжгүй байдлыг үүсгэхгүйгээр вирусны эсрэг програм дотор эмуляц хийх үйл явцад илүү уян хатан хандах боломжийг олгодог бөгөөд энэ нь API функцийг дуурайх шаардлагаас болж нэмэлт ачаалалтай холбоотой юм. машины заавраар.

6-д төв процессорын нэгж 21, системийн санах ой 22, системийн төрөл бүрийн бүрэлдэхүүн хэсгүүдийг агуулсан системийн автобус 23, түүний дотор төв процессортой холбоотой санах ойг агуулсан ерөнхий зориулалтын компьютерийн систем, персонал компьютер эсвэл сервер 20-ийн жишээг үзүүлэв. 21. Системийн автобус 23 нь автобусны санах ой эсвэл автобусны санах ойн хянагч, захын автобус, бусад автобусны архитектуртай холбогдох боломжтой орон нутгийн автобус агуулсан өмнөх техникээс мэдэгдэж байсан аливаа автобусны бүтэцтэй адил хэрэгжиж байна. Системийн санах ойд зөвхөн уншигдах санах ой (ROM) 24, санамсаргүй хандалтын санах ой (RAM) 25. Үндсэн оролт/гаралтын систем (BIOS) 26 нь персонал компьютерийн 20-ын элементүүдийн хооронд мэдээлэл дамжуулах үндсэн процедурыг агуулдаг, жишээлбэл: ROM 24 ашиглан үйлдлийн системийг ачаалах үед.

Персонал компьютер 20 нь эргээд өгөгдөл унших, бичихэд зориулагдсан хатуу диск 27, зөөврийн соронзон диск рүү унших, бичих зориулалттай соронзон диск 28 29, зөөврийн оптик диск рүү унших, бичих зориулалттай оптик хөтөч 30 31, тухайлбал CD-ROM, DVD -ROM болон бусад оптик хадгалах хэрэгсэл. Хатуу диск 27, соронзон дискний хөтөч 28, оптик хөтөч 30 нь хатуу дискний интерфейс 32, соронзон дискний интерфейс 33, оптик хөтчийн интерфейс 34-ээр тус тус системийн автобус 23-тай холбогддог. Драйвууд болон холбогдох компьютерийн хадгалах хэрэгсэл нь компьютерийн заавар, өгөгдлийн бүтэц, програмын модуль болон хувийн компьютерийн бусад өгөгдлийг хадгалах хувирамтгай хэрэгсэл юм.

Энэхүү тайлбар нь хатуу диск 27, зөөврийн соронзон диск 29, зөөврийн оптик диск 31 ашигладаг системийн хэрэгжилтийг тайлбарласан боловч бусад төрлийн компьютерийн санах ойн зөөвөрлөгч 56 нь өгөгдөл хадгалах чадвартай гэдгийг ойлгох хэрэгтэй. Компьютерийн уншигдах хэлбэр (хатуу төлөвт хөтчүүд, флаш санах ойн карт, дижитал диск, санамсаргүй хандалтын санах ой (RAM) гэх мэт), тэдгээр нь хянагч 55-аар дамжуулан системийн автобус 23-т холбогдсон байдаг.

Компьютер 20 нь бүртгэгдсэн үйлдлийн систем 35 хадгалагддаг файлын системтэй 36, мөн нэмэлт програм хангамжийн хэрэглүүрүүд 37, бусад програмын модулиуд 38 болон програмын өгөгдөл 39. Хэрэглэгч хувийн компьютерт 20 команд, мэдээллийг оруулах чадвартай. оролтын төхөөрөмжүүд (гар 40, манипулятор "хулгана" 42). Бусад оролтын төхөөрөмжийг (зурагт харуулаагүй) ашиглаж болно: микрофон, joystick, тоглоомын консол, сканнер гэх мэт. Ийм оролтын төхөөрөмжүүд нь ихэвчлэн 46-р цуваа портоор дамжуулан 20-р компьютерийн системд холбогддог бөгөөд энэ нь эргээд системийн автобусанд холбогддог боловч зэрэгцээ порт, тоглоомын порт эсвэл бүх нийтийн цуваа автобус (USB) гэх мэт өөр аргаар холбогдож болно. . Монитор 47 эсвэл бусад төрлийн дэлгэцийн төхөөрөмж нь видео адаптер 48 гэх мэт интерфэйсээр дамжуулан системийн автобус 23-д холбогдсон байна. Монитор 47-аас гадна хувийн компьютер нь бусад захын гаралтын төхөөрөмжөөр тоноглогдсон байж болно (зураг дээр харуулаагүй), чанга яригч, принтер гэх мэт.

Персонал компьютер 20 нь өөр буюу хэд хэдэн алсын компьютерт сүлжээний холболтыг ашиглан сүлжээнд холбогдсон орчинд ажиллах чадвартай 49. Алсын компьютер (эсвэл компьютер) 49 нь өмнө дурдсан ихэнх эсвэл бүх элементүүдийг агуулсан ижил персонал компьютер эсвэл серверүүд юм. байх тодорхойлолтод персонал компьютер 20, Зураг.6-д үзүүлсэн. Компьютерийн сүлжээнд чиглүүлэгч, сүлжээний станц, үе тэнгийн төхөөрөмж эсвэл бусад сүлжээний зангилаа зэрэг бусад төхөөрөмжүүд байж болно.

Сүлжээний холболтууд нь дотоод сүлжээ (LAN) 50 болон өргөн хүрээний сүлжээ (WAN) үүсгэж болно. Ийм сүлжээг корпорацийн компьютерийн сүлжээ, компаниудын дотоод сүлжээнд ашигладаг бөгөөд дүрмээр бол интернетэд нэвтрэх боломжтой байдаг. LAN эсвэл WAN сүлжээнд персонал компьютер 20 нь дотоод сүлжээнд 50 сүлжээний адаптер эсвэл сүлжээний интерфейсээр холбогддог 51. Сүлжээг ашиглах үед персонал компьютер 20 модем 54 эсвэл өргөн хүрээний сүлжээтэй холбогдох бусад хэрэгслийг ашиглаж болно. Интернет гэх мэт. Дотоод болон гадаад төхөөрөмж болох модем 54 нь 46-р цуваа портоор дамжуулан системийн автобус 23-т холбогдсон. Сүлжээний холболтууд нь зөвхөн үлгэр жишээ бөгөөд сүлжээний тохиргоог яг таг илэрхийлэх шаардлагагүй гэдгийг тодруулах хэрэгтэй, i. Үнэн хэрэгтээ нэг компьютерээс нөгөө компьютерт техникийн харилцаа холбооны хэрэгслээр холболт үүсгэх өөр аргууд байдаг.

Дүгнэж хэлэхэд, тайлбарт өгөгдсөн мэдээлэл нь томьёогоор тодорхойлсон энэхүү шинэ бүтээлийн хамрах хүрээг хязгаарлаагүй жишээнүүд гэдгийг тэмдэглэх нь зүйтэй. Энэхүү шинэ бүтээлийн агуулга, цар хүрээтэй нийцсэн бусад хувилбарууд байж болохыг энэ чиглэлээр мэргэшсэн хүн ойлгох болно.

1. Системийн функцийг дуурайлган дууриах арга нь эмуляцийн эсрэг арга хэмжээг тойрч гарах бөгөөд үүнд:
a) эмуляторын оролтоор гүйцэтгэх боломжтой файлыг хүлээн авах;
б) системийн функцын дуудлагыг дуурайх шаардлагын нөхцлийг шалгах;
в) дээрх нөхцлүүдийн дор хаяж нэг нь хангагдсан бол системийн дуудлагын эмуляцийг ашиглана;
г) зааврын дараалсан гүйцэтгэлийн дагуу гүйцэтгэгдэх файлын гүйцэтгэлийг дуурайх;
e) системийн функцийн дуудлага илэрсэн үед эмуляцын процессыг системийн дуудлагын эмуляц руу шилжүүлнэ;
е) системийн функцийн дуудлагыг доод түвшний дуудлагын гинжин хэлхээ хэлбэрээр дууриах.

2. Нэхэмжлэлийн 1-ийн арга, үүнд системийн функцийн дуудлагыг эмуляци хийх шаардлагатай нөхцөл нь гүйцэтгэх файлын эмуляцийг хурдан дуусгах явдал юм.

3. Нэхэмжлэлийн 1-ийн арга, үүнд системийн функцийн дуудлагыг эмуляци хийх шаардлагатай нөхцөл нь эмуляцийн хугацаанд ямар ч хязгаарлалт байхгүй байх явдал юм.

4. Нэхэмжлэлийн 1-д заасны дагуу арга бөгөөд системийн үйл ажиллагаанд дуудлагыг дуурайлган дуурайх шаардлага нь вирусын эсрэг програмаас үл мэдэгдэх файлын мэдээлэл байхгүй байх явдал юм.

5. 1-р зүйлд заасны дагуу арга бөгөөд зааврыг дараалан гүйцэтгэх нь наад зах нь нөхцөлт ба болзолгүй бүх үсрэлтүүдийг гүйцэтгэх, түүнчлэн гүйцэтгэх файл доторх янз бүрийн функцуудыг дуудах явдал юм.

6. Доод түвшний дуудлага нь ассемблер хэлний заавар болох Нэхэмжлэлийн 1-ийн арга.

7. Нэхэмжлэлийн 1-ийн арга бөгөөд доод түвшний дуудлага нь холбогдох системийн бүх функцүүдийн дараалсан дуудлага юм.

8. Цөмийн горимд шилжих үед системийн функцийн дуудлагын эмуляцийг дуусгах 1-р зүйлийн дагуу арга.

Үүнтэй төстэй патентууд:

Шинэ бүтээл нь компьютерийн технологитой холбоотой. Техникийн үр дүн нь хортой програмыг илрүүлэх чанарыг сайжруулах явдал юм.

БОДИС: шинэ бүтээл нь нийтийн түлхүүрийн гэрчилгээг шалгах хэрэгсэлд хамаарна. Техникийн үр дүн нь зөвшөөрөлгүй нэвтрэх магадлалыг бууруулах явдал юм.

Шинэ бүтээл нь хэрэглээний программуудыг гүйцэтгэх явцад хамгаалалтын хэрэгслийг автоматаар тохируулах талбартай холбоотой юм. Техникийн үр дүн нь аюулгүй байдлын чанарыг алдагдуулахгүйгээр хэрэглээний програмыг гүйцэтгэх явцад хамгаалалтын хэрэгслээр зарцуулдаг тооцоолох нөөцийг багасгах явдал юм.

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

Шинэ бүтээл нь нислэгийн болон агаарын хөлгийн аюулгүй байдалтай холбоотой мэдээлэлд хэрэглэгчийн нэвтрэх эрхийг удирдах системтэй холбоотой юм. Техникийн үр дүн нь заасан мэдээлэлд нэвтрэх эрхтэй хэрэглэгчдийг тодорхойлох явдал юм. Онгоц дээрх хэрэглээний программууд болон өгөгдөлд нэвтрэх эрхийг удирдах систем, энэ системд ашигладаг арга, түүнчлэн энэ системийг агуулсан агаарын хөлгүүдийг санал болгож байна. Онгоцонд байгаа хэрэглэгчийн мэдээлэлд нэвтрэх эрхийг удирдах систем нь түүний хувийн картанд байгаа хэрэглэгчийн мэдээллийг уншихад зориулагдсан дор хаяж нэг таних төхөөрөмж (10) ба самбар дээрх компьютерийг (1) агуулдаг. , хэрэглэгчийг таниулах, хэрэглэгчийн таних тэмдэгээс хамааран самбар дээрх мэдээлэлд хандах эрхийг тодорхойлохоор тохируулсан хандалтын эрхийг удирдах хэрэгсэл (11) агуулсан. 3 n. болон 7 z.p. f-ly, 2 өвчтэй.

Шинэ бүтээл нь мэдээлэл боловсруулах төхөөрөмж, арга, мэдээлэл боловсруулах төхөөрөмжийг удирдах программ бүхий бичлэгийн хэрэгсэлд хамаарна. Техникийн үр дүн нь өгөгдөл боловсруулах хурдыг нэмэгдүүлэх явдал юм. Уг төхөөрөмж нь хэрэглээний программыг агуулгын үүрэг гүйцэтгэдэг бичлэгийн хэрэглүүрээс програмын програмд ​​олгосон анхны эх гэрчилгээ, програмын програмд ​​анхны эх гэрчилгээ олгохоос өмнө олгосон хоёр дахь эх гэрчилгээг уншихаар тохируулагдсан. бүртгэгдсэн бөгөөд хэрэглээний программыг гүйцэтгэхэд зориулагдсан.Мэдээлэл боловсруулах төхөөрөмж нь дараахь зүйлийг агуулна: хадгалах төхөөрөмжид хэрэглээний програмаар боловсруулах өгөгдлийг хадгалах эхний хавтсыг бүрдүүлэх хэрэгсэл, эхний хавтас нь анхны эх сертификаттай холбоотой байх; ба хуулбар гэдэг нь хоёр дахь хавтас дахь өгөгдлийг эхний хавтас руу хуулах гэсэн үг бөгөөд хоёр дахь хавтас нь хадгалах төхөөрөмжид байгаа тохиолдолд хоёр дахь хавтас нь хоёр дахь эх гэрчилгээтэй холбоотой байна. 3 n. болон 7 z.p. f-ly, 19 өвчтэй.

Шинэ бүтээл нь дамжуулагч болон хүлээн авагч талуудын хооронд криптограф нууц түлхүүрийг түгээхтэй холбоотой юм. Техникийн үр дүн нь криптограф нууц түлхүүрийг бий болгох явцад солилцох мессежийн тоог үндэслэн давталтын тоог тохируулах замаар хамгаалалтыг автоматаар зохицуулах, криптограф нууц түлхүүрийг үүсгэх хүлээх хугацааг багтаасан болно. хяналттай. Аюулгүй байдлаар өгөгдөл хүлээн авах, дамжуулах төхөөрөмж нь түлхүүр үүсгэх хянагч болон давталтын тоог хангах нэгжийг агуулдаг. 4 n. болон 7 z.p. f-ly, 17 өвчтэй.

Шинэ бүтээл нь тухайн төхөөрөмжийг ашиглахын тулд баталгаажуулалт шаарддаг зураг илгээх төхөөрөмж болон түүний өгсөн функцтэй холбоотой юм. Техникийн үр дүн нь очих газрыг тохируулах аргын дагуу зураг илгээх, нэвтрэлт таних мэдээллийг оруулах дэлгэцийг харуулахын тулд баталгаажуулалтын мэдээллийн өв залгамжлалыг тохируулах боломжийг олгох явдал юм. Үүний тулд зураг илгээх төхөөрөмжид хэрэглэгчийн баталгаажуулалтын анхны баталгаажуулалтын боловсруулалтыг хийж, анхны баталгаажуулалтын боловсруулалт хийгдсэн тохиолдолд ашигласан баталгаажуулалтын мэдээллийг хадгалж, илгээх хэрэгсэл нь зургийн өгөгдлийг илгээх цэгийг тохируулдаг. төрөл бүрийн цэг тогтоох аргуудаар дамжуулан.. очих газар. Дараа нь илгээгчээс зургийн өгөгдлийг тогтоосон газар руу илгээхэд шаардагдах хоёр дахь баталгаажуулалтын боловсруулалт хийгдэж, хоёр дахь баталгаажуулалтын боловсруулалт хийх үед мэдээлэл хадгалах хэрэгсэлд хадгалагдсан баталгаажуулалтын мэдээллийг ашиглах эсэхийг тодорхойлно. очих газраа тохируулах арга дээр. 3 n. болон 5 z.p. f-ly, 17 өвчтэй.

БОДИС: шинэ бүтээл нь утасгүй холбоо, тухайлбал хандалтын хяналтын үйлчлүүлэгчийг найдвартай дамжуулах аргатай холбоотой. Техникийн үр дүн нь аюулгүй байдлыг нэмэгдүүлэх явдал юм. Уг арга нь утасгүй сүлжээнээс хэрэглэгчийн хандалтын хяналтын клиентийг хүсэх ба үүнд хүсэлт нь анхны баталгаажуулалтын гэрчилгээтэй холбоотой байдаг; хэрэглэгчийн хандалтын хяналтын үйлчлүүлэгч болон хоёр дахь баталгаажуулалтын гэрчилгээг хүлээн авах, үүнд итгэмжлэгдсэн байгууллагаас эхний болон хоёр дахь баталгаажуулалтын гэрчилгээ олгох; хоёр дахь баталгаажуулалтын гэрчилгээ хүчинтэй бол хэрэглэгчийн хандалтын хяналтын клиентийг аюулгүй элементэд хадгалах; Хэрэглэгчийн хандалтын хяналтын клиент нь аюулгүй байдлын элементийг бүрдүүлдэг олон сегментийн дотроос тусдаа сегментэд хадгалагддаг бөгөөд хадгалагдсан хэрэглэгчийн хандалтын хяналтын үйлчлүүлэгчийн дараагийн өөрчлөлтийг зөвхөн хоёр дахь баталгаажуулалтын гэрчилгээг ашиглан хийх боломжтой; мөн утасгүй сүлжээнд хандах хандалт нь (i) хэрэглэгчийн хандалтын хяналтын үйлчлүүлэгчийн хандалт болон (ii) хэрэглэгчийн хандалтын хяналтын клиентүүдийн хүсэлтээр хязгаарлагдана. 3 n. болон 19 z.p. f-ly, 8 өвчтэй.

Шинэ бүтээл нь компьютерийн технологи, харилцаа холбоонд хамаарах бөгөөд компьютерийн мэдээллийг хамгаалах асуудлыг шийдвэрлэх зорилготой юм. Шинэ бүтээлийн техникийн үр дүн нь параллелизмын түвшинг нэмэгдүүлэх замаар хурдыг нэмэгдүүлэх явдал юм. Гурван ээлжийн хувиргалт хийх арга нь x, y, z тэнхлэгийн дагуу байна. Эхний шатанд N 2D давхаргын өөрчлөлтийг L x0, L x1, ..., L x(N-1) хийнэ; хоёр дахь шатанд N хоёр хэмжээст давхаргыг солих хувиргалтыг L y0 , L y1 , ..., Ly (N-1) гүйцэтгэдэг; Гурав дахь шатанд N хоёр хэмжээст давхаргын өөрчлөлтийг L z0, L z1, ..., L z(N-1) хийнэ. 5 өвчтэй, 1 таб.

Шинэ бүтээл нь хэмжилтийн үр дүнг удирдах хэрэгсэлд хамаарна. Техникийн үр дүн нь мэдээлэл боловсруулах хугацааг багасгах явдал юм. Биологийн мэдээллийн хэмжих хэрэгслийн баталгаажуулалттай холбоотой баталгаажуулалтыг биологийн мэдээллийн хэмжих хэрэгслээр дамжуулахыг хангах. НӨЛӨӨ: Биологийн мэдээллийг хэмжих төхөөрөмжөөр баталгаажуулах хэрэгцээг тодорхойлох. Хяналтын төхөөрөмж нь биологийн мэдээллийн хэмжилтийн төхөөрөмжөөс баталгаажуулалт болон биологийн мэдээллийг хоёуланг нь хүлээн авч байгаа эсэхийг шалгаарай. Хяналтын төхөөрөмж нь баталгаажуулалттай холбоотой мэдээлэлд үндэслэн баталгаажуулалт хийж байгаа эсэхийг шалгаарай. Харилцаа холбооны хэрэгслээр хүлээн авсан биологийн мэдээллийг баталгаажуулах хэрэгслийн баталгаажуулалтын үр дүн эерэг эсвэл сөрөг байгаа эсэхээс үл хамааран хадгалах хэрэгсэлд хадгалагдана. Баталгаажуулалт шаардлагатай эсэхийг тодорхойлох хэрэгслээр баталгаажуулах шаардлагатай нь тогтоогдсон тохиолдолд хууль ёсны баталгаажуулалтын мэдээллийг холбооны хэрэгслээр дамжуулна, хэрэв баталгаажуулалт шаардлагагүй гэж үзвэл хуурамч мэдээллийг холбооны хэрэгслээр дамжуулна. 3 n. болон 2 z.p. f-ly, 10 өвчтэй.

Шинэ бүтээл нь цахим сүлжээний гүйлгээний аюулгүй байдлыг хангах хэрэгсэлд хамаарна. Техникийн үр дүн нь интернетээр дамжуулан цахим гүйлгээний аюулгүй байдлыг нэмэгдүүлэх явдал юм. Үйлчлүүлэгч, серверийн сайжруулсан (олон хүчин зүйл) нэвтрэлт танилт, хэш хийх, цахим гарын үсгээр гарын үсэг зурах, үйлчлүүлэгч, серверийн цахим гарын үсгийг баталгаажуулах процедурыг гүйцэтгэх. Үйлчлүүлэгчийн програм хангамжийн орчныг сканнердах процессыг гүйцэтгэсний дараа тэд системийн үйлчлүүлэгчдээс илрүүлсэн програм хангамжийн орчны эмзэг байдлын талаар шийдвэр гаргадаг. Оролцогчид хоорондын харилцан үйлчлэлийн явцад үйлчлүүлэгчид болон серверүүдийн хоорондын сессийг үргэлжлүүлэх, хаах тухай цахим гарын үсгээр гарын үсэг зурсан үйлчлүүлэгч, серверийн шийдвэрийн хуулбарыг архивт хадгалдаг. 2 n. болон 6 z.p. f-ly, 1 өвчтэй.

Шинэ бүтээл нь цахим бүрэлдэхүүн хэсэгт криптографийн хувиргалтыг хийх арга, төхөөрөмжтэй холбоотой юм. Техникийн үр дүн нь криптографийн хувиргалтын үр ашгийг нэмэгдүүлэх замаар нууц үгийн баталгаажуулалттай холболт үүсгэх аюулгүй байдлыг нэмэгдүүлэх явдал юм. Аргын хувьд Y2=f(X) илэрхийллийг хангасан зууван муруй дээрх t параметрт тулгуурлан P(X,Y) цэгийг X1(t), X2(t), X3 олон гишүүнт дээр үндэслэн авна. (t) ба U(t ) тэгшитгэлийг хангах f(X1(t)).f(X2(t)).f(X3(t))=U(t)2 Fq, q=3 mod 4-тэй, дараа нь t параметрийн утгыг гаргаж, (i) X1=X1(t), X2=X2(t), X3=X3(t) ба U=U гэсэн дэд алхмуудыг хийж Р цэгийг тодорхойлно. (t), (ii) хэрэв f(X1) .f(X2) элемент квадрат бол f(X3) элемент нь квадрат мөн эсэхийг Fq-д шалгаж, хэрэв байгаа бол квадрат язгуурыг тооцоол. элемент f(X3) P(X3) цэгийг авах, (iii) үгүй ​​бол f(X1) элемент квадрат мөн эсэхийг шалгах ба хэрэв байгаа бол f(X1)-ийн квадрат язгуурыг тооцож P( цэгийг гарга. X1), (iv) өөрөөр хэлбэл f(X2) элементийн квадрат язгуурыг тооцож P(X2 ) цэгийг гаргасны дараа энэ P цэгийг криптографийн хэрэглээнд ашиглана. 2 n. болон 6 z.p. f-ly, 3 өвчтэй.

Шинэ бүтээлийн бүлэг нь аюулгүй байдалтай холбоотой системд тохиолддог дор хаяж нэг процессыг удирдах хэрэгсэлд хамаарна. Техникийн үр дүн нь аюулгүй байдалтай холбоотой системийг уян хатан, ерөнхий гэрчилгээжүүлэх боломжийг олгох явдал юм. Үүний тулд аюулгүй байдалтай холбоотой системийг хянахад зориулагдсан хяналтын төхөөрөмжийн тусламжтайгаар аюулгүй байдалтай холбоотой системийг хянах аргыг санал болгож байна. Үүнд: хяналтын төхөөрөмж дээр хийгдэж буй олон процессоос эхний процессыг сонгох, эхний процессоор дуудлага хийх; аюулгүй байдлын системийн дор хаяж нэг хэсгийг бүрдүүлдэг төхөөрөмж рүү дуудлагыг дамжуулах; аюулгүй байдалтай холбоотой систем дээр хийгдэж буй олон процессоос хоёр дахь процессыг сонгох; дуудлагад дор хаяж нэг урьдчилан тодорхойлсон функцийг ашиглан боловсруулалтын үр дүнг хоёр дахь процессоор тооцоолох; хоёр дахь процессоор боловсруулалтын үр дүнг эхний процесс руу шилжүүлэх; эхний процессоор хоёр дахь процессоор тооцоолсон боловсруулалтын үр дүнг эхний процессоор тооцоолсон боловсруулалтын үр дүн, эхний процессоор тооцоолсон боловсруулалтын үр дүнг дор хаяж нэг урьдчилан тодорхойлсон функцийг ашиглан шалгах; эхний процессоор тооцоолсон боловсруулалтын үр дүн болон хоёр дахь процессоор тооцоолсон боловсруулалтын үр дүн тохирч байвал аюулгүй байдалтай холбоотой системийг аюулгүй байдалд байгаа гэж үнэлэх. 3 n. болон 8 z.p. f-ly, 2 өвчтэй.

Шинэ бүтээл нь эмуляцийн эсрэг арга хэмжээг тойрон гарахын тулд системийн үйл ажиллагааны дуудлагыг дуурайх аргуудтай холбоотой юм. Техникийн үр дүн нь системийн функцүүдийн дуудлагыг дуурайх боломжийг олгох явдал юм. Үр дүнд нь эмуляцийн эсрэг арга хэмжээг тойрч гарах системийн функцын дуудлагыг дуурайлган дуурайлган хийх аргыг ашиглан олж авсан бөгөөд энэ арга нь дараах алхмуудыг багтаасан болно: гүйцэтгэх боломжтой файлыг эмуляторын оролт болгон хүлээн авах; системийн функцийн дуудлагыг дуурайх шаардлагын нөхцлийг шалгах; хэрэв дээрх нөхцлүүдийн дор хаяж нэг нь хангагдсан бол системийн дуудлагын эмуляцийг ашигладаг; зааврын дараалсан гүйцэтгэлийн дагуу гүйцэтгэгдэх файлын гүйцэтгэлийг дуурайх; системийн функцын дуудлагыг илрүүлэх үед эмуляцийн процессыг системийн дуудлагын эмуляц руу шилжүүлэх; системийн функцийн дуудлагын эмуляцийг доод түвшний дуудлагын гинжин хэлхээ хэлбэрээр үүсгэх. 7 w.p. f-ly, 6 өвчтэй, 1 таб.

Шинэ бүтээл нь эмуляцийн эсрэг арга хэмжээг тойрон гарахын тулд системийн үйл ажиллагааны дуудлагыг дуурайх аргуудтай холбоотой юм. Техникийн үр дүн нь системийн функцүүдийн дуудлагыг дуурайх боломжийг олгох явдал юм. Үр дүнд нь эмуляцийн эсрэг арга хэмжээг тойрч гарах системийн функцын дуудлагыг дуурайлган дуурайлган хийх аргыг ашиглан олж авсан бөгөөд энэ арга нь дараах алхмуудыг багтаасан болно: гүйцэтгэх боломжтой файлыг эмуляторын оролт болгон хүлээн авах; системийн функцийн дуудлагыг дуурайх шаардлагын нөхцлийг шалгах; хэрэв дээрх нөхцлүүдийн дор хаяж нэг нь хангагдсан бол системийн дуудлагын эмуляцийг ашигладаг; зааврын дараалсан гүйцэтгэлийн дагуу гүйцэтгэгдэх файлын гүйцэтгэлийг дуурайх; системийн функцын дуудлагыг илрүүлэх үед эмуляцийн процессыг системийн дуудлагын эмуляц руу шилжүүлэх; системийн функцийн дуудлагын эмуляцийг доод түвшний дуудлагын гинжин хэлхээ хэлбэрээр үүсгэх. 7 w.p. f-ly, 6 өвчтэй, 1 таб.

RF-ийн патентын зураг 2514141

Техникийн талбар

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

Орчин үеийн байдал

Орчин үеийн программуудын код, түүний дотор хортой програмууд нь нарийн төвөгтэй заавар юм: үсрэлт, дуудлага, гогцоо гэх мэт. Гүйцэтгэх боломжтой файлуудын нарийн төвөгтэй байдал байнга нэмэгдэж байгаа нь өндөр түвшний програмчлалын хэлүүд улам бүр түгээмэл болж, компьютерийн тоног төхөөрөмж, үйлдлийн системүүдийн хүндрэлтэй холбоотой гэдгийг тэмдэглэх нь зүйтэй. Энэ нь итгэмжлэгдсэн програмууд болон хортой програмуудад хамаарна. Хортой програмууд нь DDoS халдлага хийх эсвэл спам илгээх зориулалттай ботнетэд байгаа компьютер зэрэг нууц үг болон хэрэглэгчийн бусад нууц мэдээллийг хулгайлах, хулгайлах зорилгоор системийн зөв ажиллагааг хаах зэрэг хэд хэдэн ердийн үйлдлүүдийг хийж болно. болон хэрэглэгчийн үүднээс хүсээгүй үйлдлүүд .

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

Хөтөлбөрийн кодын эмуляцийг эсэргүүцэхийн тулд хортой програм бүтээгчид эмуляц хийх үйл явцтай холбоотой хязгаарлалт, вирусын эсрэг шийдэлд эмуляторыг хэрэгжүүлэхтэй холбоотой янз бүрийн заль мэхийг ашигладаг. Эдгээр аргуудын нэг нь програмын кодонд хортой бүрэлдэхүүн хэсэг агуулаагүй олон тооны зааварчилгааг нэмэх явдал юм, гэхдээ дуурайлган хийхэд цаг хугацаа шаардагддаг. Хөтөлбөрийн кодыг дуурайлган дуурайлган хийх хугацаа нь хэрэглэгчийн сэтгэл ханамжгүй байдлыг үүсгэхгүйн тулд хязгаарлагдмал байдаг тул (дүрмээр бол энэ хугацаа хэдэн секунд байж болно) эмуляц хийх үйл явц үнэхээр хортой кодыг ажиллуулахаас өмнө зогсох боломжтой. Энэхүү эмуляцийн эсрэг арга барилтай тэмцэх нэг аргыг US7603713-д тайлбарласан бөгөөд энэ нь бодит процессор дээр хэд хэдэн зааварчилгааг гүйцэтгэх замаар ажилладаг бөгөөд энэ нь хамгийн хортой код руу орохын тулд үл мэдэгдэх програмуудыг дуурайх үйл явцыг ихээхэн хурдасгадаг. US20110225655 өргөдөлд дэлгэсэн өөр нэг арга нь эмуляцийг эсэргүүцэх тохиолдолд тухайн програмыг сэжигтэй гэж тодорхойлох сонголтыг авч үздэг. Энэхүү арга нь аюулгүй (хууль ёсны) програм нь дүрмээр бол эмулятор дээр гүйцэтгэх боломжгүй тухай сэрэмжлүүлгийг харуулдаг бол хорлонтой програм нь гүйцэтгэлийг тайван зогсоож эсвэл гүйцэтгэлийн векторыг (логик) огцом өөрчилдөг явдал юм.

Эмуляцийг эсэргүүцэх өөр нэг арга бол тухайн программ нь бодит үйлдлийн систем дээр биш харин эмулятор дээр ажиллаж байгааг тодорхойлоход суурилдаг. Эмулятор нь процессор, компьютерийн бүрэлдэхүүн хэсэг, үйлдлийн систем (OS) -ийн виртуал хуулбарыг зөвхөн хязгаарлагдмал хэмжээгээр үүсгэдэг гэдгийг тэмдэглэх нь зүйтэй, учир нь ижил процессор эсвэл системийн API функцүүдийн бүх чадварыг бүрэн сэргээх боломжгүй юм. хэд хэдэн шалтгааны улмаас: , баримтжуулаагүй функцүүд байгаа эсэх, ийм эмулятор ажиллуулах үед гүйцэтгэл их хэмжээгээр буурсан. Тиймээс, хортой програм бүтээгчид дууриамал орчинд гүйцэтгэлийн баримтыг илрүүлэхийн тулд дараах заль мэхийг ашиглаж болно.

Баримт бичиггүй эсвэл ховор хэрэглэгддэг API функцийг дуудаж байна.

CPU-ийн багц зааварчилгааг ажиллуулаад дараа нь жишээ нь тугуудын багцыг шалгана уу. Процессорын командын эмуляц хангалтгүй байгаа тул хэд хэдэн туг нь процессор дээр ажиллах үед тохируулагдсанаас өөр утгатай байж болно.

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

Тодорхой байт санах ой хайх. Жишээлбэл, процесс эхлэх үед kernel32.dll-г ачаалсны дараа санах ойд MZ толгойг байтаар байтаар хайх. Vista 64-д kernel32.dll нь 64Kb зэрэгцүүлэлтийг ашигладаг бөгөөд толгой болон эхний хэсгийн хоорондох хэсэг нь процессын хаягийн орон зайд харагдахгүй бөгөөд хэрэв та хандахыг оролдвол онцгой тохиолдол гарах болно. Хэрэв ямар нэгэн үл хамаарах зүйл бүртгэгдээгүй бол стандарт үйлдлийн системийн онцгой тохиолдлын зохицуулагчийг дуудаж процессыг зогсооно.

Сүүлийн аргыг хаа сайгүй ашигладаг бөгөөд энэ нь одоо байгаа эмуляторуудыг байнга тойрч гарах боломжийг олгодог тул дээр дурдсан шалтгааны улмаас API функц бүрийн зөв эмуляцийг хэрэгжүүлэх боломжгүй юм.

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

Шинэ бүтээлийн мөн чанар

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

Хэрэгжүүлэх сонголтуудын аль нэгийн дагуу эмуляцийн эсрэг арга хэмжээг тойрч гарахын тулд системийн функцын дуудлагыг дуурайлган дууриах аргыг өгсөн бөгөөд үүнд: гүйцэтгэх боломжтой файлыг эмуляторын оролт болгон хүлээн авдаг; системийн функцын дуудлагыг дуурайх шаардлагын нөхцлийг шалгах; хэрэв дээрх нөхцлүүдийн дор хаяж нэг нь хангагдсан бол системийн дуудлагын эмуляцийг ашигладаг; зааврын дараалсан гүйцэтгэлийн дагуу гүйцэтгэгдэх файлын гүйцэтгэлийг дуурайх; системийн функцын дуудлагыг илрүүлэх үед эмуляцийн процессыг системийн дуудлагын эмуляц руу шилжүүлэх; системийн функцийн дуудлагын эмуляцийг доод түвшний дуудлагын гинжин хэлхээ хэлбэрээр үүсгэх.

Хэрэгжүүлэх тодорхой сонголтуудын аль нэгийн дагуу системийн функцүүдийн дуудлагыг дуурайлган дуурайлган хийх шаардлага нь гүйцэтгэгдэх файлын эмуляцийг хурдан дуусгах явдал юм.

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

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

Хэрэгжүүлэх тодорхой хувилбаруудын аль нэгийн дагуу зааврыг дараалан гүйцэтгэх нь наад зах нь нөхцөлт болон болзолгүй бүх шилжилтийг гүйцэтгэх, мөн гүйцэтгэх файл доторх янз бүрийн функцуудыг дуудах явдал юм.

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

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

Хувийн хэрэгжүүлэлтийн сонголтуудын аль нэгийн дагуу цөмийн горимд шилжих үед системийн функцийн дуудлагын эмуляцийг зогсооно.

Зургийн товч тайлбар

Энэхүү шинэ бүтээлийн нэмэлт объект, онцлог, давуу талууд нь шинэ бүтээлийн биелэлийг дагалдах зургийн дагуу дараах тайлбарыг уншсанаар тодорхой болно.

Зураг 1-д API функцийн дуудлагыг боловсруулах үеийн сонгодог эмуляторын жишээг үзүүлэв.

2-т Windows үйлдлийн орчинд API функцийг гүйцэтгэх жишээг харуулав.

3-т энэхүү шинэ бүтээлийн хүрээнд API функцийн дуудлагыг дуурайлган дууриах аргыг харуулсан болно.

4-т энэхүү шинэ бүтээлийг хэрэгжүүлэх тогтолцоог харуулж байна.

5-р зурагт энэхүү шинэ бүтээлийг хэрэгжүүлэх аргыг харуулав.

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

Шинэ бүтээлийн хувилбаруудын тодорхойлолт

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

Зураг 1-д API функцийн дуудлагыг боловсруулах үеийн сонгодог эмуляторын жишээг үзүүлэв. Бодит үйлдлийн систем дээр хэрэглүүр ажиллаж байх үед API функц дуудагдах үед үйлдлийн систем нь олон тооны үйлдлүүдийг гүйцэтгэдэг бөгөөд энэ нь үйлдлийн системийн нарийн төвөгтэй дотоод архитектуртай холбоотой юм. Схемийн дагуу API функцийг дуудах нь процессор дээр олон тооны зааварчилгааг гүйцэтгэхэд хүргэдэг бөгөөд үүний дараа дуудагдсан API функцийн ажлын үр дүн програм руу буцаж ирдэг. Эмулятор ажиллаж байх үед API функцийг дуудах нь бодит үйлдлийн системтэй адил цуврал зааврыг гүйцэтгэхэд хүргэдэггүй, харин оронд нь програм API функцийн дууриамал үр дүнг буцаадаг. Жишээлбэл, файл үүсгэхийг оролдох үед эмулятор нь виртуал файл руу заагчийг буцаана. Гэсэн хэдий ч ажлын ерөнхий үр дүнг үл харгалзан (жишээлбэл, файл руу заагчийг буцаах) дуудагдсан API функцийн ажлын үр дүн нь үйлдлийн систем болон эмулятор дээр ялгаатай байж болох бөгөөд энэ нь API-г дуудах үед тохиолддогтой холбоотой юм. функц, жишээлбэл, процессорын зарим регистрийг өөрчлөх боломжтой бөгөөд энэ нь эмулятор ажиллаж байх үед тусгагдахгүй. Энэ зөрүүг эмуляци болон юуны түрүүнд хорлонтой программаас сэргийлэхэд ашиглаж болно.

2-т Windows үйлдлийн систем дээр API функцийг гүйцэтгэх жишээг харуулав. WriteFile-г API функцийн жишээ болгон сонгосон. 210-р блок дээр Windows программ (жишээлбэл, Microsoft Word эсвэл Notepad) Kernel32.dll дахь WriteFile Win32 API функцийг дуудаж файлд өгөгдөл бичихийг оролддог. Дараа нь 220-р алхам дээр NtWriteFile-ийг Ntdll.dll-д дууддаг (өөрөөр хэлбэл бүх холбогдох системийн функцуудыг дарааллаар нь дууддаг), энэ нь эргээд 230-р алхам дээр урхи үүсгэж, тохирох зохицуулагчийг хайхад хүргэдэг (үүнийг KiSystemService хийдэг). Ntoskrnl.dll дахь функц ) NtWriteFile руу залгах үед. Энэ процесс нь хэрэглэгчийн горимд явагддаг бөгөөд тасалдлыг дуудсаны дараа цөмийн горимд шилжинэ гэдгийг анхаарна уу. 240-р алхам дээр NtWriteFile-ийг Ntoskrnl.dll-д шууд дуудаж, файлыг 250-р алхам дээр шууд бичдэг (файлын системийн драйверын ажиллагаатай холбоотой дэлгэрэнгүй мэдээллийг энд бас нуусан болно). Үүний үндсэн дээр орчин үеийн үйлдлийн системд нэг API функцийг дуудах үед олон тооны үйлдлүүд (жишээ нь, OS-ийн бүтцийг өөрөө авч үзэх хүрээнд доод түвшний үйл явдлууд), түүний дотор програмын гүйцэтгэлийг дараахаас шилжүүлэх нь тодорхой болж байна. хэрэглэгчийн горимыг цөмийн горимд шилжүүлнэ. Эдгээр үйлдлүүдийг ассемблер хэл дээрх зааврыг гүйцэтгэх үүднээс авч үзэхэд бүх процессорын регистрүүдийн төлөв байдал, бүх төлөвийг харгалзан үзэх шаардлагатай тул API функцийн дуудлагыг зөв дуурайх нь маш хэцүү болох нь тодорхой болно. OS-ийн дотоод бүтэц.

Өмнө дурьдсанчлан, хортой програм бүтээгчид API функцийн гүйцэтгэлийн зөв эсэхийг шалгахын тулд янз бүрийн сонголтуудыг ашиглаж болно, үүнд програм эмулятор дээр ажиллаж байгаа эсэхийг тодорхойлохын тулд төв процессорын бүртгэлийг шалгаж болно. Иймээс ийм шалгалтыг тойрч гарахын тулд (эсвэл эс тэгвээс давах) энэхүү шинэ бүтээл нь машины кодын зааврын дагуу дуудагдсан бүх функцийг гүйцэтгэх аргыг санал болгож байна.

3-т энэхүү шинэ бүтээлийн хүрээнд API функцийн дуудлагыг дуурайлган дууриах аргыг харуулсан болно. 310-р алхам дээр, жишээ нь Notepad програмыг эмуляци хийх тохиолдолд програмын сонгодог эмуляци тохиолддог (OllyDbg дибаг хийх үед програмын кодын жижиг хэсгийг харуулсан болно):

MOV, PUSH, SUB, LEA гэх мэт зааварчилгааг байгаагаар нь дууриах болно, i.e. эмулятор дахь виртуал процессор ашиглан ассемблерийн зааврыг дуурайх замаар. API функцийн дуудлага тохиолдсоны дараа (блок 320-д тодорхойлсон) гэх мэт

дараа нь ийм дуудлагын эмуляци нь машины зааварчилгааны дагуу (алхам 330), бүх үүрлэсэн дуудлагыг харгалзан үзэх болно, жишээ нь, Зураг 2-т үзүүлсэн шиг. 340-р алхам дээр шалгах API функцийг гүйцэтгэх явцад цөмийн горимд шилжихэд эмуляцийг стандарт (хэвийн, сонгодог) горимд шилжүүлнэ, өөрөөр хэлбэл. Цаашдын дуудлагыг заавар тус бүрээр дараалан боловсруулахгүй бөгөөд зөвхөн функцийн дуудлагын үр дүнг буцаана. Дараа нь энэ арга нь 350-р алхамаас 310-р алхам руу буцаж, цаашдын эмуляци хийх болно.

4-т энэхүү шинэ бүтээлийг хэрэгжүүлэх тогтолцоог харуулж байна. Хэрэглэгчийн компьютер дээр үл мэдэгдэх, гүйцэтгэх боломжтой файл 410 байна гэж бодъё, энэ нь хортой байж болзошгүй эсэхийг тодорхойлохын тулд дуурайлган хийх ёстой. Гүйцэтгэх боломжтой файлыг зөвхөн PE эсвэл ELF форматтай гүйцэтгэх боломжтой файлууд төдийгүй .class эсвэл .jar файлууд (Java виртуал машин дээр гүйцэтгэх) гэх мэт янз бүрийн код агуулсан бусад файлуудыг ойлгох ёстой гэдгийг тодруулах хэрэгтэй. .vbs болон бусад олон скрипт файлууд. 410-р файл нь өөрөө 420-р зааврыг агуулдаг бөгөөд цуваа эмуляц нь 410-р файлын гүйцэтгэлийг хуулбарладаг. Цуврал эмуляц нь болзолт ба болзолгүй бүх үсрэлтүүдийг гүйцэтгэхээс гадна 410-р гүйцэтгэгдэх файл доторх янз бүрийн функцуудыг дууддаг болохыг анхаарна уу. Цуврал хэлбэрээр эмуляц хийх үед 420-р заавар бүр эмулятор 405 доторх заавар задлах модулийн 430-ын оролт руу ордог бол энэ модуль нь заавар нь системийн API функцийн дуудлага мөн эсэхийг тодорхойлох ба хэрэв хариулт эерэг байвал эмулятор 405 нь дуудлагыг дуурайдаг. энэ функцийг (450 гэж харуулсан) доод түвшний үйл явдлын гинжин хэлхээ хэлбэрээр, тухайлбал, 2-р зурагт үзүүлсэн (өөрөөр хэлбэл, цөмийн горимд орохын өмнө 2-р зурагт 210-230 алхам). Үгүй бол эмулятор 405 нь түүний гүйцэтгэлийг сонгодог эмуляцийн нэг хэсэг болгон дуурайдаг (440 гэж харуулсан), өөрөөр хэлбэл. функцийн дууриамал үр дүнг буцаана (жишээ нь 2-р зурагт заасан бүх үе шатыг дуурайхгүйгээр). Зарим тохиолдолд API функцийг дуудах зааврыг сонгодог 440 эмуляцтай адил дуурайж болно. Жишээ нь, доод түвшний дүрслэл дэх URLDownloadToFile функц нь TCP руу залгах нарийн төвөгтэй гинжин хэлхээг агуулдаг. / IP драйвер, ийм гинжин хэлхээний цуваа эмуляц нь практик биш байж магадгүй юм. Нэг хэрэгжүүлэлтээр системийн дуудлагын эмуляцийг ашиглах нь зүйтэй эсэхийг жишээлбэл, тодорхой дуудлагын эмуляцийн хурдны талаарх мэдэгдэж буй мэдээлэлд үндэслэн задлан шинжлэгч 430 заавраар тодорхойлдог.

5-р зурагт энэхүү шинэ бүтээлийг хэрэгжүүлэх аргыг харуулав. 510-р блок дээр хэрэглэгчийн компьютер дээр 410-р гүйцэтгэх файлыг дуурайх оролдлого хийдэг. 520 блок дээр системийн API функцүүдийн эмуляц шаардлагатай эсэхийг шалгана.

Системийн функцийг дуурайхад тавигдах шаардлага:

Эхний эмуляцийг хэрэглэгчдэд анхааруулахгүйгээр маш хурдан дуусгасан. Энэ нь ихэвчлэн програм нь эмулятор дээр ажиллаж байгааг илрүүлдэг боловч энэ талаар хэрэглэгчдэд мэдэгддэггүй гэсэн үг бөгөөд үүнийг ихэвчлэн аюултай програмууд хийдэг.

Гүйцэтгэх файл 410-ыг илүү гүнзгий эмуляц хийх шаардлагатай. Энэ нь гүйцэтгэх боломжтой файл 410 өмнө нь таарч байгаагүй тохиолдолд тохиолддог бөгөөд энэ нь эмулятор байгаа вирусын эсрэг програмын үл мэдэгдэх файлын талаар мэдээлэл байхгүй гэсэн үг юм. ажиллаж байгаа (өөрөөр хэлбэл, энэ нь вирусын эсрэг програмын мэдээллийн санд хор хөнөөлтэй эсвэл аюулгүй програм гэж ангилагдаагүй).

Сонгодог эмулятор нь эмуляцийг эсэргүүцэх аргуудыг илрүүлсэн, тухайлбал: API функцийг илт буруу параметртэй дуудаж, дараа нь алдааны төлөвийг (код) шалгах, API функцийг дуудсаны дараа тогтворгүй бүртгэлийг шалгах, системийн модулиудын агуулгыг сканнердах, систем дэх дибаглагч, түүнчлэн виртуал машин (RedPill) дор гүйцэтгэлийг илрүүлэх стандарт аргуудыг дууддаг.

Өөрийгөө задлах эсвэл өөрийгөө хамгаалах арга техникийг ашиглахыг илрүүлэх (савлагч ба хамгаалагч).

Бүх номын сан, орчуулагчтай (жишээ нь .NET эсвэл Java) хэрэглэгчийн үйлдлийн системийн нэг хэсэг болгон хортой байж болзошгүй програмыг дуурайх хэрэгцээ. Мөн санал болгож буй эмуляцийн арга нь .bat эсвэл .cmd өргөтгөлтэй багц файл (багцын файл), powershell скриптүүд, бүртгэлд өгөгдөл оруулах reg файлууд болон бусад төрлийн файлууд гэх мэт багц болон хяналтын файлуудыг дуурайх боломжийг олгодог. эхлүүлэх нь хэрэглэгчийн компьютер дээр гүйцэтгэх код руу хүргэдэг.

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

Эдгээр шаардлагуудын дор хаяж нэгийг нь биелүүлснээр 450-р системийн дуудлагыг 530-р блок дээр дууриахад хүргэдэг бөгөөд 4-р зурагт үзүүлсэн шиг API функцийг машины заавраар дуурайдаг. Үгүй бол 540-р алхам дээр зөвхөн сонгодог эмуляц 440-ийг ашигладаг.Ийм шаардлагыг ашиглах нь хэрэглэгчийн сэтгэл ханамжгүй байдлыг үүсгэхгүйгээр вирусны эсрэг програм дотор эмуляц хийх үйл явцад илүү уян хатан хандах боломжийг олгодог бөгөөд энэ нь API функцийг дуурайх шаардлагаас болж нэмэлт ачаалалтай холбоотой юм. машины заавраар.

6-д төв процессорын нэгж 21, системийн санах ой 22, системийн төрөл бүрийн бүрэлдэхүүн хэсгүүдийг агуулсан системийн автобус 23, түүний дотор төв процессортой холбоотой санах ойг агуулсан ерөнхий зориулалтын компьютерийн систем, персонал компьютер эсвэл сервер 20-ийн жишээг үзүүлэв. 21. Системийн автобус 23 нь автобусны санах ой эсвэл автобусны санах ойн хянагч, захын автобус, бусад автобусны архитектуртай холбогдох боломжтой орон нутгийн автобус агуулсан өмнөх техникээс мэдэгдэж байсан аливаа автобусны бүтэцтэй адил хэрэгжиж байна. Системийн санах ойд зөвхөн уншигдах санах ой (ROM) 24, санамсаргүй хандалтын санах ой (RAM) 25. Үндсэн оролт/гаралтын систем (BIOS) 26 нь персонал компьютерийн 20-ын элементүүдийн хооронд мэдээлэл дамжуулах үндсэн процедурыг агуулдаг, жишээлбэл: ROM 24 ашиглан үйлдлийн системийг ачаалах үед.

Персонал компьютер 20 нь эргээд өгөгдөл унших, бичихэд зориулагдсан хатуу диск 27, зөөврийн соронзон диск рүү унших, бичих зориулалттай соронзон диск 28 29, зөөврийн оптик диск рүү унших, бичих зориулалттай оптик хөтөч 30 31, тухайлбал CD-ROM, DVD -ROM болон бусад оптик хадгалах хэрэгсэл. Хатуу диск 27, соронзон дискний хөтөч 28, оптик хөтөч 30 нь хатуу дискний интерфейс 32, соронзон дискний интерфейс 33, оптик хөтчийн интерфейс 34-ээр тус тус системийн автобус 23-тай холбогддог. Драйвууд болон холбогдох компьютерийн хадгалах хэрэгсэл нь компьютерийн заавар, өгөгдлийн бүтэц, програмын модуль болон хувийн компьютерийн бусад өгөгдлийг хадгалах хувирамтгай хэрэгсэл юм.

Энэхүү тайлбар нь хатуу диск 27, зөөврийн соронзон диск 29, зөөврийн оптик диск 31 ашигладаг системийн хэрэгжилтийг тайлбарласан боловч бусад төрлийн компьютерийн санах ойн зөөвөрлөгч 56 нь өгөгдөл хадгалах чадвартай гэдгийг ойлгох хэрэгтэй. Компьютерийн уншигдах хэлбэр (хатуу төлөвт хөтчүүд, флаш санах ойн карт, дижитал диск, санамсаргүй хандалтын санах ой (RAM) гэх мэт), тэдгээр нь хянагч 55-аар дамжуулан системийн автобус 23-т холбогдсон байдаг.

Компьютер 20 нь бүртгэгдсэн үйлдлийн систем 35 хадгалагддаг файлын системтэй 36, мөн нэмэлт програм хангамжийн хэрэглүүрүүд 37, бусад програмын модулиуд 38 болон програмын өгөгдөл 39. Хэрэглэгч хувийн компьютерт 20 команд, мэдээллийг оруулах чадвартай. оролтын төхөөрөмжүүд (гар 40, манипулятор "хулгана" 42). Бусад оролтын төхөөрөмжийг (зурагт харуулаагүй) ашиглаж болно: микрофон, joystick, тоглоомын консол, сканнер гэх мэт. Ийм оролтын төхөөрөмжүүд нь ихэвчлэн 46-р цуваа портоор дамжуулан 20-р компьютерийн системд холбогддог бөгөөд энэ нь эргээд системийн автобусанд холбогддог боловч зэрэгцээ порт, тоглоомын порт эсвэл бүх нийтийн цуваа автобус (USB) гэх мэт өөр аргаар холбогдож болно. . Монитор 47 эсвэл бусад төрлийн дэлгэцийн төхөөрөмж нь видео адаптер 48 гэх мэт интерфэйсээр дамжуулан системийн автобус 23-д холбогдсон байна. Монитор 47-аас гадна хувийн компьютер нь бусад захын гаралтын төхөөрөмжөөр тоноглогдсон байж болно (зураг дээр харуулаагүй), чанга яригч, принтер гэх мэт.

Персонал компьютер 20 нь өөр буюу хэд хэдэн алсын компьютерт сүлжээний холболтыг ашиглан сүлжээнд холбогдсон орчинд ажиллах чадвартай 49. Алсын компьютер (эсвэл компьютер) 49 нь өмнө дурдсан ихэнх эсвэл бүх элементүүдийг агуулсан ижил персонал компьютер эсвэл серверүүд юм. байх тодорхойлолтод персонал компьютер 20, Зураг.6-д үзүүлсэн. Компьютерийн сүлжээнд чиглүүлэгч, сүлжээний станц, үе тэнгийн төхөөрөмж эсвэл бусад сүлжээний зангилаа зэрэг бусад төхөөрөмжүүд байж болно.

Сүлжээний холболтууд нь дотоод сүлжээ (LAN) 50 болон өргөн хүрээний сүлжээ (WAN) үүсгэж болно. Ийм сүлжээг корпорацийн компьютерийн сүлжээ, компаниудын дотоод сүлжээнд ашигладаг бөгөөд дүрмээр бол интернетэд нэвтрэх боломжтой байдаг. LAN эсвэл WAN сүлжээнд персонал компьютер 20 нь дотоод сүлжээнд 50 сүлжээний адаптер эсвэл сүлжээний интерфейсээр холбогддог 51. Сүлжээг ашиглах үед персонал компьютер 20 модем 54 эсвэл өргөн хүрээний сүлжээтэй холбогдох бусад хэрэгслийг ашиглаж болно. Интернет гэх мэт. Дотоод болон гадаад төхөөрөмж болох модем 54 нь 46-р цуваа портоор дамжуулан системийн автобус 23-т холбогдсон. Сүлжээний холболтууд нь зөвхөн үлгэр жишээ бөгөөд сүлжээний тохиргоог яг таг илэрхийлэх шаардлагагүй гэдгийг тодруулах хэрэгтэй, i. Үнэн хэрэгтээ нэг компьютерээс нөгөө компьютерт техникийн харилцаа холбооны хэрэгслээр холболт үүсгэх өөр аргууд байдаг.

Дүгнэж хэлэхэд, тайлбарт өгөгдсөн мэдээлэл нь томьёогоор тодорхойлсон энэхүү шинэ бүтээлийн хамрах хүрээг хязгаарлаагүй жишээнүүд гэдгийг тэмдэглэх нь зүйтэй. Энэхүү шинэ бүтээлийн агуулга, цар хүрээтэй нийцсэн бусад хувилбарууд байж болохыг энэ чиглэлээр мэргэшсэн хүн ойлгох болно.

Нэхэмжлэх

1. Системийн функцийг дуурайлган дууриах арга нь эмуляцийн эсрэг арга хэмжээг тойрч гарах бөгөөд үүнд:

a) эмуляторын оролтоор гүйцэтгэх боломжтой файлыг хүлээн авах;

б) системийн функцын дуудлагыг дуурайх шаардлагын нөхцлийг шалгах;

в) дээрх нөхцлүүдийн дор хаяж нэг нь хангагдсан бол системийн дуудлагын эмуляцийг ашиглана;

г) зааврын дараалсан гүйцэтгэлийн дагуу гүйцэтгэгдэх файлын гүйцэтгэлийг дуурайх;

e) системийн функцийн дуудлага илэрсэн үед эмуляцын процессыг системийн дуудлагын эмуляц руу шилжүүлнэ;

е) системийн функцийн дуудлагыг доод түвшний дуудлагын гинжин хэлхээ хэлбэрээр дууриах.

2. Нэхэмжлэлийн 1-ийн арга, үүнд системийн функцийн дуудлагыг эмуляци хийх шаардлагатай нөхцөл нь гүйцэтгэх файлын эмуляцийг хурдан дуусгах явдал юм.

3. Нэхэмжлэлийн 1-ийн арга, үүнд системийн функцийн дуудлагыг эмуляци хийх шаардлагатай нөхцөл нь эмуляцийн хугацаанд ямар ч хязгаарлалт байхгүй байх явдал юм.

4. Нэхэмжлэлийн 1-д заасны дагуу арга бөгөөд системийн үйл ажиллагаанд дуудлагыг дуурайлган дуурайх шаардлага нь вирусын эсрэг програмаас үл мэдэгдэх файлын мэдээлэл байхгүй байх явдал юм.

5. 1-р зүйлд заасны дагуу арга бөгөөд зааврыг дараалан гүйцэтгэх нь наад зах нь нөхцөлт ба болзолгүй бүх үсрэлтүүдийг гүйцэтгэх, түүнчлэн гүйцэтгэх файл доторх янз бүрийн функцуудыг дуудах явдал юм.

6. Доод түвшний дуудлага нь ассемблер хэлний заавар болох Нэхэмжлэлийн 1-ийн арга.

7. Нэхэмжлэлийн 1-ийн арга бөгөөд доод түвшний дуудлага нь холбогдох системийн бүх функцүүдийн дараалсан дуудлага юм.

8. Цөмийн горимд шилжих үед системийн функцийн дуудлагын эмуляцийг дуусгах 1-р зүйлийн дагуу арга.

Редакторын сонголт
VIII төрлийн тусгай (засах) сургуулийн багш Виноградова Светлана Евгеньевнагийн орос хэлний багшийн туршлагаас. Тодорхойлолт...

"Би бол Регистан, би Самаркандын зүрх". Регистан бол дэлхийн хамгийн сүрлэг талбайн нэг болох Төв Азийн гоёл чимэглэл бөгөөд...

Слайд 2 Ортодокс сүмийн орчин үеийн дүр төрх нь урт удаан хугацааны хөгжил, тогтвортой уламжлалын хослол юм.Сүмийн үндсэн хэсгүүд аль хэдийн ...

Үзүүлэнг урьдчилан үзэхийг ашиглахын тулд Google бүртгэл (бүртгэл) үүсгээд нэвтэрнэ үү:...
Тоног төхөөрөмж Хичээлийн явц. I. Зохион байгуулалтын мөч. 1) Ишлэлд ямар процессыг дурдсан бэ? “.Нэгэн цагт нарны туяа дэлхий дээр унасан боловч ...
Илтгэлийн тайлбарыг тус тусад нь слайдаар хийх: 1 слайд Слайдын тайлбар: 2 слайд Слайдын тайлбар: 3 слайд Тайлбар...
Дэлхийн 2-р дайнд тэдний цорын ганц өрсөлдөгч нь Япон байсан бөгөөд удалгүй бууж өгөх ёстой байв. Яг энэ үед АНУ...
Ольга Оледибе Сургуулийн өмнөх насны хүүхдүүдэд зориулсан танилцуулга: "Спортын тухай хүүхдүүдэд" Спортын тухай хүүхдүүдэд зориулсан Спорт гэж юу вэ: Спорт бол ...
, Залруулгын сурган хүмүүжүүлэх ухаан Анги: 7 Анги: 7 Хөтөлбөр: сургалтын хөтөлбөрүүд засварласан В.В. Юүлүүр хөтөлбөр...