
Быстрый поиск
Введите фрагмент названия статьи для поиска

Использование TEB для антиотладки
18.01.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Использование TEB для антиотладки
Структура TEB (Thread Environment Block), как и PEB (Process Environment Block), при грамотном использовании позволяет получить огромное количество полезной информации. Сегодня расскажу еще об одном малоизвестном антиотладочном трюке. Он основан на том, что при нормальном запуске приложения в поле StaticUnicodeBuffer структуры TEB не содержится ничего, а при запуске под отладчиком там обязательно оказывается название той или иной динамической библиотеки, используемой приложением.
Читать статью целиком »
Просмотров: 1497 | Комментариев: 14

Использование TLS для антиотладки
26.10.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter

Использование TLS для антиотладки
TLS (Thread Local Storage) - локальная память потока, предназначенная для связки данных с потоком. Эта структура изначально была создана для решения проблемы совместного доступа к данным в многопоточных приложениях. TLS бывают статичными и динамическими. Углубляться в эти дебри сейчас не будем, для этого есть Джеффри Рихтер с его книгой "Windows для профессионалов". Нас интересует только тот факт, что при использовании статичной TLS появляется возможность выполнять произвольный код до передачи управления на EP. Это можно использовать для обнаружения отладчика еще до того, как он получит управление над программой.
Читать статью целиком »
Просмотров: 2256 | Комментариев: 1

Использование SEH для антиотладки
18.10.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter

Использование SEH для антиотладки
В сегодняшней статье разберем использование SEH в качестве антиотладочного приема. Трюк старый, как бивень мамонта, опытным реверсерам обнаружить и обойти его не составит абсолютно никакого труда, а новичкам может быть интересно. Например, в исполняемых файлах, упакованных PECompact, управление с точки входа на процедуру распаковки передается именно таким способом.
Читать статью целиком »
Просмотров: 1708 | Комментариев: 0

Получение списка установленных программ
15.10.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Как получить перечень установленных в системе программ? Наиболее правильный способ - это обработка списка зарегистрированных инсталляций в реестре. Список инсталляций представляет собой пачку ключей в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, в каждом из которых содержится набор параметров с описанием установленной программы. Тут есть имя программы и название ее разработчика, ссылки на деинсталлятор, на папку, куда она была установлена, на ее иконку, дата установки и т.п. Каких-то второстепенных параметров может и не быть, но основные всегда присутствуют.
Список установленных программ
Надо понимать, что список включает в себя не все программы, имеющиеся в системе, а только те, которые были нормально установлены и зарегистрированы. Всякие портативные программы и программы с нестандартной установкой, естественно, в этот список не попадут.
Читать статью целиком »
Просмотров: 1632 | Комментариев: 1

Обработка критических ошибок с помощью VEH
23.08.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter

Обработка критических ошибок с помощью VEH
Продолжение темы, начатой в статье про обработку ошибок, где для этого используется механизм SEH. Принципиальное отличие VEH (Vectored Exception Handling) от SEH (Structured Exception Handling) в том, что обработчики VEH глобальны для процесса и позволяют обрабатывать абсолютно все исключения для всех потоков, тогда как при использовании SEH нужно писать отдельный обработчик на каждый поток.
Читать статью целиком »
Просмотров: 1166 | Комментариев: 3
