Интересно бы вот что узнать - как сделать такое приложение, которое нельзя было бы никак перехватить, то есть как на ассемблере без использования ВСЕХ библиотек (в том чиле ntdll.dll) написать приложение.... Вопрос я так понимаю 1950-х годов.... Просьба не создавать темы с заголовками, содержащих слова вроде "Аццко" и другими жаргонизмами из подросткового арго, и очень желательно, чтобы название темы отражало её содержание, а не личное восприятие автора топика - прим. адм.
Даже если само приложение не будет вызывать _никаких_ АПИ функций, это сделает Винда до (читай: для) загрузки в память этого самого приложения. Так что перехват под Виндой возможен в любом случае. А с какой целью такую софтину вообще создавать? зы. комменты жгут равно как и тема
загрузка - это Бог с ним - пусть загружает, потом чтоб не использовало. Хочу такой кодировщик создать, чтоб заменяло все из директории импорта на свое, для вирусов это шикарнейше будет, хотя это не только для вирей надо - директ икс напрямки с видюхой работает, а это пусть со всем остальным...., похлеще Java должно получиться
В KM если не вызывать никакие функции из других модулей вполне реально)), в UM можно написать приложение которое вызывает системные сервисы по средством int 2eh (sysenter ловится бряком на KiFastSystemCall/Ret) вполне осуществимая задача для человека знающего Native Api и не нужен никакой экспорт/импорт, и никак ты это не словишь не прибегая к KM, только трассировать..
blast поподробнее плз, мне надо чтоб не только не было возможности перехвата, но и чтоб ниче не показывало при декомпилировании, то есть сплошной ассемблерный код будет, который просто так не разберешь
как тут ещё подробнее, по native api есть ман - NativeApi.pdf насчет реализации чтоб сделать код полностью независимым нужно получать экспорт всех Zw** из ntdll и разбирать те функции, которые нужно вызывать, имеется ввиду выделение из Eax номера сервиса. ntdll!ZwAddAtom: 7C90D421 >/$ B8 08000000 MOV EAX,8 7C90D426 |. BA 0003FE7F MOV EDX,7FFE0300 7C90D42B |. FF12 CALL DWORD PTR DS:[EDX] 7C90D42D \. C2 0C00 RETN 0C когда получил номер сервиса можешь заюзать макрос Clerk'a SERVICE_INFORMATION struct ServiceCode WORD ? ;Код сервиса SizeOfData WORD ? ;Размер данных в байтах SERVICE_INFORMATION ends PSERVICE_INFORMATION typedef ptr SERVICE_INFORMATION _CallSystemService_ macro comment ' Вызов системного сервиса. В регистре Eax указатель на SERVICE_INFORMATION. Функция сама очищает стек от параметров. ' comment mov edx,esp assume eax:PSERVICE_INFORMATION push ebx movzx ebx,[eax].SizeOfData xchg dword ptr [esp],ebx movzx eax,[eax].ServiceCode int 2Eh add esp,dword ptr [esp] add esp,4 endm
Для начала я б тебе посоветовал с native api поработать если ты не знаешь это такое, на си++ примеров много, а потом что тут переводить? делаешь асм вставку...
ну мля....., лана зря я эту тему создал)))))))), признаюсь, что последний раз проги писал полгода назад))))) и зря я захотел вспомнить, как надо дрова писать))))))))