Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
eXeL@B —› Программирование —› Неявный перехват API |
Посл.ответ | Сообщение |
|
Создано: 22 марта 2007 13:34 · Личное сообщение · #1 надо выполнить перехват функций из тела программы (можно и API) не меняя байты в самой программе из присоединненной к программе DLL. Как это можно реализовать и возможно ли? Мои предположения : из dll ставим на необходимые ячейки памяти PAGE_NOACCESS , но как после этого отловить именно это исключение, менять обработчик исключений на свой? - как тогда это реализовать из dll в ring3? |
|
Создано: 22 марта 2007 13:40 · Поправил: Hellspawn · Личное сообщение · #2 AddVectoredExceptionHandler пишем свой обработчик, потом уже действуем по обстоятельствам ставим хардварные бряки или PAGE_NOACCESS или PAGE_GUARD или как-нибудь ешё) смотри статью на васме: Использование отладочных регистров процессора Intel X86 в прикладной программе Windows NT ----- [nice coder and reverser] |
|
Создано: 22 марта 2007 14:15 · Личное сообщение · #3 |
|
Создано: 22 марта 2007 14:32 · Личное сообщение · #4 |
|
Создано: 22 марта 2007 14:47 · Личное сообщение · #5 смысл всего в том, чтоб никаких изменений в файле произведено не было, те никакие внутренние проверки внутри проги не смогли обнаруживать изменения в проге. Gelios пишет: можно ещё в момент загрузки длл делать хук нужных апи всмысле загрузки моей dll или тех, что загружаются прогой? Просто обычные хуки что на прогу что на ее dll легко обнаруживаются. Hellspawn пишет: AddVectoredExceptionHandler я с этим еще не разбирался, но из dll это все доступно сделать? статью прочту |
|
Создано: 22 марта 2007 14:56 · Личное сообщение · #6 |
|
Создано: 22 марта 2007 14:59 · Поправил: seeq · Личное сообщение · #7 Tolkin пишет: смысл всего в том, чтоб никаких изменений в файле произведено не было, те никакие внутренние проверки внутри проги не смогли обнаруживать изменения в проге. Как правило, если и есть проверки, то программа проверяет только секцию кода, которую никто и не трогает. Поставь брейкпоин на чтение IAT и посмотри проверяет ли она его на хуки. Если нет, смело ставь свой хук туда . Это конечно, если программа не запакована. Tolkin пишет: Просто обычные хуки что на прогу что на ее dll легко обнаруживаются. Первый раз такое слышу. Что ты подразумеваешь под "обычные хуки"? Ты лучше скажи, что тебе нужно сделать и что за протектор, если он есть. |
|
Создано: 22 марта 2007 15:50 · Личное сообщение · #8 seeq пишет: Tolkin пишет: смысл всего в том, чтоб никаких изменений в файле произведено не было, те никакие внутренние проверки внутри проги не смогли обнаруживать изменения в проге. Как правило, если и есть проверки, то программа проверяет только секцию кода, которую никто и не трогает. Поставь брейкпоин на чтение IAT и посмотри проверяет ли она его на хуки. Если нет, смело ставь свой хук туда . Это конечно, если программа не запакована. +1 Зачем так усложнять. Зачастую проверка банально ловится бряком на функцию CreateFileA(W), после чего через инлайн ей можно подсунуть ссылку на бэкап (нетронутый) exe. |
|
Создано: 22 марта 2007 17:07 · Личное сообщение · #9 seeq пишет: Tolkin пишет: Просто обычные хуки что на прогу что на ее dll легко обнаруживаются. Первый раз такое слышу. Что ты подразумеваешь под "обычные хуки"? Я имею ввиду, что открыв любую программу под отладчиком, к которой например присоединено DLL от файрволла или другая, и смотрим начало интересующей нас API в нужной стандартной DLL, то сразу видим переход в тело другой DLL(видим установленный перехват). Программа и сама может контролировать наиболее нужные API на предмет установки хуков и просто молча их снимать. На даный момент это не под конкретную прогу. И нужно это именно скорее для создания видимости отсутсвия каких либо перехватов. (усложнения от разработчиков при исследовании кряка взлома их проги) |
|
Создано: 23 марта 2007 20:18 · Личное сообщение · #10 |
|
Создано: 24 марта 2007 13:26 · Поправил: Gelios · Личное сообщение · #11 |
|
Создано: 24 марта 2007 14:50 · Личное сообщение · #12 |
|
Создано: 25 марта 2007 02:02 · Личное сообщение · #13 |
eXeL@B —› Программирование —› Неявный перехват API |