Иногда появляется необходимость в том, что бы какая-либо программа
запускалась параллельно с другой или программа подгружала нашу DLL’ку. Это может
потребоваться в широком спектре задач: начиная от простого виря/трояна/worm’а и
заканчивая какой-нибудь прогой для слежения за трафиком, или даже можно сделать
проверку пользователя – будем спрашивать пароль пользователя, и если он правилен
- запускать прогу (при желании можно прогу можно ещё и зашифровать, а при
правильном пассе - расшифровывать). Так что вариантов применения этой фишки
много. Для реализации задуманного мы воспользуемся внедрением своего кода в
"жертву-софтину”. Этот код будет маленьким и не будет менять размер "жертвы”. Он
будет всего лишь подгружать нашу дллку. При запуске модифицированной программы
управление сначала получит наш код, а потом управление получит (или не получит)
исходная программа (возможно сильно модифицированная :)).
В данной статье рассмотрим простейший пример keylogger (клавиатурный шпион). Keylogger (кейлоггер) — (англ. key — клавиша и logger — регистрирующее устройство) — это программное обеспечение или аппаратное устройство, регистрирующее каждое нажатие клавиши на клавиатуре компьютера (http://ru.wikipedia.org/wiki/Keylogger).
Запись последовательных команд не всегда может быть эффективным способом достижения поставленной цели. Очень часто в программе требуется выполнить одну и ту же последовательность действий несколько раз. Например, требуется вывести в текстовое поле (TMemo) числа от 1 до 100. Что делать в этом случае? Писать 100 строк кода? Конечно нет, это было бы просто глупо! Примеров можно привести множество. Причём во многих случаях число повторений может быть заранее неизвестно - в этом случае записать фиксированный набор команд просто невозможно. На помощь придут циклы. Цикл - это специальная конструкция языка, позволяющая запрограммировать многократное выполнение определённого блока команд. Каждый "проход" цикла называется итерацией. В языке Pascal существует три типа циклов - цикл с параметром (цикл по переменной), цикл с предусловием и цикл с постусловием. В данном уроке мы познакомимся с циклом по переменной.
На прошлом уроке мы познакомились с циклами и разобрались, как использовать цикл по переменной. Сегодня мы разберём оставшиеся два вида циклов - цикл с предусловием и цикл с постусловием. Они очень похожи и просты в использовании.
В предыдущих уроках мы между делом знакомились с типами данных. Всё это время речь шла о простых типах. Сегодня мы обобщим пройденное ранее, а также познакомимся с новым материалом, который необходимо знать в рамках темы "Простые типы данных". Осмысленно подходить к выбору типов данных для используемых в программах переменных необходимо по разным причинам. Во-первых, имея под рукой многообразие доступных типов и умело ими распоряжаясь, можно сократить объём памяти, требуемый программе для работы. Экономию в 1-2 байта никто не заметит, но если речь идёт о больших объёмах данных, эти байты могут вылиться во вполне реальные мегабайты. Во-вторых, разумный выбор типов данных позволяет избежать некоторых ошибок, причём как со стороны программиста (на этапе создания программы), так со стороны пользователя (во время использования программы).
Сегодняшнюю статью я хочу, в первую очередь, посвятить интерфейсу среды разработки Delphi. Этот вопрос достаточно остро стоит и среди программистов, недавно начавших изучение Delphi, и среди матерых прогеров, которые сутками не спят, погрузившись в процесс создания очередной программы.
Пример показывает, как можно отслеживать практически все события происходящий в Вашей оболочке. Код находится в процессе разработки, но уже содержит в себе большое количество возможностей.
Чем отличается программист от другого типа человека разумного? Я думаю, постоянным желанием подшутить над братом меньшим - Человеком нормальным, благо способов для этого - великое множество. В реестре Windows неограниченное количество мест для автоматического запуска программ - сейчас нас интересует расширение оболочки - контекстное меню Эксплорера. Займемся созданием +СОМ-сервера который будет запускаться при вызове контекстного меню. Сразу оговорюсь - на компе потенциального испытуемого должна стоять звуковая карта и, желательно, антивирус Касперского, чтобы испытуемому был хорошо известен вопль AVP при обнаружении вируса.
В конце приважу полный исходный текст моей программы на данный момент. Запустите Делфи, и создайте новы проект. Удалите весть текст программы и впишите туда этот.