Здравствуйте, вы находитесь на домашней странице Фролова Андрея |
На данной странице я буду выкладывать некоторые наработки в области программного обеспечения. |
Гостевая книга
|
Good Day
//Good Day на www.256b.com//
Deep //Deep на www.256b.com// VVecto //VVecto на www.256b.com// Мои старые демки на асме в 256 байт. Решил дать ссылки для истории :). |
Module injection Почитал недавно про внедрение своей ДЛЛ в пространство чужого процесса и про то, как скрыть свою программу от всевидящего ока Windows Task Manager :) и сложилась в голове некая картина, которую решил реализовать. Итак - запуск своей ДЛЛ так, чтобы не было видно невооруженным глазом и/или внедрение своего кода в заданный процесс. Для внедрения используются два файла - главный ЕХЕ и внедряемый ДЛЛ, который по совместительству содержит код для внедрения. Программа устанавливает глобальный хук на сообщения WH_GETMESSAGE, что заставляет Windows внедрить нашу ДЛЛ в пространства всех процессов, которые успеют получить какие-либо сообщения за время внедрения. Это время весьма произвольно взято в количестве 1000 миллисекунд. После ожидания программа деинсталлирует хук, но главное мы получили - попали в адресное пространство каждого процесса, получившего сообщения за время внедрения. Таким образом, при инициализации копий внедряемой ДЛЛ мы проверяем текущий процесс на соответствие целевому процессу (с помощью анализа имени главного модуля приложения, в данном случае - explorer), загружаем нашу ДЛЛ (которая выгрузится уже после завершения целевого процесса) и создаем новый поток (thread) на специально подготовленную функцию в ДЛЛ. Все, теперь мы имеем поток в пространстве нужного нам процесса. Для примера этот поток раз в 100 мс просыпается и при нажатых LSHIFT и RSHIFT создает на С:\ файлы с именем в виде текущего времени в мс. Для излечения нужно с помощью Windows Task Manager выгрузить и опять загрузить explorer.exe. |
FPerformance Класс для точного замера времени. Работает на P5+, так как использует инструкцию RDTSC. Сам замеряет тактовую частоту процессора. Для сборки нужно подключить библиотеки и хидеры мультимедийных таймеров (см. Platform SDK). Использование - создать объект класса, вызвать метод Start, потом Stop и получить время в миллисекундах (double) с помощью метода GetDeltaTime. |
Color quantizator В квантизаторе используются два подхода для квантизации цвета. Первый - переделанный мной NeuQuant (автор - Anthony Dekker "NeuQuant Neural-Net Quantization Algorithm"). Второй - мой OctQuant, использует метод деления цветового пространства в виде восьмидерева. Исходные коды прилагаются. Запуск - в командной строке имя файла в формате 24bpp BMP. На выходе получаются файлы палитры в формате .act (понимается Фотошопом) и проквантованный BMP файл (тоже в 24 битах). С помощью директивы #define FCOLORQUANT_OCT можно выбирать между используемыми квантизаторами. |
Экспериментальный PPM компрессор В компрессоре используется классическая схема PPM-сжатия, порядок модели равен 5, применяется метод local order estimation (LOE), априорная оценка вероятности ухода и некоторые элементы наследования информации. Для хранения данных используется Ternary Search Tree (TST) и списки символов. Исходные тексты прилагаются (компилировать в Visual Studio .NET). |
falinc@ukr.net |