Sparkling gems and new releases from the world of Free and Open Source Software

ImHex

Hex editors are cool. Even when you don't know what you're doing, they can be a thought-provoking tool to play with. Hex, or hexadecimal, is a number system that represents 16 decimal values starting with 0 as a single digit, with 0 to 9 followed by a, b, c, d, e, and f (for the double digit decimals 10 to 15). This is useful because computers typically process binary values in multiples of 16 bits, which are easily represented with a single 0 to f character in hexadecimal. This is what hex editors do, and they're an acute reminder that despite all appearances, your computer really is just iterating over a set of instructions with a set of data. Even the humble xxd command, which simply creates a hexadecimal dump of its input, can reveal the hidden secrets of whatever binary files you have read access to, from the crude text strings programmers often compile into their code, to the data structures they use to hold values.

Click on a location in the hex editor and the disassembler will sync to whatever instruction it's associated with, whether it's 16, 32, or 64 bit, from the Amiga's 68000 to the ARM64.

ImHex has far more features than xxd and is likely to appeal to those pursuing more ambitious projects. It's one of the most powerful hex editors we've ever seen, with a sprawling desktop GUI that can quickly become complicated but that easily competes with popular commercial editors for other platforms. The "Im" in the project name is used to denote that ImHex has been built with Dear ImGui, a graphical interface library for C++. It's fast, powerful, and efficient, and it allows developers to quickly iterate over their design ideas. You can see this in the application itself, as every pixel has been made to count, with very little space for superfluous design. The main window acts as a dock for the various smaller panes you can enable or disable. These can either float freely, or be dragged into various docking positions within the main window. Every pane is filled with details, often with draggable borders to make use of any empty space. This can make the application difficult to use on a high-DPI display, but it's also excusable at the moment. The project is nascent, and while there's no way to currently configure the scaling, or change the default dark color palette, these options will surely come.

The lack of configurability does not mean functionality suffers in the same way. The development focus has obviously been on creating a full-fledged powerful hex editor first, and ImHex goes way beyond viewing and editing binary files. The editor is still the heart of the application, but it also lets you copy bytes, strings, arrays from popular languages, and various markups. These functions are augmented by the floating and dockable panes, which include a disassembler that can convert ARM, x86, PowerPC, SPARC, M68K, and other binaries into their native CPU instructions. This can help with debugging, but also with reverse engineering. It works well with the analysis pane, which visually shows the distribution of byte values across the file and can help you discern which parts are compressed or encrypted, or contain text or instructions. It will even attempt to decode magic file values, such as MIME type, and how you entropy values in a graph. There's a tools pane that shows ASCII and color values for quick reference, a string tracker that can help you track values through the file you're analyzing, and a regex replacer that can simplify making batch edits across a file. ImHex includes everything you need to analyze and unpick all kinds of files and executables from all kinds of legacy and modern systems and rip them into their constituent threads. Both figuratively and literally.

Project Website

https://github.com/WerWolv/ImHex

The data inspector instantly interprets a selected value as various data types, characters, numbers, dates, and even colors.

Stock trading simulator

TradeSim

It's difficult getting into trading stocks because it involves learning with real money. Even the free simulation sites are typically linked to real trading portals, which will then try to tempt you into their paid-for accounts after they've no doubt created a model for your behavior from the data you've provided them. TradeSim doesn't have that problem because it's the open source beginnings of a game you can play on your local machine, and it starts with importing a set of data you can use to test your instincts. The package includes access to Euro and GBP to USD currency databases from 2019 and 2020. They can be downloaded in-game, but also manually as an SQLite database from the project's GitHub account. With these imported, you create a new simulation from the start wizard, give yourself some arbitrary credits and start the game.

The aim of the game is to make a profit; buy at one price and hopefully sell at a higher price. The main window shows a candlestick chart for the beginning of the time period in the selected database. This candlestick chart will be familiar to anyone who's dealt with stocks or digital currency. They're like bar charts, with variably long rectangles going up or down, colored green or red respectively. Each rectangular bar has a variably long stick (their wicks) in the middle of the top and/or bottom sides, and they look a little like candlesticks. Either end of each bar is the open and close price for a time period, while each end of any wick is the highest and lowest price offered in the same period. They allow you to judge demand, and it's supposedly possible to recognize certain patterns as trends on which you can predict and capitalize. Press play in the game and time moves on automatically through the data. This is where the game element comes in, as TradeSim tracks your profits and losses as you buy time points in the chart. It's brilliantly executed. While it's early days for the game itself, we can't wait to see how it develops.

Project Website

https://github.com/horaciodrs/TradeSim

TradeSim won't help you understand the cynical entropy of bitcoin prices, but it will help you understand candlestick charts and trading volumes.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • R For Science

    The R programming language is a universal tool for data analysis and machine learning.

  • Tutorial – Matplotlib

    Matplotlib offers so many options that you may have trouble deciding on which ones to use for your plots.

  • Perl: Plotting GPS Data

    Perl hackers take to the hills with a navigation system that provides a graphical rendering of a hiking tour.

  • Orca

    Monitor and troubleshoot Linux system performance with the free and powerful Orca.

  • Gnuplot

    Use Gnuplot with command-line utilities.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News