Архив

Архив раздела ‘Программирование’

WinAPI: Взаимный контроль приложений на Delphi.

23 января 2009 2 комментария

Иногда в своих проектах необходимо реализовать возможность контроля запущенных экземпляров программ или возможность взаимного контроля зависимых друг от друга программ. Для решения этой задачи нам понадобиться получить список запущенных процессов.
Читать далее...

Python: Импорт структур C++ с помощью SWIG.

22 января 2009 Нет комментариев

Начнём с того, что такое SWIG. Итак, это мега-штука, которая предоставляет интерфейс скриптовым языкам (PHP, Python, Tcl, etc) к коду на C/C++. На официальном сайте есть несколько туториалов, которые вкратце показывают как можно применить SWIG для того или иного языка и python в их числе. Вроде при попытке повторить действия никаких ошибок не происходит, однако почему-то никак не получалось получить доступ к описанной в C++ структуре и объявленной там же переменной.

Итак, данный пост содержит немного подправленые инструкции из туториала с официального сайта SWIG для python.
Читать далее...

WinAPI: Получить список запущенных процессов на Delphi.

26 декабря 2008 4 комментария

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

WinAPI: Определение типа носителя и его серийного номера.

25 декабря 2008 5 комментариев

Иногда в программах необходимо использовать возможность проверки типа носителя или его серийный номер. Причины могут быть разными от банального контроля устройств в системе до средств защит использующих привязку к железу. Сейчас я вам покажу как с помощью API реализовать эту простую задачу.
Читать далее...

Python: Работа с потоками. Часть 2.

21 декабря 2008 Нет комментариев

Мы уже недавно рассматривали примитивную работу с потоками, а именно, запуск потоков и передача им параметров, использование замков и, по большому счёту, всё. Теперь пришло время изучить другие способы взаимодействия потоков в python'е.

Для лучшего понимания советую прочитать этот пост.
Читать далее...

Python: Работа с потоками.

10 декабря 2008 2 комментария

В данной статье будет рассмотрена реализация многопоточного приложения на Python'е. Сама задачка выглядит примерно так:
1. Главный поток запрашивает у пользователя md5-сумму какого-либо файла и директорию для поиска файла с такой же суммой. Получив эти параметры первый поток запускает 2й и продолжает свою работу (опять ожидает данных от пользователя).
2. Запущенный поток проверяет есть ли в БД приложения файл с таким хешом. Если есть - выводит результат, иначе, запускает 3й поток с такими же параметрами (путь и хеш) и по его завершении заново проверяет БД. Выводит результат.
3. 3й поток хеширует все файлы с помощью md5 по указанному пути и результат записывает в базу данных.
Читать далее...

Криптография: Шифр Вернама и его реализация на C++ и Delphi.

3 декабря 2008 17 комментариев

В криптографии шифр Вернама известен также как «схема одноразовых блокнотов». Решение является системой симметричного шифрования, которая была изобретена в 1917 году сотрудниками AT&T Мейджором Джозефом Моборном и Гильбертом Вернамом.

В 1949 годах была опубликована работа Клода Шеннона, где Шеннон доказал абсолютную стойкость шифра Вернама. В этой работе, Шеннон показал что не существует других шифров с подобными свойствами и его выводом стало следующее утверждение: шифр Вернама – самая безопасная криптосистема из всех имеющихся.
Читать далее...

Криптография: Шифр Виженера и его реализация на Delphi.

3 декабря 2008 29 комментариев

Немного теории. Шифр Виженера представляет собой усовершенствованную многоалфавитную систему шифрования (или, как её ещё называют, полиалфавитная). Идея шифра состоит в использовании в качестве ключа (кодовое слово) текст самого сообщения (открытого - не зашифрованного) или же шифрованного текста (закрытого). Кроме того, для усиления стойкости шифра, в качестве первого символа ключа берется случайным образом буква из алфавита. Авторами этой идеи являются Джероламо Кардано и собственно сам Блез де Виженер. Данный шифр также имеет другое название "шифр самоключ". Этот шифр Виженер описал в своей книге "Трактат о шифрах". В своем трактате Блез описал этот шифр следующим образом. В простейшем случае за основу бралась таблица Тритемия, в последствии которая получила название таблица Виженера.
Читать далее...

Безопасность: Защита исполняемого кода шифрованием.

23 ноября 2008 Нет комментариев

В данной статье будет приведён пример защиты исполняемого кода от различных анализаторов и прочей бяки. Данный способ может использоваться как для защиты кода от крякеров, так и для написания зловредного ПО (чего вам крайне не рекомендую), которое делает неизвестно что... код то зашифрован. Исходники на C++.
Читать далее...

Delphi: Контроль соединений c Internet.

19 ноября 2008 8 комментариев

Причиной побудившей меня написать эту статью была нестабильность работы соединения с Интернетом, которое довольно часто разрывалось. А стандартная функция ОС Windows ХР не справлялась с возложенной на нее обязанностью по восстановлению разорванного соединения. Плюс к этому, не так уж удобно «листать» системный журнал в поиске причины разрыва, или времени разрыва, или других каких логов.(Стоит только вспомнить эти ужасные времена, когда у «стрима» было аж по 4 обрыва. Сколько нерв попортили они людям) … прошу прощения, отвлекся ;) Приступим к решению этого вопроса. В качестве язык программирования будем использовать Delphi 7 версии.
Читать далее...

Python: Бесплатная отправка SMS через mail.ru.

18 ноября 2008 8 комментариев

В mail.ru агенте есть возможно одна полезная вещь - отправка до 50 sms в сутки с одного аккаунта. Протокол агента является открытым и его можно посмотреть на сайте, однако выложена не совсем свежая версия и не сказано ни слова об отправке sms, но это не проблема.
Читать далее...