Blog. Just Blog

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

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

Пюре из перловой крупы и картофеля с жареным луком

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

Пюре из перловой крупы и картофеля с жареным луком

Сытный и простой гарнир из доступных продуктов - пюре из картофеля и перловой крупы с добавлением жареного лука. Может подаваться как самостоятельное блюдо.

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

День Рождения!

15.05.2021 | Категория: Всякая всячина | Автор: ManHunter

День Рождения!

Ну вот и произошел очередной инкремент счетчика лет. Все еще жив, за ежедневной рутиной все так же пытаюсь находить только хорошее и интересное. Есть планы, есть возможности, есть желания. Главное, чтобы на все хватило здоровья.

Просмотров: 268 | Комментариев: 18

Отслеживание загрузки dll в память процесса

13.05.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ранее я уже рассказывал, как можно легко и просто получить список динамических библиотек, загруженных в ваш процесс. Сегодня расскажу о возможности отслеживания загрузки и выгрузки DLL. Начиная с Windows Vista, появилась функция LdrRegisterDllNotification. С ее помощью в приложении регистрируется callback-функция, которая будет вызываться каждый раз, как только в ваше приложение будет загружена DLL или какая-то DLL будет выгружена из его адресного пространства. Установка обработчика выполняется одной командой:
  1.         ; Зарегистрировать обработчик загрузки и выгрузки DLL
  2.         invoke  LdrRegisterDllNotification,0,LdrDllNotification,NULL,Cookie
  3.         or      eax,eax
  4.         jnz     loc_error
Важное замечание. Как показала практика, в callback-функции не должно быть никаких открытий окон, вывода сообщений и прочих взаимодействий с интерфейсом. Это может привести к зацикливанию и падению приложения во время загрузки UI-библиотек.
  1. LDR_DLL_NOTIFICATION_REASON_LOADED   = 1
  2. LDR_DLL_NOTIFICATION_REASON_UNLOADED = 2
  3.  
  4. struct NOTIFICATION_DATA
  5.     Flags       dd ?
  6.     FullDllName dd ?
  7.     BaseDllName dd ?
  8.     DllBase     dd ?
  9.     SizeOfImage dd ?
  10. ends
  11.  
  12. proc LdrDllNotification NotificationReason:DWORD,\
  13.         NotificationData:DWORD,Context:DWORD
  14.  
  15.         pusha
  16.         mov     eax,[NotificationReason]
  17.         ; EAX -> действие с DLL
  18.         ; LDR_DLL_NOTIFICATION_REASON_LOADED = загружена
  19.         ; LDR_DLL_NOTIFICATION_REASON_UNLOADED = выгружена
  20.  
  21.         ; Получить полный путь до файла DLL
  22.         mov     eax,[NotificationData]
  23.         mov     eax,[eax+NOTIFICATION_DATA.FullDllName]
  24.         mov     eax,[eax+4]
  25.         ; EAX -> полное имя файла DLL
  26.  
  27.         ; Получить базовый адрес DLL
  28.         mov     eax,[NotificationData]
  29.         mov     eax,[eax+NOTIFICATION_DATA.DllBase]
  30.         ; EAX -> DllBase библиотеки
  31.  
  32.         popa
  33.         ret
  34. endp
При каждом вызове в callback-функцию передается причина вызова - загрузка или выгрузка DLL, а также заполненная структура NOTIFICATION_DATA, в которой содержится полный путь и имя файла библиотеки, базовый адрес загрузки и размер загружаемого образа. Зная эти данные, можно проверить, что за DLL пытаются подгрузить в наш процесс и принять соответствующие меры. Например, при попытке подгрузить в процесс модуль мониторинга, можно отключить некоторые ветки алгоритма или исказить выдаваемые данные, а можно просто завершить работу приложения. Если пойти дальше, то теоретически можно даже модифицировать в памяти загруженную библиотеку, нейтрализовав в ней то, чего она не должна делать с вашим процессом. Просторы для фантазии безграничны.

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

Исследование защиты игры "Шахматный конь"

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

Скриншот игры "Шахматный конь"

"Шахматный конь" - классическая головоломка, в которой надо фигурой коня обойти все клетки шахматной доски, причем на каждой клетке можно побывать только один раз. Игрушка требует регистрацию, хотя вроде никаких ограничений в ней нет. Ну ничего, лишний раз разомнем пальцы.

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

Поздравляю с Днем Победы!

09.05.2021 | Категория: Всякая всячина | Автор: ManHunter

Поздравляю с Днем Победы!

9 мая 1945 года закончилась Великая Отечественная война. Эта победа - символ чести, мужества, отваги и доблести наших отцов, дедов и прадедов. Но в тоже время это горечь потерь и утрат. Благодаря подвигу наших героев мы имеем мирное небо над головой, поэтому мы не забудем их никогда! И пусть больше ни одному поколению в будущем не придется испытать тяготы войны. С праздником всех вас, с Днем Победы!

Просмотров: 114 | Комментариев: 1

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