keylogger

Basic keylogger in Go (no C deps)

Github星跟蹤圖

Keylogger

Capture global keyboard events on Linux

Build Status
GoDoc
License MIT

Notes

  • Only Linux based
  • Need root privilages

Installation

go get github.com/MarinX/keylogger

Getting started

Finding keyboard device

There is a helper on finding the keyboard.

 keyboard := keylogger.FindKeyboardDevice()

Which goes through each file device name to find keyword "keyboard"

/sys/class/input/event[0-255]/device/name

and returns the file event path if found

/dev/input/event2

If the function returns empty string, you will need to cat each device name and get the event number.
If you know already, you can easily pass it to constructor

keylogger.New("/dev/input/event2")

Getting keypress

Once the keylogger returns channel event, you can switch by event code as described in input_event.go
For start, you can listen on keyboard state change

keylogger.EvKey

Once you get desire event, there is a helper to parse code into human readable key.

event.KeyString()

NOTE

If you listen on keyboard state change, it will return double results.
This is because pressing and releasing the key are 2 different state change.
There is a helper function which you can call to see which type of state change happend

// returns true if key on keyboard is pressed
event.KeyPress()

// returns true if key on keyboard is released
event.KeyRelease()

Example

You can find a example script in example/main.go

Running tests

No magic, just run

go test -v

Creating key sniffer (needs update)

License

This library is under the MIT License

I don't drink beer, so energy drink will do :)

BTC: 19AtHE6dgKX3R9vJSCSKRyF1saexLcBRep

主要指標

概覽
名稱與所有者MarinX/keylogger
主編程語言Go
編程語言Go (語言數: 1)
平台
許可證MIT License
所有者活动
創建於2015-09-27 10:17:49
推送於2024-06-20 10:58:46
最后一次提交2024-06-20 12:58:46
發布數0
用户参与
星數244
關注者數8
派生數60
提交數25
已啟用問題?
問題數10
打開的問題數4
拉請求數8
打開的拉請求數0
關閉的拉請求數2
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?