Обаждане на системните функции в Windows
Така че, за да извикате функцията директно без да използвате ntdll.dll трябва да изпълните следните стъпки:
Например, ZwOpenKey на повикване, имаща следния прототип:
Публичният ключ трябва да бъдат затворени с помощта ZwClose следния прототип:
Да разгледаме функцията код, който се отваря ключа HKEY_LOCAL_MACHINE \ Software, и тя се затваря. Имайте предвид, че името на ключа, което е необходимо за прехвърляне на функции, написани на пространството ядрото на имена, т.е. "\ Registry \ MACHINE \ Software":
Проверка функция номер за системата, като използвате следната функция:
След това се определи дали операционната система да използвате тази функция:
Освен това, тази техника може да се използва за разработка на софтуер и достави голямо удоволствие да хакери, отстраняване на грешки програмата си :). За да направи по-лесно да се обадя функции от ntdll.dll, декларира следните типове данни, функции, макроси:
могат да бъдат програмирани с помощта на макроси функция ние наричаме, както следва:
Един пример за използване функции. Така например, се изброят ключа HKEY_LOCAL_MACHINE \ Software плъгин в системния регистър:
Най-общо казано, функционалността на коренните жители на функциите на API трябва да бъде достатъчно за всичко, което е свързано със системата, защото Всички документирани API използва Native API.
При използване на тази техника в разработката на софтуер значително намалява скоростта на развитие, но технологичните предимства са очевидни: трудността на отстраняване на грешки двоичен хакер байпас прихващане функции UserMode.
Изходният код, кодът в тази статия: sdttest.c