It can often be the case that better software engineering practices may be promoted by the use of good software engineering tools. That is, tools that assist the engineer to better understand the current state of the work product. As we know, the final work product is normally some kind of binary, since this is what will be executed on the target computing environment, be it Windows, Linux, or some kind of embedded environment.
The thing is, binaries are a bit more difficult to examine and work with, because by definition they are machine readable, and not human readable. But why would we want to read a binary file? A general answer would be that we want to verify that the contents of a binary are what we expect it to be.
But before we continue, let’s take a look at a tool that gives us capabilities to examine computer binary files. The tool is HxD Hexeditor and can be accessed here.
The HxD Hex Editor is a technical but useful tool which can be a great help in software engineering. Here are some functions of the tool that can be helpful:
- Display
HxD provides the ability to display the contents of a binary file, along with character representation for printable constants that have been compiled into the binary. If there are version numbers, compile dates and timestamps compiled into the binaries, HxD can display these markers as readable. - Compare
HxD can be used to compare binary files to detect differences between two versions of a file. Have you ever had the experience of having a binary not behave the way you expected? Or maybe another similar or “the same binary” behaves differently? Having a tool such as HxD to do a binary diff between two files can show where and how the binaries differ. - Edit/Change
HxD has the ability to edit/change a binary file. Sometimes it may take a rather long time to recreate a binary. Whether this turns out to be on the order of 10 hours, or even a half hour, it can slow down the turnaround of software updates and testing.Also, by altering the binary directly, it is possible to test the results of the software fix in question before going through the effort of changing the source file and producing another binary. Of course, if such a binary change is made and found to be satisfactory, it is required to ultimately change the source as well! If this is not done, the issue the binary patch was intended to solve will reappear in the next compiled version of the binary.
The above uses of HxD only begin to scratch the surface of what the tool can be used for. Visit the website and see in what other ways HxD can assist you in improving your best practices in software engineering.
Next Steps:
- Contact SPK and Associates to see how we can help your organization with our ALM, PLM, and Engineering Tools Support services.
- Read our White Papers & Case Studies for examples of how SPK leverages technology to advance engineering and business for our clients.
Ronald Ross
Software Engineering Specialist
rross@spkaa.com