Как написать кейлоггер на Go

Написать кейлогер Go (Golang)

В этой статье я покажу, как написать простой кейлоггер на Go (Golang).

Еще по теме: Простой кейлоггер на Python

Как написать кейлоггер на Go

Программа использует пакет github.com/MichaelGatesDev/keyboard для прослушивания событий клавиатуры. Она создает новый прослушиватель клавиатуры и открывает файл с именем keylog.txt для хранения зарегистрированных нажатий клавиш. Затем программа начинает прослушивать события клавиатуры и записывает нажатие клавиши в файл. Для завершения используется сочетание клавиш Ctrl+C.

Такой кейлоггер на Go можно внедрить в сторонний процесс, в другое запущенное приложение, или закинуть в автозагрузку.

Код кейлогера на Go

Кейлоггер прослушивает события клавиатуры и записывает нажатия клавиш в файл с именем keylog.txt. Давайте рассмотрим подробнее.

Импортируются необходимые пакеты:

  • fmt используется для форматированного ввода-вывода.
  • os обеспечивает независимый от платформы интерфейс к функциям операционной системы.
  • os/signal позволяет программе получать и обрабатывать сигналы от операционной системы.
  • syscall предоставляет константы и типы для взаимодействия с операционной системой.
  • github.com/MichaelGatesDev/keyboard — это сторонний пакет, используемый для обработки событий клавиатуры.
  1. Основная функция определена.
  2. Слушатель клавиатуры инициализируется с помощью keyboard.NewKeyboard(). Если во время инициализации возникает ошибка, выводится сообщение об ошибке.
  3. Создается файл keylog.txt для хранения записанных нажатий клавиш с помощью os.Create(). Если возникает ошибка при создании файла, выводится сообщение об ошибке.
  4. Слушатель клавиатуры запускается с помощью kb.Start(). Если при запуске прослушивателя возникает ошибка, выводится сообщение об ошибке, и программа возвращается.
  5. Канал signalChan создается для приема и обработки сигналов (например, Ctrl+C) от операционной системы с помощью signal.Notify(). Указаны сигналы SIGINT и SIGTERM. Горутина запускается для ожидания сигнала на signalChan и останавливает кейлоггер при получении сигнала.
  6. Сообщение о том, что кейлоггер запущен, выводится на консоль.
  7. Запускается цикл для прослушивания событий клавиатуры с использованием <-kb.Events. Он ждет, когда произойдет событие.
  8. Внутри цикла, если есть ошибка при чтении события клавиатуры, выводится сообщение об ошибке, и цикл продолжается до следующей итерации.
  9. Если событие клавиатуры является событием освобождения клавиши ( event.Kind == keyboard.KeyRelease), клавиша записывается в файл журнала с помощью file.WriteString(). Ключ записывается с символом новой строки "\n", добавляемым к каждому нажатию клавиши.
  10. Цикл продолжает прослушивать другие события клавиатуры, пока программа не будет завершена, получив сигнал.

Это краткое объяснение предоставленного кода, демонстрирующего простую реализацию кейлоггера на Go.

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер и компьютерный ниндзя. Новые статьи в нашей Телеге!

Добавить комментарий