Здраствуйте. У меня возникла ситуация когда необходимо чтобы сразу после записи в определённую ячейку памяти управление передавалось на определёную процедуру. Пишу драйвер. Мне нужно нечто типа того что было в софт_айсе. Подскажите пожалуста как это сделать.
Скажу, что это дело не простое, и не стоит сразу приступать не подготовленным, если времени нет, а задачу нужно решить, то всеравно ищи другие методы, может перехватом некоторых функций можно обойтись? А еще читай фрак, и 90210, про шадоуволкера.
Дело в том что мне нужно отлавливать изменения в ССТ. Тоесть чтобы никакая гадость хуков не наставила. Можно конечно создать отдельный поток который будет бегать по таблице и сверять её с оригиналом но это не выход. Это будет слишком сильно грузить процессор и память. Я вижу здесь только один выход - перехватывать запись.
Вы не могли бы поподробнее написать что почитать. Я не совсем понял. "фрак, и 90210, про шадоуволкера." - не могли бы расшифровать ? Поисковик на фразы типа ShadowWalker + 90210 выдаёт чтото левое.
Дело в том, что я не помню ссылки, идти вам нужно на руткит.ком, а фрак- это phrack, ShadowWalker - это одна шняга, но главное ответ 90210 смотри - "наш ответ чемберлену".
А какие функции апи ? Вы не могли бы подсказать названия функций ? Хотя если не сильно сложно реализовать айсовый вариант то лутче конечно айсовый.
Можно попробовать модифицировать параметры доступа к страничке памяти, а при возникновении исключения обработать его. Тогда можно ставить точку останова на сколь угодно большие куски памяти. Так вроде-бы в IceExt делается.
По мойму если модификация производилась из r0 тогда параметры доступа не учитываются, кроме одного, что страница на винте, или я не прав?
Не учитываются только в том случае, если сброшен WP бит, но и при этом страницы чтение которых не разрешено всеравно будут вызывать исключение. В данном случае это как раз лучшее решение, так как перехват обращений к памяти (а особенно к SDT, к которой идут частые обращения) будет вызывать очень сильное падение производительности.
Модифицируется не очень часто, а от читается очень часто. А так как ты хочешь делать перехват на чтения то торможение системы будет присутствовать.
Мы друг друга не поняли. Я хочу сделать чтобы сразу после _записи_ данных управление передавалось на мой код. Тут у меня ешё возникла проблема. Как узнать имя сервиса имея его номер в ССТ ?