Putting a Hex On Things, Like Crow #8303

Today, I started experimenting with deliberate corruption of some image files.  It all started when I realized that my text programming editor would open (but not save) graphic files, like JPGs.  I had actually used that feature a little earlier when I made a screen capture of a JPG opened in that way, exposing its underlying hex/ANSI/OEM — I’ll try not to get into the weeds with this — by overlaying a JPG made from a screen capture of a dump of the hexadecimal code on a standard PSD file.  But now… I have started with this, my most recent posting — also seen here — of a “standard” straight JPG graphics file, my latest addition to a collection of images of crows and skies:

The next step was to use my hex programming editor* — stuff like this was in my toolkit during my thirty-five or thereabouts years as a computer programmer — to expose the underlying hex code and mess with it in a damaging way, so as to delete sections of code or cut and paste pieces of code randomly. This involves flying in the blind, as you cannot see in realtime the effects of the changes, but instead have to save the damaged file and hope you can open the result, itself an iffy proposition. Here below are a few variations that resulted from my random ravages of the code.

And here is a version that also incorporates layers of the textual representation of the hex code itself (like an exoskeleton) with yet another more conventional image from my Coronavirus series.

I intend to keep after this for a bit, to see if anything of interest arises. (I am reminded of an occasional technique I employ for my modern approach to “street photography” in which I hold the camera at 90 degrees at hip level and trip the shutter as I walk down sidewalks and across intersections, all without using the viewfinder or, often, not even looking in the same direction as the lens is pointing.  Maybe someday I will show some of those, too.)


* As most everyone probably knows, our digital world is run by binary on-off switches, zeros and ones.  While the earliest programming was literally done by directly flipping these switches, practical programming (and transistors and circuit miniaturization) quickly evolved to use systems of abstraction to get the job done.  A basic level of this ladder of abstraction is to use the hexadecimal number system (base 16) for better efficiency.  Modern programming languages are at a tremendous remove from the early coding tools and methods, but hex editors still have their place for repair of corrupted files and in computer forensics.

UPDATE, 4/5/21: After a little interwebs research today, I have discovered that my newfound technique is by no means original, as programming-oriented people have discovered such artifacts and bastardizations years ago, and some have even produced “glitch art”, particularly by corrupting frames of video files.

This entry was posted in experimental, my stuff. Bookmark the permalink.