Быстрый поиск
Введите фрагмент названия статьи для поиска
Работа с сервисами Windows на Ассемблере
27.05.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Работа с сервисами Windows на Ассемблере
Давно хотел поэкспериментировать с сервисами Windows, наконец дошли руки. Еще со времен Windows XP я пользуюсь программой Service Tree от А.Н.Гусарова, но в ней имеются досадные косяки, поэтому есть большое желание написать что-нибудь подобное. А в этой статье будут складироваться все наработки по теме сервисов.
Читать статью целиком »
Просмотров: 1717 | Комментариев: 15
Отслеживание загрузки dll в память процесса
13.05.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ранее я уже рассказывал, как можно легко и просто получить список динамических библиотек, загруженных в ваш процесс. Сегодня расскажу о возможности отслеживания загрузки и выгрузки DLL. Начиная с Windows Vista, появилась функция LdrRegisterDllNotification. С ее помощью в приложении регистрируется callback-функция, которая будет вызываться каждый раз, как только в ваше приложение будет загружена DLL или какая-то DLL будет выгружена из его адресного пространства. Установка обработчика выполняется одной командой:Code (Assembler) : Убрать нумерацию
- ; Зарегистрировать обработчик загрузки и выгрузки DLL
- invoke LdrRegisterDllNotification,0,LdrDllNotification,NULL,Cookie
- or eax,eax
- jnz loc_error
Code (Assembler) : Убрать нумерацию
- LDR_DLL_NOTIFICATION_REASON_LOADED = 1
- LDR_DLL_NOTIFICATION_REASON_UNLOADED = 2
- struct NOTIFICATION_DATA
- Flags dd ?
- FullDllName dd ?
- BaseDllName dd ?
- DllBase dd ?
- SizeOfImage dd ?
- ends
- proc LdrDllNotification NotificationReason:DWORD,\
- NotificationData:DWORD,Context:DWORD
- pusha
- mov eax,[NotificationReason]
- ; EAX -> действие с DLL
- ; LDR_DLL_NOTIFICATION_REASON_LOADED = загружена
- ; LDR_DLL_NOTIFICATION_REASON_UNLOADED = выгружена
- ; Получить полный путь до файла DLL
- mov eax,[NotificationData]
- mov eax,[eax+NOTIFICATION_DATA.FullDllName]
- mov eax,[eax+4]
- ; EAX -> полное имя файла DLL
- ; Получить базовый адрес DLL
- mov eax,[NotificationData]
- mov eax,[eax+NOTIFICATION_DATA.DllBase]
- ; EAX -> DllBase библиотеки
- popa
- ret
- endp
Читать статью целиком »
Просмотров: 1544 | Комментариев: 1
Как узнать состояние и размеры панели задач Windows
05.05.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Для получения рабочей области экрана, доступной вашему приложению, может потребоваться определение положения и размера панели задач. Управлять положением и состоянием панели задач пользователь может через меню свойств или через апплет настроек. А для получения всех необходимых данных надо воспользоваться функцией SHAppBarMessage. Но сперва структура и несколько констант, которые будут нам нужны для работы.Code (Assembler) : Убрать нумерацию
- struct APPBARDATA
- cbSize dd ?
- hwnd dd ?
- uCallbackMessage dd ?
- uEdge dd ?
- rc RECT
- lParam dd ?
- ends
- ABM_GETSTATE = 4
- ABM_GETTASKBARPOS = 5
Code (Assembler) : Убрать нумерацию
- mov [abd.cbSize],sizeof.APPBARDATA
- invoke SHAppBarMessage,ABM_GETTASKBARPOS,abd
- ; [abd.uEdge] -> положение панели задач
- ; 0 = слева
- ; 1 = сверху
- ; 2 = справа
- ; 3 = снизу
- ; [abd.rc] -> координаты Панели задач
Читать статью целиком »
Просмотров: 879 | Комментариев: 0
Проверка подлинности Windows
29.04.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Проверка подлинности Windows
Не только в самой Windows есть средства для проверки собственной активации, у обычных приложений тоже имеется возможность проверять подлинность операционной системы, на которой они запущены. Сегодня познакомимся со способами, которые для этого используются.
Читать статью целиком »
Просмотров: 1626 | Комментариев: 9
Включение регистрозависимых имен файлов на NTFS-дисках
27.04.2021 | Категория: Software | Автор: ManHunter
Включение регистрозависимых имен файлов на NTFS-дисках
Век живи - век учись. Сколько лет работаю с дисками, отформатированными в NTFS, но лишь недавно узнал, что эта файловая система поддерживает регистрозависимые имена файлов, как это "из коробки" работает на *NIX-системах. То есть в Windows можно сделать так, чтобы файлы "FILE.TXT" и "file.txt" считались разными файлами и при этом одновременно существовали в каталоге.
Читать статью целиком »
Просмотров: 2761 | Комментариев: 7