Привет.Ребята, а как можно узнать о защищенности программ протекторами.Это связано с внедрением длл и перехватом.Естественно он не работает.Вот хотелось бы как-то узнать о защищенности и выдать сообщение о невозможности перехвата. Как ,например это делает утилита APIS32 - выдает сообщение Protection Error Debuger Detected ! Можно ли сделать это средствами АПИ ,т.е узнать о невозможности перехвата или проблемах?
Все зависит от конкретной ситуации. К примеру, ты пытаешься вызвать VirtualProtect для региона памяти, функция возвращает 0 - следовательно инжект не возможен.
А если поточнее - что неработает, что ты пытаешься сделать? Если нужна универсальная проверка на запакованность - вычисляй энтропию. Только это не подойдет для простых криптеров, не пакующих, а только шифрующих программу.
Вообщем ситуация такова, что у меня есть некоторая программа для мониторинга файловой системы,которая работает методом внедрения длл в процессы и перехвата функций для работы с файлами.Однако на защищенных прогах перехвата нет. Вот и хотелось бы программным путем предупреждать,что перехват невозможен,и для данной программы он работать не будет.Типа этого. Я перехватываю с помощью Detours Однако при своей инициализации,все функции возвращают ок.Но функции,естественно,не прехватываются.. Вот и хотелось бы определять как-то-что перхват работать не будет или не овсем нормально.Вот так.
Twister Спасибо,конечно Если бы все было так просто Мне надо востанавливать удаляемые файлы,к примеру.Да и много чего Ну вообщем-это не то ) Гемморой насидел своей прогой.Проблема за проблемой... HoBleen и компания-а можно немного по моей теме.Подробней..Я пока разобрался,что такое энтропия (не считая моих знаний по физической химии еще на 2 курсе института),как все делается? Алгоритм нашел.Покажи ЧТО считать надо? Как добыть? Откуда? Спасибо
http://wasm.ru/article.php?article=packers2 , Начиная с "А запакован ли файл?". Считать надо энтропию файла процесса, факт пакованности которого ты хочешь выяснить.
Это означает только одно: выбран неверный подход к проблеме перехвата. При корректном методе перехвата совершенно не важно: упакован .exe или нет. Упреждаю возможные вопросы: Достаточно посмотреть на перехват с другой точки зрения.
Фух... Т хочешь сказать-без проблем перехватыватываются функции,если внедрится в процесс,защищенный Армадилой,к примеру? А как же защищенные секции? ) А защищаю свой код Армадилой,и ОЧЕНЬ часто даже вручную в помошью отладчика фиг ракрутишь функцию... Есть проблема,есть...
HoBleen я за эту статью и говорил.. Мне непонятно pSegment->Size-что это должна быть за величина или BYTE *pBuff=(BYTE*)Offset? Каким методом ее получить? Тут можно подробней? Делал вообще кто-то что-то подобное? Или только теория?
Случаем pSegment->Size не может быть DWORD modBaseSize;,а BYTE *pBuff=(BYTE*)Offset быть BYTE* modBaseAddr; из структуры MODULEENTRY32 ?
Offset - Начало блока данных, энтропию которых ты проверяешь pSegment->Size - Размер блока данных Да, если ты сканишь в памяти и, если (1) этот модуль еще не распакован и (2) прот не меняет значения этих полей (антидебаг). В случае (2) бери название файла модуля и анализируй его. P.S. А вообще и правда - перехватчик, изменяющий переходы на контролируемую функу ненадежен, надо вклиниваться в саму функу - хотя бы сплайсингом.
не стоит мешать в одну кучу все подряд. есть вполне конкретно поставленная задача: перехватить апи некого процесса под конкретные нужды. И причем тут + это? ps/ как в школьной задаче: 6 спичек - сколько можно собрать равносторонних треугольников? (ломать спички - нельзя). Достаточно выйти из ограничений привычных взглядов/рамок/пр... pps/ ничего личного, но если что-то заинтересовало но было не понятно - я оставлял контакт - никаких сообщений. ppps/ Сомнительно что все столь глабально, поскольку слабо верится, что в офисе народ ломится к security файлам via упакованные приложения. Но если все так - задача явно переходит из разряда "подскажите" в разряд "commerce".