Адски сложная тема

Тема в разделе "WASM.NT.KERNEL", создана пользователем CPPRULIT, 13 сен 2008.

  1. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    Интересно бы вот что узнать - как сделать такое приложение, которое нельзя было бы никак перехватить, то есть как на ассемблере без использования ВСЕХ библиотек (в том чиле ntdll.dll) написать приложение.... Вопрос я так понимаю 1950-х годов....

    Просьба не создавать темы с заголовками, содержащих слова вроде "Аццко" и другими жаргонизмами из подросткового арго, и очень желательно, чтобы название темы отражало её содержание, а не личное восприятие автора топика - прим. адм.
     
  2. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Даже если само приложение не будет вызывать _никаких_ АПИ функций, это сделает Винда до (читай: для) загрузки в память этого самого приложения.
    Так что перехват под Виндой возможен в любом случае.

    А с какой целью такую софтину вообще создавать?


    зы. комменты жгут ;) равно как и тема
     
  3. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    загрузка - это Бог с ним - пусть загружает, потом чтоб не использовало. Хочу такой кодировщик создать, чтоб заменяло все из директории импорта на свое, для вирусов это шикарнейше будет, хотя это не только для вирей надо - директ икс напрямки с видюхой работает, а это пусть со всем остальным...., похлеще Java должно получиться
     
  4. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    В KM если не вызывать никакие функции из других модулей вполне реально)), в UM можно написать приложение которое вызывает системные сервисы по средством int 2eh (sysenter ловится бряком на KiFastSystemCall/Ret) вполне осуществимая задача для человека знающего Native Api и не нужен никакой экспорт/импорт, и никак ты это не словишь не прибегая к KM, только трассировать..
     
  5. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    blast поподробнее плз, мне надо чтоб не только не было возможности перехвата, но и чтоб ниче не показывало при декомпилировании, то есть сплошной ассемблерный код будет, который просто так не разберешь
     
  6. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    свою реализацию всех АПИ?
    нуну. проэкт похлеще перевода МСДН на русский зреет :)))
     
  7. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    ага.... Я о том же. Тему поэтому так и назвал...
     
  8. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    как тут ещё подробнее, по 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
     
  9. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    Freeman
    ntpatch же есть)
     
  10. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    Понимаю, что наглею, но можно на С++))))
     
  11. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    можно, йа разрешаю
     
  12. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    Для начала я б тебе посоветовал с native api поработать если ты не знаешь это такое, на си++ примеров много, а потом что тут переводить? делаешь асм вставку...
     
  13. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    с натив апи я как-то работал....., на с++. просто с++ читабельнее...
     
  14. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    ну найми кого-то чтоб тебе на си++ перевели, йа разрешаю)
     
  15. CPPRULIT

    CPPRULIT New Member

    Публикаций:
    0
    Регистрация:
    23 ноя 2007
    Сообщения:
    7
    ну мля....., лана зря я эту тему создал)))))))), признаюсь, что последний раз проги писал полгода назад))))) и зря я захотел вспомнить, как надо дрова писать))))))))