Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых)

 eXeL@B —› Программирование —› Неявный перехват API
Посл.ответ Сообщение

Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 22 марта 2007 13:34
· Личное сообщение · #1

надо выполнить перехват функций из тела программы (можно и API) не меняя байты в самой программе из присоединненной к программе DLL. Как это можно реализовать и возможно ли?

Мои предположения : из dll ставим на необходимые ячейки памяти PAGE_NOACCESS , но как после этого отловить именно это исключение, менять обработчик исключений на свой? - как тогда это реализовать из dll в ring3?




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 22 марта 2007 13:40 · Поправил: Hellspawn
· Личное сообщение · #2

AddVectoredExceptionHandler пишем свой обработчик, потом уже действуем по обстоятельствам
ставим хардварные бряки или PAGE_NOACCESS или PAGE_GUARD или как-нибудь ешё)

смотри статью на васме:
Использование отладочных регистров процессора Intel X86 в прикладной программе Windows NT

-----
[nice coder and reverser]




Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 22 марта 2007 14:15
· Личное сообщение · #3

только это будет работать не ниже ХР.
можно ещё в момент загрузки длл делать хук нужных апи




Ранг: 105.9 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 22 марта 2007 14:32
· Личное сообщение · #4

Tolkin
Если программа ничем не запакована, то я бы ставил хук в IAT самой программы. Тогда никаких зависимостей от версии windows не будет



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 22 марта 2007 14:47
· Личное сообщение · #5

смысл всего в том, чтоб никаких изменений в файле произведено не было, те никакие внутренние проверки внутри проги не смогли обнаруживать изменения в проге.
Gelios пишет:
можно ещё в момент загрузки длл делать хук нужных апи

всмысле загрузки моей dll или тех, что загружаются прогой?
Просто обычные хуки что на прогу что на ее dll легко обнаруживаются.
Hellspawn пишет:
AddVectoredExceptionHandler

я с этим еще не разбирался, но из dll это все доступно сделать?
статью прочту



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 22 марта 2007 14:56
· Личное сообщение · #6

Hellspawn
спасибо за ссылку на статью, думаю это именно то что надо




Ранг: 105.9 (ветеран)
Активность: 0.060
Статус: Участник

Создано: 22 марта 2007 14:59 · Поправил: seeq
· Личное сообщение · #7

Tolkin пишет:
смысл всего в том, чтоб никаких изменений в файле произведено не было, те никакие внутренние проверки внутри проги не смогли обнаруживать изменения в проге.

Как правило, если и есть проверки, то программа проверяет только секцию кода, которую никто и не трогает. Поставь брейкпоин на чтение IAT и посмотри проверяет ли она его на хуки. Если нет, смело ставь свой хук туда . Это конечно, если программа не запакована.

Tolkin пишет:
Просто обычные хуки что на прогу что на ее dll легко обнаруживаются.

Первый раз такое слышу. Что ты подразумеваешь под "обычные хуки"?

Ты лучше скажи, что тебе нужно сделать и что за протектор, если он есть.




Ранг: 199.9 (ветеран), 4thx
Активность: 0.120.02
Статус: Участник

Создано: 22 марта 2007 15:50
· Личное сообщение · #8

seeq пишет:
Tolkin пишет:
смысл всего в том, чтоб никаких изменений в файле произведено не было, те никакие внутренние проверки внутри проги не смогли обнаруживать изменения в проге.
Как правило, если и есть проверки, то программа проверяет только секцию кода, которую никто и не трогает. Поставь брейкпоин на чтение IAT и посмотри проверяет ли она его на хуки. Если нет, смело ставь свой хук туда . Это конечно, если программа не запакована.

+1
Зачем так усложнять. Зачастую проверка банально ловится бряком на функцию CreateFileA(W), после чего через инлайн ей можно подсунуть ссылку на бэкап (нетронутый) exe.



Ранг: 64.0 (постоянный), 2thx
Активность: 0.040.01
Статус: Участник

Создано: 22 марта 2007 17:07
· Личное сообщение · #9

seeq пишет:
Tolkin пишет:
Просто обычные хуки что на прогу что на ее dll легко обнаруживаются.
Первый раз такое слышу. Что ты подразумеваешь под "обычные хуки"?

Я имею ввиду, что открыв любую программу под отладчиком, к которой например присоединено DLL от файрволла или другая, и смотрим начало интересующей нас API в нужной стандартной DLL, то сразу видим переход в тело другой DLL(видим установленный перехват). Программа и сама может контролировать наиболее нужные API на предмет установки хуков и просто молча их снимать.
На даный момент это не под конкретную прогу.
И нужно это именно скорее для создания видимости отсутсвия каких либо перехватов.
(усложнения от разработчиков при исследовании кряка взлома их проги)



Ранг: 9.4 (гость)
Активность: 0.010
Статус: Участник

Создано: 23 марта 2007 20:18
· Личное сообщение · #10

зачем лесть в IAT проще патчить саму функцию а при вызове востонавливать так-как функция находится в системной длл следовательно её проверять никто небудет



Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 24 марта 2007 13:26 · Поправил: Gelios
· Личное сообщение · #11

не верно. протекторы часто проверяют наиболее важные для них функции в системных длл. а еще при таком способе начинается веселье, если одну и ту же апи вызывают несколько потоков

Tolkin пишет:
всмысле загрузки моей dll

да, из твоей



Ранг: 309.8 (мудрец), 21thx
Активность: 0.170
Статус: Участник

Создано: 24 марта 2007 14:50
· Личное сообщение · #12

в файлах к статье Драгона про xprot с сорсах есть длл с VEH если я не ошибаюсь...

-----
Shalom ebanats!




Ранг: 39.1 (посетитель)
Активность: 0.030
Статус: Участник

Создано: 25 марта 2007 02:02
· Личное сообщение · #13

ArmInline (или как там) юзает VEH после распаковки для обработки наномитов - можешь посмотреть...


 eXeL@B —› Программирование —› Неявный перехват API
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати