Π‘Π°ΠΊΠ°Π»Π°Π²Ρ€
Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ ΠΈ курсовыС Π½Π° Π·Π°ΠΊΠ°Π·

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° интСрфСйса ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования API

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Команда, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вызываСтся систСмная слуТба, зависит ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°. ΠŸΡ€ΠΈ Π΅Ρ‘ Π²Ρ‹Π·ΠΎΠ²Π΅ происходит ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ ядра ΠΈ Π·Π°ΠΏΡƒΡΠΊ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° систСмных слуТб, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ указываСтся Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ MSR. Π’ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ EAX указываСтся Π½ΠΎΠΌΠ΅Ρ€ систСмной слуТбы, Π° Ρ‡Π΅Ρ€Π΅Π· рСгистр EDX ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π°. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ sysexit ΠΈΠ»ΠΈ iretd… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° интСрфСйса ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования API (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ собствСнных Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π½Π° Π±Π°Π·Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ взаимодСйствиС с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ собствСнныС прилоТСния. ΠžΠ΄Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Π°Ρ ΠΈΠ»ΠΈ двунаправлСнная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ XML обСспСчиваСт ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ чтСния записи Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… с Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΠΎΠ² направляСмых Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Ρ‹, посрСдством сСрвСров систСм с ΠΏΠΎΠ»Π½Ρ‹ΠΌ Ρ€Π΅Π·Π΅Ρ€Π²ΠΎΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний (MHS), Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… Π² Π΄Π²ΡƒΡ… Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ… сбора Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΠΎΠ΄ΡΠΈΡΡ‚Π΅ΠΌΠ° интСрфСйса ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования API.

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ программирования (API — Application Programming Interface) это интСрфСйс, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

API ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ нСсколькими способами:

Β· Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² ΡΡ€Π΅Π΄Ρƒ программирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ C++ ΠΈΠ»ΠΈ Java API.

Π’ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Google Maps API ΠΈΠ»ΠΈ Java API XML для Π²Π΅Π±-услуг. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŽ Google Maps API ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ услугу указания мСстополоТСния Π½Π° ΠΊΠ°Ρ€Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· интСрфСйс, прСдоставляСмый Google.

  • Β· API ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы это интСрфСйс, посрСдством ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ прилоТСния ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ доступ ΠΊ ΡƒΡΠ»ΡƒΠ³Π°ΠΌ ΠžΠ‘. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся Windows API, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбы ΠžΠ‘ Π΅ΡΡ‚ΡŒ доступная прилоТСниям ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°.
  • Β· Π Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ слуТбы, доступныС прилоТСниям Ρ‡Π΅Ρ€Π΅Π· Windows API:
  • Β· Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ слуТбы, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ относятся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ процСссами ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΠΈ.

Π‘Π»ΡƒΠΆΠ±Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² — для взаимодСйствия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

  • Β· Π‘Π»ΡƒΠΆΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса — для взаимодСйствия с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ мСню ΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ
  • Β· Π‘Π»ΡƒΠΆΠ±Ρ‹ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠ°
  • Β· ОбмСн сообщСниями ΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ная Ρ€Π°Π±ΠΎΡ‚Π°
  • Β· Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ слуТбы
  • Β· Π’Π΅Π±-слуТбы

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠžΠ‘ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ². Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ — это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ прСрывания, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈΠ»ΠΈ обращСниях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΡƒΡΠ»ΡƒΠ³Π°ΠΌ ΠžΠ‘. Для обращСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… прилоТСния ΠΊ API ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹. Π’ Ρ†Π΅Π»ΡΡ… бСзопасности, прилоТСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ нСпосрСдствСнно ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ гСнСрируСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ процСссору, Ρ‡Ρ‚ΠΎ Π² ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°ΠΏΡƒΡΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ядра.

Команда, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вызываСтся систСмная слуТба, зависит ΠΎΡ‚ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π°. ΠŸΡ€ΠΈ Π΅Ρ‘ Π²Ρ‹Π·ΠΎΠ²Π΅ происходит ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ ядра ΠΈ Π·Π°ΠΏΡƒΡΠΊ ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° систСмных слуТб, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ указываСтся Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ MSR. Π’ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ EAX указываСтся Π½ΠΎΠΌΠ΅Ρ€ систСмной слуТбы, Π° Ρ‡Π΅Ρ€Π΅Π· рСгистр EDX ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Π·ΠΎΠ²Π°. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ происходит с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ sysexit ΠΈΠ»ΠΈ iretd. ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ систСмных слуТб Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ адрСса ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Ρ‚.Π΅. ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, нСпосрСдствСнно ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… систСмными слуТбами Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс, прСдоставляСмый ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ΠΎΠΌ систСмных слуТб) ΠΈΠ· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ