spk-logo-white-text-short
0%
1-888-310-4540 (main) / 1-888-707-6150 (support) info@spkaa.com
Select Page

3 Ways That HxD Can Promote Software Engineering Best Practices

Written by SPK Blog Post
Published on August 21, 2014

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:

Ronald Ross
Software Engineering Specialist
rross@spkaa.com

Latest White Papers

The Hybrid-Remote Playbook

The Hybrid-Remote Playbook

Post-pandemic, many companies have shifted to a hybrid or fully remote work environment. Despite many companies having fully remote workers, many still rely on synchronous communication. Loom offers a way for employees to work on their own time, without as many...

Related Resources

How Model-Based Definition (MBD) Cuts ECOs by 41% and Scrap by 47%

How Model-Based Definition (MBD) Cuts ECOs by 41% and Scrap by 47%

Organizations are increasingly turning to Model-Based Definition (MBD) to revolutionize their engineering and manufacturing processes. By embedding rich, digital annotations directly into 3D models, MBD provides a single source of truth for product definitions. This...

Seamlessly Transition from AWS CodeCommit to GitLab

Seamlessly Transition from AWS CodeCommit to GitLab

In July of 2024, AWS announced that AWS CodeCommit would no longer be sold to new customers.  And thus begins the journey of winding down a product for AWS.  As AWS CodeCommit approaches its end-of-life, many organizations face a tough decision. Choosing where to...