1. Защита функции от перехвата. 2. Борьба с отладчиками

Тема в разделе "WASM.BEGINNERS", создана пользователем garsi, 25 апр 2010.

  1. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    Всем привет!) На этом сайте я впервые, и просто в восторге от столь обильного наличи информации! Надеюсь мое прибывание будет полезно мне и другим! И так, вопрос такой:

    заметка: Пишу на Delphi.

    Вопрос 1: Мне необходимо защитить ряд функций от перехвата. В частности FileRead/FileWrite, - , можно и на более низком уровне. B все что относиться к файловому I/O. А так же некоторые API вызовы связанные с библиотеками ADO. для работы с базами. ВОзможно где то есть в сети инфа, или кто то подскажет, как правильно организовать защиту функций от перехвата, где передаются очень важные параметры, которые должны быть скрыты от посторонних любопытных cool-хацкеров). Так же интересен вопрос по защите целеком PE. Многие toolz-ы не подходят поскольку на них уже существуют распаковщики и декрипторы. А писать самому в одиночку, это длительная работа. Нет, я нисколько не ленюсь, просто проект уже надо сдавать, все сроки поджали.

    Вопрос 2: Моя программа использует алгоритм шифрования, предназначение таково, шифрование фунций специальными маркероми, где ключи данных маркеров, подготавливаються сеансовым ключем+завязка с HASP. Сказать иными словами механизм один из самых обычных. Суть вопроса такова, мне нужно написать маленький комплекс для борьбы с отладчиком, дабы алгоритмы эти мне так же необходимо защитить. Непосредственно борьба с отладчиками, дизасемблерами такими как IDA или SoftIce, или хотябы их обнаружение. В профессиональности присудствующих людей на форуме я нисколько не сомневаюсь, НО ПОСУТИ, ЕСЛИ КТО ТО МОЖЕТ МНЕ ПОМОЧЬ, озовитесь, напишите пару примеров, я буду очень признателен!
     
  2. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    Вообщем нужна защита процесса от изменения, подмены адресов в таблице импорта.
     
  3. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    И если можно, то примеры в User-Mode. Пытался что то наваять с SDT но по причиние моих не глубоких знаний архитектуры 0 кольца, все мои опыты заканчивались BSOD. И кстати пример Уважаемого MS-REM, вызовы функций в нулевом кольце из User-Mode так же к сожалению приводили к падению системы.CallRing0 и колгейт и все приводило к BSOD.
     
  4. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    garsi
    импортируйте все функции динамически, тогда таблицы импорта не будет вообще. (разумеется нужен свой GetProcAddress)
    от отладчиков, которые защищены на уровне ядра вам не спастись. постарайтесь усложнить реверсирование кода - накройте например его каким-нить протом с виртуальный машиной
     
  5. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    GoldFinch
    Там дальше по тексту было волшебное слово "ADO", которое подразумевает подключение половины VCL и статический импорт всего, что она использует. По крайней мере, я совсем не встречал живых людей, которые работали бы с удалёнными базами на Delphi, но без VCL.
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    garsi
    От перехвата защищаться бесполезно. От отладчика можно, но всеравно вся ваша защита будет вскрыта рано или поздно. Тут наверно поможет виртуализация части кода, тогда придётся изучать вм и формат инструкций её. Это задержет ресерч.
     
  7. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    GoldFinch
    Свой getProcAddress? тоже идея впринципе!) Попробую.. Типа загрузка библиотеки в mapping и переход по offset? привильно я понял?
    Накрывание протом, это понятно. Но на счет виртуальной машины не совсем, поясните пожалуйста! И есть хотябы простейшие функцции для обнаружения SoftIce, и принятия каких то мер nop. Дело в том, что данный проект, надо которым я работаю, скорее не коммерческий а государственный, и требует, повышенной системы безопасности ко взлому, но в силу того, что не сталкивался с принципами борьбы, по сей день не имею представления как реализовать такие трюки..

    Ну думаю так.. Раз SoftIce работает на уровне ядра, значит установлен как девайс. А можно ли проверить допустим, открыть остройство, с именем ну как он там называется //dev/softice или ntsoftice и таким методом проверять наличие отладчика?

    Благодарю за ответ!
     
  8. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    garsi
    софтайсом уже никто не пользуется.
    будут использовать ollydbg с плагином который ее на уровне ядра, например (phantom)

    свой GetProcAddress - это я имел ввиду что просто функция которая возвращает адрес функции в загруженной библиотеке. желательно конечно действительно грузить файл библиотеки и проверять наличие перехватов.
    Но это мало поможет, перехваты не обязательно патчат код, есть другие способы (изменение указателей на код или данные) которые в общем случае не определить.
     
  9. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    гхм... вот что бывает если одновременно писать пару абзацев текста %)
     
  10. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    CyberManiac
    Работа с ADO без VCL, легко.))) помоему это OLE. msde есть точное описание для работы с дата-сетами, естественно vcl это суб-класификация, а по отношению к ADO это всего лишь обертка.) которая облегчает жизнь программисту)

    Благодарю за ответ!
     
  11. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    Clerk
    Все говорят про вм, а она случаем не замелит работу на порядок, скорость? Ну наконец должна же быть серьезная защита, или действительно поговаривают что вся эта линейка winos дырявая как друшлак).. Получаеться сломать впринципе можно все) Совершенно все..


    Благодарю за ответ!
     
  12. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    а еще попробовал, ну в качестве защиты полиморф, так kav начинает ругаться матом.. хехх.. на счет kav вообще надо отдельный топик открыть. Даже на порядочно-мирный софт ругаеться сцуко. Хотя вижу, в журнале Хакер, один умелец описал статью как поставить кляп, любой защите) Вот мозги у людей.. Я только один dump посмотрел, мне плохо стало, еще кто то в этом капаеться же..
     
  13. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    Я постарел.)
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    garsi
    Не замедлит.
     
  15. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    для борьбы с отладкой, если есть путь в ринг0, рекомендую юзать perfomance monitor counters. Это железно обламывает и дебугеры и ВМ'Ы. В прочем как и гипервизоры
     
  16. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    medstrax1
    Этож TSC.
     
  17. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Если ты имеешь в виду time stamp counter - мимо кассы
     
  18. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    Ознакомился немного с toolz-ами типа DotFix NiceProtect и DotFix FakeSigner. Помоему не плохо подходит для защиты! Еще и плюс мой собственный криптор, и поверх еще и навес, интересно получилось, попытался расковырять, действительно, сделать это тяжело, взолм затрудняется на порядок, а то и больше!

    Всем спасибо за советы!
     
  19. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    garsi
    А всё остальное? Модуль System, который неотключаемый, WriteFile/ReadFile тоже импортирует, причём статически. Можно, конечно, и его захачить, и интерфейс рисовать одним лишь WinAPI, но это будет ну очень долго.
     
  20. garsi

    garsi New Member

    Публикаций:
    0
    Регистрация:
    25 апр 2010
    Сообщения:
    12
    CyberManiac
    System так же можно расковырять, перелопатить. На wasm-е мне попадался пример, кстати на Delphi, чистое API, помоему назывался MiniCompile. и STUB резанный до 32б. линкуеться MS-LINK, итог супер!!! 2 кб виндовое приложение). но описывать свою конструкцию с 0 действительно долго и мутарно.