> .:: Коллекция демонстрационных программ от Rouse_ ::.
Главная страница : Сеть : Windows API : Компоненты : Разное : Книги : Полезные ссылки : О сайте
 
Раннее исполнение кода в Delphi приложениях. 1 марта 2016 года



Опубликована статья описывающая методику раннего выполнения кода до передачи управления на точку входа в приложение.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Раннее исполнение кода
Скачать демопримеры: early_execution.zip



Включение/отключение второго монитора. 07 октября 2015 года



Небольшой пример, показывающий как можно отключить второй монитор и включить его обратно.


Размер архива: 2 093 байт
Скачать: display_on_off.zip


Работаем с Compound File. 31 марта 2015 года



Опубликована статья описывающая работу с составными файлами.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Работаем с Compound File
Скачать демопримеры: storage.zip



Кэширование и смартпойнтеры. 12 декабря 2014 года



Опубликована статья "Пара слов о кэшировании данных при чтении и смартпойнтерах" рассматривающая набор полезностей для программиста при работе с данными.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Пара слов о кэшировании
Скачать демопримеры: store.zip



Поддержка MultiTouch + Gestures в XE4 12 декабря 2014 года



Опубликована статья "Поддержка MultiTouch + Gestures в XE4" рассматривающая работу с интерактивными мультитач дисплеями.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Поддержка MultiTouch + Gestures
Скачать демопримеры: multitouch.zip



Утилита Process Memory Map. 14 ноября 2013 года



Данная утилилита является развитием старой идеи, выполненной мной ранее в виде демопримера.
По сравнению с прошлым вариантом в нее добавилось множество новых возможностей.
На данный момент она отображает следующие данные:

- кучи процесса
- данные по нитям, как то: стек, TEB, SEH фреймы и CallStack
- информация по подгруженным PE файлам с разбивкой на секции
- данные из PEB
- данные из KUSER_SHARED_DATA
Предоставляет возможность поиска блока данных по памяти процесса. Выводит список экспортируемых функций. Сравнивает снимки карт памяти и прочее...

Исходный код доступен на GitHUB: Open GutHUB Repository
Прямая ссылка: Download Sources
Исполняемый файл: Download Binaryes

Обновление: 27 мая 2016 года. Версия 1.0 alpha 10
Переделана работа с GUI в сторону удобства использования утилиты.
Добавлен режим сканирования памяти процесса на основании списка адресов памяти и их контрольных сумм.
Расширен вывод дизассемблера.


Карта памяти процесса. 14 ноября 2013 года



Опубликована статья "Карта памяти процесса" рассматривающая различные способы получения информации о процессе.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Карта памяти процесса
Скачать демопримеры: pmm2.zip



Использование сплайсинга. 14 июня 2013 года



Опубликована статья "Правильное применение сплайсинга при перехвате функций подготовленных к HotPatch" рассматривающая возможные ошибки при перехвате API функций.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Использование сплайсинга
Скачать демопримеры: intercept2.zip



Перехват вызовов API. 14 февраля 2013 года



Опубликована статья "Перехват вызовов API" рассматривающая пять различных видов перехвата и два метода внедрения кода.

На сайте размещен исходный код всех примеров к данной статье.
Читать в блоге автора: Реализация перехвата вызовов API
Скачать демопримеры: intercept.zip



Изучаем отладчик. 30 ноября 2012 года



Завершена публикация цикла статей "Изучаем отладчик".

В первой части рассмотрены возможности интегрированного в IDE Delphi отладчика, даны рекомендации по наиболее оптимальному его использованию и общие советы по конфигурации среды.
Читать в блоге автора: Часть первая

Во второй части статьи рассмотрена изнаночная сторона работы отладчика на примере его исходного кода, подробно рассмотрены механизмы, используемые им при отладке приложения, показаны варианты модификаций памяти приложения, производимые отладчиком во время работы.
Читать в блоге автора: Часть вторая
Скачать демопример ко второй части статьи: dbg_part2.zip

В третьей части статьи рассмотрено практическое использование отладчика на примере обхода защиты приложения, использующего некоторый набор антиотладочных трюков.
Читать в блоге автора: Часть третья
Скачать демопример к третьей части статьи: dbg_part3.zip



Детектирование эмулятора ключа. 7 сентября 2012 года



При работе с ключом защиты Guardant (не важно какой модели) разработчик использует соответствующие API, при этом от него скрыт сам механизм работы с устройством, не говоря уже о протоколе обмена. Он не имеет на руках валидного хэндла устройства, пользуясь только адресом шлюза (т.н. GuardantHandle) через который идет вся работа. В случае если в системе присутствует эмулятор ключа (особенно актуально для моделей до Guardant Stealth II включительно) используя данный шлюз разработчик не сможет определить, работает ли он с реальным физическим ключом, или его эмуляцией.
В данном примеры рассмотрены нюансы работы с ключем без использования GuardantAPI

Данный пример реализован в рамках статьи:
Простой способ обнаружения эмуляторов ключа Guardant

Размер архива: 8 693 байт
Скачать: enumdongles.zip


Уход от перехвата CreateFile(). 7 сентября 2012 года



Пример рализует три варианта прямого вызова ZwOpenFile() в обход шлюза Kernel-NTDLL.

Данный пример реализован в рамках статьи:
Отключение главной нити приложения от отладчика и уход от перехвата CreateFile()

Размер архива: 5 176 байт
Скачать: createfile.zip


Эмуляция GetLocalTime(). 7 сентября 2012 года



Обычным приемом при анализе стороннего приложения, является установка BP на API функциях и исследование вызывающего данные функции кода. Как контрприем, применяется эмуляция API функций внутри тела приложения. Например, при анализе триального приложения с привязкой ко времени, BP будет установлен на функции GetLocalTime(). Если проэмулировать ее вызов, то можно немного усложнить анализ кода приложения и/или уйти от различных утилит подменяющих дату, принцип которых построен на перехвате API.

Данный пример реализован в рамках статьи:
Эмулируем GetLocalTime

Размер архива: 2 894 байт
Скачать: getlocaltime.zip


Список установленных устройств. 15 апреля 2010 года



Небольшой пример работы с SeupAPI.
Отображает список установленных устройств. Немного не завершен до конца, но сейчас нет времени до его допиливания, поэтому выкладываю в том виде в каком он сейчас находится.

Размер архива: 368 781 байт
Скачать: devlist.zip


Доступ из сервиса к рабочему столу. 15 апреля 2010 года



Начиная с Windows Vista флаг SERVICE_INTERACTIVE_PROCESS игнорируется при создании сервиса, таким образом пропала возможность уведомить пользователя о каком либо событии штатным MessageBox.
Данный пример показывает как все-же можно выполнить такое действие из под неинтерактивного сервиса.

Размер архива: 4 845 байт
Скачать: servicenotifyer.zip


OLE DragDrop. 15 апреля 2010 года



Программный класс демонстрирующий принципы перетаскивания файлов из приложения в проводник в условиях когда перетаскиваемый файл отсутствует на диске (т.е. образ файла находится только в памяти вашего приложения).

Обновление: 21 сентября 2014 года. Версия 1.0.4.
- Решены проблемы работы под Windows Vista и выше.
- Добавлена поддержка юникодных версий Delphi (2010 и выше)
- Код полностью документирован
- Расширены демопримеры использования класса

Размер архива: 934 917 байт
Включает два исполняемых файла, хром может ругаться при скачивании архива, чтобы обойти - нужно в меню выбрать "Keep". Либо качаем второй вариант архива, без исполняемых файлов - только исходники.
Скачать с примерами: fwoledragdrop.zip
Скачать только исходники: fwoledragdrop_noexe.zip


Декомпилятор CHM файлов. 14 мая 2009 года



Небольшой пример демонстрирующий пример работы с интерфейсом IID_ITStorage на примере декомпиляции CHM файла.

Размер архива: 2 789 байт
Скачать: chmdecompile.zip


Безопасное отключение накопителей. 24 апреля 2009 года



Очередной пример отключения устройств (СD-ROM/Flash), но, в отличии от данного примера, работа идет непосредственно с самим устройством, а не с их подклассом. В деме рассмотрено остановка привода компакт дисков, корректное отключение флэш-накопителей, а так-же бонус ;) - определение текущего состояния лотка привода компакт дисков (открыт/закрыт). В общем - пользуйтесь...

Размер архива: 6 298 байт
Скачать: saferemove.zip


Карта памяти процесса. 12 февраля 2009 года



Данный пример строит полную карту памяти выбранного процесса.
Отображает все задействованные страницы памяти выбранного процесса, их размер и атрибуты доступа, показывает пути отмапленных образов файлов, размещение загруженных библиотек и исполняемых файлов, расположение их секций и характеристики секций, включая список директорий в секциях, адреса стеков потоков и их TLS.

Обновление 14 мая 2009 года.
Версия 1.02
Добавлен вывод куч процесса, а накже информации из PEB.

Размер архива: 18 388 байт
Скачать: pmm.zip


Список открытых файлов. 9 января 2008 года



Опять работаем с NtQuerySystemInformation, но в отличие от данного примера, на этот раз получаем список открытых файлов.

Размер архива: 4 578 байт
Скачать: enumopenfiles.zip


NTFS и OLE потоки. 9 января 2008 года



Небольшой пример, показывающий NTFS потоки файла. Также рассмотрен частный случай чтения свойств, хранящихся в OLE потоках.

Обновление 8 декабря 2008 года.
Версия 1.01
Исправлена ошибка при которой не выводилось имя самого последнего NTFS потока.

Размер архива: 4 635 байт
Скачать: ntfsthreads.zip


Включение/отключение Flash. 9 января 2008 года



За 2007-ой год я раз 150 видел на различных форумах вопросы плана: "Как-же всетаки отключить Flash-накопитель?". Этот код покажет как это сделать. (заодно и как его включить потом обратно :)

Размер архива: 2 293 байт
Скачать: disableflash.zip


Отображение краткой информации по окну. 24 июля 2007 года



Утилита для отображения краткой информации по окну под курсором.
Писалась как рабочий инструмент, весь код написан без использования VCL,
отсюда малый размер утилиты...
Подойдет тем, кто интерисуется реализацией приложений на Windows API.

Как пользоваться:
После запуска утилита добавляет иконку в трей, при нажатии на которую можно вызвать диалог настройки.
В диалоге настраивается горячая клавиша для активации приложения и возможность автозапуска.
По умолчанию горячая клавиша CTRL+F12. При ее нажатии активируется главное окно программы,
которое центрируется относительно текущего положения мышки на экране.
В окне выводится информация по окну, расположенному под кусором мышки.

Размер архива: 57 309 байт
Скачать: wndinfo.zip


Класс для вывода информации о системном трее. 16 ноября 2006 года



Программный класс для вывода информации о системном трее.
Показывает все иконки, добавленные в трей, их подсказки и приложенпие, добавившее иконку.
В качестве возможностей класса, добавлена возможность удаления любой иконки.
Класс работает начиная с Windows 2000 и по Windows 7 (на 64 битах не тестировался)
Демка работы приложена.

Обновление 30 мая 2011 года.
Версия 1.03
Исправления компонента в редакции Дениса Гвоздецкого (ака harisma). Добавлены изменения мешающие нормальной сборке компонента под Delphi 5.

Размер архива: 8 244 байт
Скачать: fwsystrayinfo.zip


Работа с системным логом событий. 2 сентября 2006 года



Программный класс работы с системным логом событий.
Реализованы методы чтения, записи, работа с бэкапом, слежение за изменением лога.
На его основе и для демонстрации возможностей класса, написано демо приложение - аналог стандартного просмоторщика событий.

Размер архива: 45 924 байт
Скачать: evntlog.zip


Реализация закладки свойств файла. 11 августа 2006 года



Достаточно полезная демка для программистов увлекающихся копанием в РЕ формате.
Выводит список импорта - экспорта выбранного РЕ файла на закладке свойств файла.
Собственно, помимо демо получения самих списков импорта/экспорта показывает работу с IShellPropSheetExt,
при помощи которого реализуется сама закладка, есть работа с активизацией контекста манифеста
(интересно будет тем, кто работает с диалогами под ХР),
в качестве вкусностей - юнит с реализацией функций ImageRvaToVa и ImageDirectoryEntryToData.
Надеюсь данная работа будет вам интересна.

PS: Для тех, кто будет собирать проект под Delphi версии 6 и ниже потребуются данные файлы.

Размер архива: 139 600 байт
Скачать: propsheet.zip


Работа с корзиной. 8 июня 2006 года



Пример работы с корзиной.
В принципе ничего интересного в нем нет, обычный вызов стандартных функций,
за исключением работы с шеллом, позволяющей выполнить некоторые нестандартные действия.

Размер архива: 43 027 байт
Скачать: rbin.zip


Работа с системным контекстным меню. 11 мая 2006 года



Пример отображения системного контекстного меню эксплорера.
Рассмотренна реализация IContextMenu2.

Размер архива: 4 409 байт
Скачать: syspopup.zip


Информация о процессах. 17 января 2006 года



Пример получения информации о процессах на основе NtQuerySystemInformation.

Размер архива: 9 247 байт
Скачать: taskmon.zip


Инжектирование кода. 25 декабря 2005 года



Простой пример внедрения и выгрузки библиотеки в удаленное адресное пространство.

Обновление 14 мая 2009 года.
Версия 1.01
Изменена процедура выгрузки библиотеки, раньше выгрузка была возможна только из своего процесса, из-за чего складывались некоторые сложности при портировании данного кода применительно к другим процессам.

Размер архива: 6 459 байт
Скачать: injectlib.zip


Работа с Structured Storage. 24 июня 2005 года



Класс для работы с структурированным хранилищем данных (Structured Storage).
Обновленная версия, исправлена неприятная ошибка приводящая к утечке памяти.

Размер архива: 5 508 байт
Скачать: storage.zip


Перехват АПИ. 16 мая 2005 года



Пример перехвата вызовов API функций, посредством изменения таблицы импорта.

Размер архива: 2 535 байт
Скачать: iatchange.zip


Memory Mapped Files. 11 февраля 2005 года



Небольшой пример, показывает принцип работы с Memory Mapped Files.

Размер архива: 2 690 байт
Скачать: mmf.zip


Разработка системного сервиса. 28 января 2005 года



Заготовка для сервисов не использующая VCL (пример включает в себя два пустых сервиса).

Размер архива: 2 455 байт
Скачать: twoservicedemo.zip


Дерево окон. 25 ноября 2004 года



Пример получения всех окон и их дочерних элементов в системе. Расширенная версия.
Отображает: класс и заголовок окна, имя модуля и его хэндл, а также PID процесса и языковую раскладку которому принадлежит окно.

Размер архива: 2 714 байт
Скачать: windowtree.zip

..: НАВИГАЦИЯ :..
..: ДОПОЛНИТЕЛЬНО :..
..: ОФФЛАЙН ВЕРСИЯ :..

..: Советую посетить :..



DRKB (Delphi Russian Knowledge Base)

Torry's Delphi Pages!


..: Счетчики :..

Яндекс цитирования




 
Наверх : Главная страница : Сеть : Windows API : Компоненты : Разное : Книги : Полезные ссылки : О сайте
Гостевая книга... : Рассылка... :
© 2004 - 2016 Александр (Rouse_) Багель
Designed By Point Click Kill Industries for OSWD.org