Native API

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 11. november 2016; checks kræver 8 redigeringer .

Native API (med stort N) er en for det meste udokumenteret applikationsprogrammeringsgrænseflade (API) beregnet til intern brug på Windows NT -familien af ​​operativsystemer udgivet af Microsoft [1] . Det bruges hovedsageligt under systemopstart, når andre Windows-komponenter ikke er tilgængelige, og af systembiblioteksfunktioner (som kernel32.dll ), der implementerer Windows API -funktionalitet . Indgangspunktet for programmer, der bruger Native API, er DriverEntry()-funktionen, ligesom Windows- enhedsdrivere . På samme tid, i modsætning til drivere, kører programmer, der bruger Native API, i den tredje beskyttelsesring , ligesom almindelige Windows-applikationer. De fleste af Native API-kaldene er implementeret i ntoskrnl.exe og tilgås af ntdll.dll -brugertilstandsprogrammer . Nogle Native API-kald implementeres direkte i brugertilstand i ntdll.dll.

Mens det meste af Windows NT-operativsystemet bruger den dokumenterede og veldefinerede Windows API , bruger nogle komponenter, såsom Client/Server Runtime Subsystem (CSRSS), Native API, fordi de startes tidligt i Windows NT-startprocessen . Windows API-funktionerne er endnu ikke tilgængelige.

Nogle malware bruger Native API til at skjule sin tilstedeværelse fra antivirussoftware [2] .

Funktionsgrupper

Native API indeholder et ret stort antal funktioner. Det inkluderer C standard biblioteksfunktioner såsom strlen(), sprintf() og floor(). Samtidig mangler sådanne almindelige standard bibliotekskald som malloc(), printf(), scanf(). De fleste af de andre Native API-funktioner har et præfiks på to eller tre bogstaver. Især anvendes følgende præfikser:

Gdi32.dll indeholder et par flere funktioner, der gør overgangen til kernetilstand. De var ikke oprindeligt tiltænkt af designerne af Windows NT-operativsystemet og findes ikke i Windows NT 3.5 . Men på grund af utilstrækkelig hardwareydeevne, da NT 4 blev frigivet, blev det besluttet at flytte det grafiske undersystem til kernetilstand. Som et resultat udføres systemkald i området 0x1000-0x1FFF af win32k.sys (i modsætning til opkald i området 0-0x0FFF udført af ntoskrnl.exe) og erklæres i gdi32.dll. Disse funktioner er præfikset med Gdi .

Der er et par flere grupper af funktioner eksporteret af ntoskrnl.exe, som kun kan bruges i kernetilstand. De kan eller kan ikke blive betragtet som en del af Native API, afhængigt af kildens synspunkt (da Native API ikke er fuldt dokumenteret officielt, er der ikke noget endeligt svar). Disse grupper inkluderer Cc (cache controller), Ex ( Windows Executive ), FsRtl (filsystem runtime calls), Io (I/O manager), Ke (kernekernefunktioner), Ks (kernetråde), Lpc ( lokale opkaldsprocedurer ), Lsa ( lokal sikkerhedsgodkendelsesserver ), Mm (hukommelsesstyring), Ob ( objekthåndtering ), Ps (processtyring), Se (sikkerhed), Po (strømstyring) og andre [5] [6] [ 7] [8] [9] [4] .

Se også

Links

Noter

  1. Mark Russinovich . Inde i Native API (utilgængeligt link) . Sysinternals (1998–2004). Dato for adgang: 28. februar 2008. Arkiveret fra originalen 18. december 2012. 
  2. Jason Coombs. Win32 API-obscurity til I/O-blokering og indtrængningsforebyggelse (dødt link) . Dr. Dobb's Journal (21. juni 2005). Hentet 4. januar 2007. Arkiveret fra originalen 18. december 2012. 
  3. The NT Insider, bind 10, udgave 4, juli-august 2003. Udskriv en artikel fra OSR Online (link ikke tilgængeligt) . OSR Online (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012. 
  4. 12 Raymond Chen . Den gamle nye ting: Hvad betyder "Zw"-præfikset? (utilgængeligt link) . Microsoft Corporation (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012.  
  5. Microsoft Corporation . I/O Manager-rutiner (downlink) . Microsoft Corporation (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012. 
  6. Microsoft Corporation . Cache Manager-rutiner (utilgængeligt link) . Microsoft Corporation (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012. 
  7. Microsoft Corporation . Power Manager-rutiner (utilgængeligt link) . Microsoft Corporation (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012. 
  8. Microsoft Corporation . Core Kernel Library Support Rutiner (utilgængeligt link) . Microsoft Corporation (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012. 
  9. Microsoft Corporation . Filsystem Runtime Library Rutiner (utilgængeligt link) . Microsoft Corporation (2009). Hentet 13. juni 2009. Arkiveret fra originalen 18. december 2012.