Перехват WinAPI функций .Net приложения

Тема в разделе "WASM.RESEARCH", создана пользователем vaneyev, 27 апр 2005.

  1. vaneyev

    vaneyev New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    6
    Адрес:
    Russia
    Помогите чайнику разобраться:



    Можно-ли перехватить WinAPI функции .Net приложения?

    Можно-ли это сделать через таблицу импорта PE.Net файла?



    Спасибо за внимание.
     
  2. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    а ты заметил, что у .net сборок в импорте одна dll - mscoree и одна функция...
     
  3. vaneyev

    vaneyev New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    6
    Адрес:
    Russia
    А какими еще методами это можно сделать?
     
  4. Sh355

    Sh355 New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2004
    Сообщения:
    56
    дизасм рулит
     
  5. vaneyev

    vaneyev New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    6
    Адрес:
    Russia
    Sh355



    Сдаюсь... Ты предлагаешь заменить везде вызовы API функций на свои?

    Мне нужно сделать криптозащиту файлов данных, которые изпользует наше .Net приложение, например файлов *.mdb.

    Править все dll и ocx, которые используют эти файлы замучаешься, да и "не хорошо" это изменять dll на компьютере пользователя.

    Поискав в инете инфу я подумал что это можно сделать перехватив функции обращения к файлам.

    Может я просто плохо соображаю... подскажите тогда хоть в каком направлении копать.
     
  6. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    проецируем свою dll на адресное пространство подопытного процесса, каким-то образом передаем на нее управление

    (например, правим точку входа файла оригинального процесса),

    из нашей dll принудительно загружаем все юзеры, кернелы и проч. в точку входа каждой функции ставим call на свою dll,

    извлекаем из стека адрес возврата, вычитаем из него длину

    инструкции call, после чего получаем адрес откуда он был

    вызван, определяем какому модулю и какой функции он

    принадлежит, пишем ее имя в лог, эмулируем выполнение

    тех инструкций что были затерты call'ом (для этого их надо

    предварительно где-то сохранить) и возвращаем управление.



    не самый простой способ, но достаточно надежный
     
  7. vaneyev

    vaneyev New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    6
    Адрес:
    Russia
    Будет ли такой способ работать под Win98?
     
  8. kaspersky

    kaspersky New Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    3.006
    конечно будет и под 9x
     
  9. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"
    Все функции вызываемые NET приложением в конечном счете приводят к вызовам обычных Win32 API, поэтому можно просто перехватывать их с помощью сплайсинга функции.
     
  10. Nimnul

    Nimnul New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    136
    Адрес:
    не Китай
    vaneyev когда сделаеш протект скинь сюда crackme я уверен, что он не продержится даже час:))



    Про то что говарил Kaspersky читай более подробно в аттаче.
     
  11. Nimnul

    Nimnul New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    136
    Адрес:
    не Китай
    Мда здесь тоже не работает аттач когда правиш свой пост.
     
  12. Nimnul

    Nimnul New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    136
    Адрес:
    не Китай
  13. vaneyev

    vaneyev New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    6
    Адрес:
    Russia
    Nimnul



    Да я уже в этом не сомневаюсь :). Мне бы защиту от простого копирования пользователями сделать, а не защиту от крэкеров или наверное правильнее сказать от исследователей программ.





    Да про это есть две статьи на rsdn. Есть статьи на wasm. Да и Рихтера в электроном виде скачал. Говорят есть статья по моей проблеме в MSDN Magazine, но я ее еще не нашел.

    Только начал писать проект в asmе, так что сильно не издевайтесь над новичком :).
     
  14. Sh355

    Sh355 New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2004
    Сообщения:
    56
    Мне бы защиту от простого копирования пользователями сделать, а не защиту от крэкеров

    Вот оно что. А я было подумал, раз топик в research`e, что тебе нужно отловить вызов нужной АПИ в исследуемой софтине...
     
  15. vaneyev

    vaneyev New Member

    Публикаций:
    0
    Регистрация:
    27 апр 2005
    Сообщения:
    6
    Адрес:
    Russia
    Я хотел вобще-то в beginers отправить, но то-ли криво кликнул, то-ли колесико задел...

    Вобщем звиняйте если что не так.