{"id":17226391,"url":"https://github.com/kernc/logkeys","last_synced_at":"2025-04-12T14:58:10.978Z","repository":{"id":35420635,"uuid":"39685633","full_name":"kernc/logkeys","owner":"kernc","description":":memo: :keyboard: A GNU/Linux keylogger that works!","archived":false,"fork":false,"pushed_at":"2022-12-21T03:56:31.000Z","size":299,"stargazers_count":782,"open_issues_count":70,"forks_count":251,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-04-12T14:58:07.016Z","etag":null,"topics":["cyber-security","cybersecurity","hacking","keyboard","keyboard-events","keyboard-listeners","keylogger","keylogging","keymap","linux","linux-keylogger","logkeys","security"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kernc.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog","contributing":null,"funding":".github/FUNDING.yml","license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"kernc"}},"created_at":"2015-07-25T13:09:24.000Z","updated_at":"2025-04-10T22:13:51.000Z","dependencies_parsed_at":"2023-01-15T20:41:40.941Z","dependency_job_id":null,"html_url":"https://github.com/kernc/logkeys","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernc%2Flogkeys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernc%2Flogkeys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernc%2Flogkeys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kernc%2Flogkeys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kernc","download_url":"https://codeload.github.com/kernc/logkeys/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248586249,"owners_count":21128997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cyber-security","cybersecurity","hacking","keyboard","keyboard-events","keyboard-listeners","keylogger","keylogging","keymap","linux","linux-keylogger","logkeys","security"],"created_at":"2024-10-15T04:16:05.399Z","updated_at":"2025-04-12T14:58:10.959Z","avatar_url":"https://github.com/kernc.png","language":"C++","funding_links":["https://github.com/sponsors/kernc"],"categories":[],"sub_categories":[],"readme":"logkeys - a GNU/Linux keylogger\n===============================\n\n[![Build Status](https://img.shields.io/github/actions/workflow/status/kernc/logkeys/ci.yml?branch=master\u0026style=for-the-badge)](https://github.com/kernc/logkeys/actions)\n\nlogkeys is a linux keylogger.  It is no more advanced than other available linux\nkeyloggers, notably lkl and uberkey, but is a bit newer, more up to date, it\ndoesn't unreliably repeat keys and it shouldn't crash your X. All in all, it\njust seems to work. It relies on event interface of the Linux input subsystem. \nOnce completely set, it logs all common character and function keys, while also\nbeing fully aware of Shift and AltGr key modifiers.\n\nInstallation\n------------\n\nSee [INSTALL](./INSTALL) for installation/build notes.\n\nUsage how-to\n------------\n\nAbuse the output of this software wisely.\n\nlogkeys is simple. You can either invoke it directly, by typing full command \nline, or use the provided scripts. There are two helper programs in this \npackage:\n\n- bin/llk, which is intended to start the logkeys daemon, and\n- bin/llkk, which is intended to kill it.\n \nbin/llk runs etc/logkeys-start.sh, and bin/llkk runs etc/logkeys-kill.sh.\n\nYou can use these two setuid root programs (llk and llkk) for starting and\nstopping the keylogger quickly and covertly. You can modify the .sh scripts as\nyou like. As the two programs are installed with setuid bit set, the root\npassword need not be provided at their runtime.\n\nDefault log file is `/var/log/logkeys.log` and is not readable by others.\n\nI suggest you first test the program manually with\n\n    $ touch test.log\n    $ logkeys --start --output test.log\n\nand in the other terminal follow it with\n\n    $ tail --follow test.log\n\nand see if the pressed keys match to those noted. If you use a US keyboard\nlayout, use -u switch. Make sure your terminal character locale is set to UTF-8\n\n    $ locale\n    LANG=xx_YY.UTF-8\n    LC_CTYPE=\"xx_YY.UTF-8\"\n    ...\n\nor alternatively, you need en_US.UTF-8 locale available on your system\n\n    $ locale -a\n    ...\n    en_US.UTF-8\n    ...\n\notherwise you may only see odd characters (like ꑶ etc.) when pressing character\nkeys.\n\nlogkeys acts as a daemon, and you stop the running logger process with\n`$ logkeys --kill`, or use the `bin/llkk` script.\n\nDocumentation\n-------------\n\nFor more information about logkeys log file format, logkeys keymap\nformat, and command line arguments, read the application manual, `$\nman logkeys`, or read [the documentation](./docs).\n\nTroubleshooting\n---------------\n\n### empty log file or 'Error opening input event device'\n\nAfter you run logkeys successfully, if you open the log file and see only the\n'Logging started...' and 'Logging stopped...' tag without any keypress\n\"contents,\" it is very likely that logkeys got your device id wrong.\n\nThis may also apply if you get the following error: `Error opening\ninput event device '/dev/input/event-1'`\n\nThe solution is to determine the correct event device id, and then run \nlogkeys with --device (-d) switch, specifying that device manually.\n\nThe procedure for manually learning the device id to use is as follows:\n\nAs root, for each existing device eventX in /dev/input/, where X is a number\nbetween 0 and 31 inclusively, write:\n\n    $ cat /dev/input/eventX\n\nthen type some arbitrary characters. If you see any output, that is the device\nto be used. If you don't see any output, press Ctrl+C and continue with the\nnext device.\n\nIf this happened to be your issue, *please* submit a bug report, attaching\nyour `/proc/bus/input/devices` file as well as and specifying which was the\ncorrect id.\n\n\n### logkeys outputs wrong characters\n\nIt is very likely that you will see only some characters recognized, without\nany hope for Shift and AltGr working even slightly correct, especially when\nstarting logkeys in X. In that case it is better to switch to virtual \nterminal, e.g. tty4 (Ctrl+Alt+F4), and there execute:\n\n    $ logkeys --export-keymap my_lang.keymap\n\nThen open my_lang.keymap in UTF-8 enabled text editor and manually repair any\nmissing or incorrectly determined mappings. From then on, execute logkeys by\n\n    $ logkeys --start --keymap my_lang.keymap\n\nAgain, see if it now works correctly (character keys appear correct when you\nare viewing the log file in editor), and opt to modify bin/llk starter script.\n\nIf you create full and completely valid keymap for your particular language,\nplease attach it to a new issue.\n\n\nFurther information\n-------------------\n\nRead the man page. Please read the whole man page. Thanks. :-)\n\nRefer to troubleshooting and FAQ sections in [the\ndocs](./docs/Documentation.md), for currently known issues, ways to\nresolve them, and any other information.\n\nReport any bugs and request reasonable features on the [issues\nlist](https://github.com/kernc/logkeys/issues).  When opening new\nissues, always provide a good summary and description.\n\nContribute\n----------\n\nYou are more than welcome to implement unreasonable features yourself, as well\nas hack the program to your liking.\n\nIf you have suggestions, or are a pr0 and can answer any of the questions in the source, please contribute:\n\n1. Fork this project\n1. Create your feature branch (`git checkout -b my-new-feature`)\n1. Commit your changes (`git commit -am 'Add some feature'`)\n1. Push to the branch (`git push origin my-new-feature`)\n1. Create new Pull Request\n\n\nLicense\n-------\n\nlogkeys is dual licensed under the terms of either GNU GPLv3 or later, or\nWTFPLv2 or later. It is entirely your choice! See COPYING for further\ninformation about licensing.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernc%2Flogkeys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkernc%2Flogkeys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkernc%2Flogkeys/lists"}