FOSSPicks
elfcat
elfcat
is a tiny yet brilliant command for the terminal. Its cute name also hides its functionality; this is a command that outputs (cat
s) the contents of a binary executable (elf
) in a human-readable way, letting you explore the hidden secrets of your favorite applications from the command. Taking the name of a binary as its only argument, elfcat
produces output from the binary. The raw output isn't especially human readable and not especially accessible from the command line, but it's a lot more useful than using cat
to see a binary. The output is concatenated into an HTML file which (of course) looks best when dropped into a web browser. This is a brilliant idea because the HTML output is fully annotated to describe everything detected about the binary file. And if you wanted, you could still view it from the command line.
When loaded into a web browser, the main page shows the hex output of the raw binary of the file, alongside any ASCII decoded values, much like any hexadecimal editor. Above this is some general information about the executable, such as its size, object class, and type. The clever parts appear when you start to hover your cursor over the colored sections in the hexadecimal blocks of code. Annotations appear as text boxes on the right, informing you of what each section does and how it's linked to other blocks of code. It's still difficult to understand unless you have some knowledge of assembler, but it's a fascinating insight into what the binary contains and a lot easier than using other tools to decompile and view an executable, especially if all you want to do is find some text or see where different sections of an executable live within the raw file. Future features will include memory mapping visualization, which would be unique.
Project Website
https://github.com/ruslashev/elfcat
Stenotype emulator
Plover
Stenography is the ancient art of documenting something in a shortened form without losing any information, usually by replacing words and characters with more readily written symbols. That particular mode of stenography became known as shorthand – beloved by assistants everywhere. But the original stenography lives on and is now most commonly associated with court-of-law stenographers, transcribing everything from murder motives to matrimonial misdemeanors. Modern stenographers do this with a keyboard input device, called a stenotype, that looks more like an octave of a piano keyboard. The stenotype translates chords of keys into words and sentences almost instantaneously, enabling stenographers to type up to 300 words per minute, compared to the 60-80 most of us can manage.
This epic typing speed obviously has many advantages for Linux users, but stenotype machines are expensive, unconventional, and take a lifetime to master. Far better if you can experiment with stenography without the outlay, and that's exactly what Plover does. Plover translates multiple concurrent keypresses, roughly mapped to the same locations you'd find keys on a stenotype machine, into words and phrases preconfigured in editable and addable dictionaries. To do this properly, your keyboard will need to be able to support more than a few concurrent keypresses. This is known as N-key rollover (NKRO). While cheap keyboards may struggle (although some of the listed compatible keyboards are less than $30), gaming and other high-quality keyboards should be compatible. There are even some excellent DIY examples you can build, or you can start ripping key caps from your own keyboard. But even with Plover and the right hardware, learning stenography is hard. It will take a long time and plenty of practice before you even approach the input efficiency of your current setup, but the end result would definitely be worth it.
Project Website
https://github.com/openstenoproject/plover
Buy this article as PDF
(incl. VAT)