Всем привет. Хочу найти сервис ид для функций типа NtClose,NtCreateSection,... из нтдлл Вообщем в голове я варианта: 1. Находим Кернел32, оттуда по хешу находиться LoadLibraryEx (ну или LdrMapDll) подгружается нтдлл, после находиться сервис ид 2. Используется таблица вшитых Service Id (NtOpenFile,NtClose,NtMapViewOfSection,NtUnmapViewOfSection) через них подгружается ntdll.dll и дальше находим все что нужно. Первый вариант предпочтителен так как используется стандарт апи. Но во втором варианте меньше кодить, но я читал как то что на одних и тех же ос, номера сервисов могут различаться, так это или нет? Если нет то легче использовать вшитую таблицу. Какой из вариантов лучше по вашему мнению и почему? Можете предложить свой, только аргументируйте.
>> на одних и тех же ос, номера сервисов могут различаться, так это или нет? да, они изменяются. надежно первый вариант
19841204 Зависит от задачи. Хардкод не желателен, но иногда необходим для сокрытия, причём в этом случае код максимально устойчивый к всяким сторонним воздействиям. lhc645 Там стабы побиты могут быть, например под отладчиком.
Короче я так и думал придется первый вариант юзать. Можеш чуть развернуть ? Хотя бы примеры задач привести. Лично мне нужно это все чтобы не таскать таблицу сервисов + надежный вариант , если различаются. Просто у меня весь софт будет написан через int 2eh, ну где возможно конечно
Мне нужно лично для обхода всяких юзермодных перехватов, тем более как я понял это не изврат, там часто количество аргументов совпадает с апи
Да еще чем лучше найтив вспомнил. Стандарный идет через sysenter, а мои через int 2eh, все что идет через сисентер имеет единый адрес возврата из ядра, поэтому можно поставить бряк в одном месте и все отловить.
Откуда у Вас инфа что в одинаковых виндах номера могут различаться? Зачастую они даже в разных сервиспаках одинаковые. Кстати, в 64-битных виндах придется Вам юзать Код (Text): call dword ptr fs:[TEB.WOW32Reserved] вместо Код (Text): int 2eh
>> Откуда у Вас инфа что в одинаковых виндах номера могут различаться Вчера вечером был не осознан вопрос, при ответе на пост ( В принципе можно использовать вот такую таблицу при написании кода http://www.metasploit.com/users/opcode/syscalls.html правда нет номеров семерки, но это вполне решаемо.
Для успокоения души разве что только, не более Врядли сейчас там кто-то что либо перехватывает, если тоже самое намного проще и эффективнее делать в ntoskrnl или ssdt
ohne Анализ приложения, которое кучу ядерных сервисов дёргает через шлюзы великогеморное занятие. По себе знаю.