Blog. Just Blog

Быстрый поиск

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

Как защитить DLL от выгрузки через FreeLibrary

07.11.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
Небольшой трюк, позволяющий защитить вашу DLL от выгрузки из процесса при помощи функции FreeLibrary. Например, если процесс обнаружил инжект посторонней библиотеки в свое адресное пространство и пытается от нее избавиться.

Сперва немного теории. При вызове функции LoadLibrary увеличивается на единицу внутренний счетчик загрузок, но повторной загрузки библиотеки не выполняется. При вызове функции FreeLibrary, соответственно, этот счетчик уменьшается. При достижении счетчиком нулевого значения библиотека выгружается из памяти. На этом основан метод "защиты" от выгрузки, когда в самой DLL несколько раз дополнительно вызывается LoadLibrary, тем самым увеличивая счетчик загрузок. Но ведь никто не мешает вызвать FreeLibrary сто или сто тысяч раз подряд, пока счетчик не будет обнулен. Поэтому я взял слово "защита" в кавычки.

Правильным способом защититься от выгрузки DLL из целевого процесса будет использование функции GetModuleHandleEx с флагом GET_MODULE_HANDLE_EX_FLAG_PIN. Функция должна вызываться из DLL. В этом случае загруженный модуль будет оставаться в памяти вплоть до завершения основного процесса, независимо от того, сколько раз будет вызвана функция FreeLibrary.

Просмотров: 130 | Комментариев: 0

Как получить список поддерживаемых кодировок

05.11.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter
Сегодняшний небольшой пример кода - получение списка всех поддерживаемых кодировок в системе. Примерно такой список можно увидеть в меню сохранения в текстовых редакторах или в браузерах, когда надо выбрать кодировку страницы. Если ваше приложение умеет работать с разными кодировками, то значит должно уметь и получать их список.

Начинаем с констант и структуры, которые отсутствуют в FASM.
  1. CP_SUPPORTED = 0x00000002
  2.  
  3. MAX_LEADBYTES   = 12
  4. MAX_DEFAULTCHAR = 2
  5.  
  6. struct CPINFOEX
  7.         MaxCharSize        dd ?
  8.         DefaultChar        rb MAX_DEFAULTCHAR
  9.         LeadByte           rb MAX_LEADBYTES
  10.         UnicodeDefaultChar dw ?
  11.         CodePage           dd ?
  12.         CodePageName       rb MAX_PATH
  13. ends
Для получения списка всех доступных кодировок надо вызвать функцию EnumSystemCodePages с параметром CP_SUPPORTED или с параметром CP_INSTALLED, если надо узнать только список установленных.
  1.         ; Получить список поддерживаемых кодировок
  2.         invoke  EnumSystemCodePages,CodePageEnumProc,CP_SUPPORTED
Другим параметром передается адрес функции обработчика, которой будут поочередно передаваться идентификаторы кодировок.

Читать статью целиком »
Просмотров: 250 | Комментариев: 0

Исследование защиты программы BurnAware Professional

02.11.2023 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы BurnAware Professional

BurnAware Professional - мультимедийный комбайн для работы с CD и DVD дисками, а также образами дисков. Состоит из набора отдельных специализированных утилит, запускаемых из единой оболочки. Без регистрации работа большинства компонентов ограничена по времени, хотя в принципе очень странно делать платным подобный софт, ведь бесплатных аналогов предостаточно.

Читать статью целиком »
Просмотров: 203 | Комментариев: 0

Запеченная тыква с копченой индейкой

29.10.2023 | Категория: А еще я туда ем! | Автор: ManHunter

Запеченная тыква с копченой индейкой

Близится Хеллоуин, можно приготовить что-нибудь этакое из тыквы. Чтобы было вкусно и полезно. Например, запечь на гриле целую тыкву, нафаршированную овощами и мясными копченостями.

Читать статью целиком »
Просмотров: 157 | Комментариев: 0

Hotkey Helper 1.4

26.10.2023 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Hotkey Helper

Небольшая программа-помощник для программистов. Показывает коды нажатых клавиш, значения параметров wParam и lParam сообщений WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_UNICHAR, WM_APPCOMMAND (мультимедийные клавиши), WM_DEADCHAR и WM_SYSDEADCHAR (умляуты, акуты, ударения и подобные модификаторы), результаты работы функций GetKeyState и GetAsyncKeyState с переключателями *Lock и клавишами-модификаторами, а также коды горячих клавиш из поля msctls_hotkey32, "сырой" ввод с клавиатуры и информацию о физических устройствах ввода. Предусмотрен режим работы с юникодом и ANSI. Программа написана для личных нужд, но может быть пригодится кому-нибудь еще.

Читать статью целиком »
Просмотров: 2963 | Комментариев: 30

01 ... 05 06 07 08 09 10 11 ... 396
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 2 (0.0174 сек.) / Память: 4.5 Mb
Наверх