Ta witryna korzysta z plików cookies. Korzystając z witryny akceptujesz: polityka prywatności.   [×]
Online: 0x0B (11)

haker.info – Etyczny hacking🕊️

Spreading knowledge like a virus.

⚙️ Co to Win32 API, Native API, WinRT?

🕰

„Cebula ma warstwy, ogry mają warstwy – cebula ma warstwy.” ~Shrek (film)

Interfejs programowania aplikacji (w skrócie API) w Windows to w uproszczeniu zestaw funkcji zawartych w bibliotekach, które są przeważnie częścią systemu. Udostępniane są one programistom, aby mogli ich używać w swoich programach. Istniejące od bardzo dawna Windows API (nazywane też Win32 API) składa się z warstw (podobnie jak cebula czy ogry) i często jedne funkcje są „opakowaniami” na znajdujące się niżej (biorąc pod uwagę poziom abstrakcji) wywołania [2]. Podstawowe funkcje dostępne są w bibliotekach kernel32.dll oraz user32.dll. Na przykład: Ktoś tworzy program korzystający z Win32 API i potrzebuje utworzyć plik. Może do tego celu skorzystać z funkcji CreateFile. Co jednak dzieje się wewnątrz funkcji? Znajdziemy tam m.in. różne rozkazy procesora, ale wykonanie zmierza do wywołania funkcji NtCreateFile. Funkcja NtCreateFile znajduje się w bibliotece ntdll.dll i jest abstrakcyjnie niżej niż Win32 API, a zbiór funkcji z przedrostkiem Nt tam zawartych określa się jako Native API. Interfejs ten jest mostem pomiędzy aplikacjami użytkownika, a wnętrznościami systemu Windows. Native API zawiera też elementy, które dotyczą trybu jądra (ang. kernel mode, ring 0) takie jak np. wersje funkcji z przedrostkiem Zw (np. ZwCreateFile). Korzysta się z nich podczas tworzenia programów działających w kernel mode.

Warto zaznaczyć, że od pewnego czasu dawne Win32 API programowane głównie w języku C powoli zastępuje nowy interfejs nazywany Windows Runtime (w skrócie WinRT) [3].



Wykaz literatury (bibliografia)

[1] Dawid Farbaniec, 2021 – Asembler x64. Laboratorium, ISBN: 9788382457032
[2] Chris Anley, John Heasman, Felix FX Linder, Gerardo Richarte, 2007 – The Shellcoder’s Handbook, ISBN: 9780470080238
[3] Microsoft Corporation, 2020 – How the Universal Windows Platform relates to Windows Runtime APIs, https://docs.microsoft.com/en-us/windows/uwp/get-started/universal-application-platform-guide#how-the-universal-windows-platform-relates-to-windows-runtime-apis [dostęp: 23.08.2020 r.]

Komentarze czytelników

Kontakt

mgr inż. Dawid Farbaniec  //  haker.iиfø

E-mail:
office@haker.info

Odwiedź mnie również na:

 

Wyrazy uznania: 📜 Credits page

Wszystkie treści umieszczone na tej witrynie są chronione prawem autorskim. Surowo zabronione jest kopiowanie i rozpowszechnianie zawartości tej witryny bez zgody autora. Wszelkie opublikowane tutaj treści (w tym kody źródłowe i inne) służą wyłącznie celom informacyjnym oraz edukacyjnym. Właściciele tej witryny nie ponoszą odpowiedzialności za ewentualne niezgodne z prawem wykorzystanie zasobów dostępnych w witrynie. Użytkownik tej witryny oświadcza, że z zamieszczonych tutaj danych korzysta na własną odpowiedzialność. Wszelkie znaki towarowe i nazwy zastrzeżone zostały użyte jedynie w celach informacyjnych i należą wyłącznie do ich prawnych właścicieli. Autor tej witryny w czasie tworzenia treści nie działa w imieniu firm, których technologie czy produkty opisuje — chyba, że jest to jasno oznaczone. Korzystając z zasobów witryny haker.info oświadczasz, że akceptujesz powyższe warunki oraz politykę prywatności.