Import & Protect.

Тема в разделе "WASM.RESEARCH", создана пользователем Drakon, 10 ноя 2004.

  1. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Вот у меня есть бинарник программы.



    У меня два вопроса:



    1. Как расширить раздел импорта программы без добавления дополнительной секции (IID King не предлагать, он именно добавляет доп. секцию; через LoadLibrary тоже не стоит)? Причём DLL, которую я хочу подрубить, нету в IMAGE_IMPORT_DECRIPTOR'ах... А места в конце массива импорта тоже нету... Может кто подскажет алгоритм, как можно добавить туда ещё одну запись (возможно, надо скопировать весь импорт в другую часть файла, где есть место)?



    2. Вот я каким-либо образом загрузил DLL в адресное пространство. Как теперь убивать все программы, которые хотят записать мне в процесс какую-нибудь дрянь (видимо, надо не дать выполнить им WriteProcessMemory)?
     
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    > Возможно, надо скопировать весь импорт в другую часть файла



    Ну не весь импорт, а только IMAGE_IMPORT_DESCRIPTOR'ы для каждой длл + один для твоей новой. Место понадобится, и сомнительно что ты найдешь столько в готовом файле, если уэ религия запрещает тебе добавлять секции - растяни последнюю, ли пересади ресурсы на новый RVA и растяни предпоследнюю, ну или еще чего придумай.



    > 2. Вот я каким-либо образом загрузил DLL в адресное

    > пространство. Как теперь убивать все программы, которые

    > хотят записать мне в процесс какую-нибудь дрянь (видимо,

    > надо не дать выполнить им WriteProcessMemory)?



    Логично, напиши драйвер который будет хучить эту функцию и не давать ей работать. Но в твой процесс запушут чего-нить захучив и внедрив длл. Кароче я еще ниразу не видел достойной защиты от этого дела, да и врядли она возможна.
     
  3. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Драйвер... Никогда не делал этого... :dntknw:
     
  4. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Места предостаточно... Более 3000 байт. :) Потом сожму это всё упаковщиком... А кто может посоветовать хорошие упаковщики и другие средства защиты от взлома?
     
  5. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Может кто-то пояснит, что значит написать драйвер или скажет, что мне почитать?
     
  6. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Да что же такое? =)

    Никто не знает, как ответить на второй вопрос? Или это вообще нельзя реализовать?
     
  7. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    С твоими знаниями - нет
     
  8. vinnie_pooh

    vinnie_pooh New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    98
    По-моему, драйвер - не лучший вариант, т.к. требует админских прав. А перехватить API-функцию при помощи одного только API особого труда и знаний не требует, поскольку всю работу за нас проделал Рихтер (Windows 2000 для профессионалов). Эта тема уже поднималась, и чтобы не повторяться, скажу только, что по-моему, перехватывать нужно не WriteProcessMemory, а OpenProcess. Ведь WriteProcessMemory принимает в первом параметре hProcess, по которому мы никак не узнаем ID или имя процесса-жертвы и не сможем принять решение - позволить функции выполниться или нет.
     
  9. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Эх... Не нашёл чего-то я этого там (у Рихтера)... Как перехватить API вызов внутри процесса — очень много способов... А вот глобально перехватить... Не нашёл. :dntknw: Может подскажете, что почитать? Или способ какой-нибудь...
     
  10. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    способов куча, но вот самый простой:

    Просто внедряйся в каждый процесс, меняй адреса вызова функций на нужные и будет тебе счастье(ну ёщё и getprocaddress+loadlibrary) - но это всё было у Рихтера :)



    Надеюсь как внедряться или как менять не надо?(тут вариантов много и всё зависит от творчества)



    Материалов куча: этот сайт+гугл
     
  11. dead_body

    dead_body wasm.ru

    Публикаций:
    0
    Регистрация:
    3 сен 2004
    Сообщения:
    603
    Адрес:
    Украина;г.Харьков;г.Н.Каховка
    Drakon

    дай мыло могу на *с* прислать исходнички перехвата с 3-колца createfile+messbox(вроде)...
     
  12. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    dead_body, было бы очень неплохо!

    Заранее спасибо.