* May 2021: version 3.2 It's been a decade since 3.0 was released, wherein I noted my intention to update ebfc to support 64-bit ELF in the near future. ebfc is the only program in ELF Kickers that creates an ELF file from scratch, rather than working with an existing ELF file, and this made it trickier to support both 32-bit and a 64-bit targets in one program. However, at this point in time, it is wholly justifiable to simply drop support for 32-bit targets entirely (particularly with a program like ebfc, which is more intended to be a learning tool than an actual utility). So that's what I did. Along the way, I reworked ebfc's code to make it a little clearer and more consistent, and one or two features were added that didn't make it into the original 2.0 version. And, as I did ten years ago with the rest of ELF Kickers, the code has been cleaned up to be warning-free with current compilers. Finally, this release contains a handful of fixes to elfls, elftoc, and infect -- mainly for crashes on malformed input files. * November 2019: version 3.1a Another very minor update. This release includes a couple of bug fixes, and the --force-hex option to elftoc. Thanks to Aapo Rantalainen, Agostino Sarubbo, and Lars Lindqvist for bug reports and patches. * November 2016: version 3.1 It's been five years since the last version, and a handful of bug fixes (and one feature) have accumulated over that time. A quick rundown: - objres: Added --reference option to improve non-x86 support. - elftoc: Make signed chars explicit where needed. - elftoc: Bug fix in ELF header version check. - elfls: Bug fix in handling Elf32 on a 64-bit system. - Various changes to the Makefiles. - Fixes for some typos in the documentation and comments. Thanks to German Zyuzin, Lars Lindqvist, Douglas Mencken, Aapo Rantalainen, and Steven Honeyman (in no particular order) for bug reports and patches. * November 2011: version 3.0a This is a very minor update. Sofian Brabez supplied me with information to help ELF Kickers compile under FreeBSD. I've gratefully incorporated his changes. Raphaƫl Huck reported that sstrip's alteration to the e_shentsize field is flagged as invalid by file(1). This has been fixed. infect now attempts to reset the infected file's mtime. Not important, but why not. * May 2011: version 3.0 After a decade hiatus, I finally took the plunge and updated this package. With some effort I've managed to get a new version out in time for the ten-year anniversary of the last update. The most important change: All the programs (except ebfc) have been updated to deal equally well with 32-bit and 64-bit ELF files. This has been a long time coming (though it had to wait until I had a 64-bit machine of my own to test on). A very simple library, elfrw, has been added which hides many of the differences between 32-bit and 64-bit ELF files, allowing the smaller programs to support both types of files without significant code changes. The program objres has been added to the collection. The sample program infect has been added to the collection. All of the old programs have been cleaned up to avoid the new gcc warnings, use getopt_long, and in general brought more in line with my current programming style. elftoc in particular has had several sections rewritten. The most important change is that the build process reads the local copy of elf.h to find out which ELF macros are available on the current installation, instead of relying on a hard-coded list included in the distribution. elftoc also required lots of nearly-duplicate code in order to support both 32-bit and 64-bit ELF files. Man pages have been added for the utilities that didn't have them, for the sake of consistency if nothing else. The tiny programs have been removed from ELF kickers. Not because I don't love them any less, but they tend to suffer more quickly than the rest of the code from changes to Linux. In the last ten years I've had to modify nearly all of them at least once to keep them working with current kernels. (ebfc is the only utility that has not been updated for 64-bit. I intend to remedy this in the near future.) * May 2001: version 2.0a Two small bug fixes, reported to me by people who downloaded version 2.0, the details of which are lost to history. * April 2001: version 2.0 I began spelunking in the system header files and again, and discovered a large number of new definitions. I realized that the ELF standard could be going through major changes, and that having a version number is really necessary. elftoc updated to understand some of these new additions, and elsewhere restructured so as to make it easier to update it again once I understand the rest of them. Fixes for elftoc bugs that I noticed during the rewrite. elfls updated similarly to elftoc. Minor rewrite of sstrip to make the code more airtight and aesthetically pleasing. * March 2001 rebind added to ELF Kickers. date and snake added to the tiny collection. cat removed from the tiny collection (too uninteresting). Cleaned up all tiny programs and made them more stylistically consistent. Minor bug fix in elftoc. Documentation cleanups. * February 2001 Five of the tiny programs did not work under 2.2.17 and later 2.2 kernels due to a change in how Linux checks the ELF header. (Thanks to Francois-Rene Rideau, who pointed this out to me. Oddly enough, this new restriction does not seem to have made it into the 2.4.0 kernel. I am unsure if the change is confined to the 2.2 versions, or if it will resurface in a later kernel.) I succeeded in fixing two of the programs without sacrificing compatibility with 2.0 kernels or increasing the size. For the other three, I added new versions specifically for 2.2.17 (et al). * January 2001 keepalive added to the tiny collection. Removed -W option from the Makefile for ebfc (I thought I had done this already). New feature added to ebfc -- namely, the acceptance of compressed source files -- just for the heck of it. This file added. * August 2000 After installing a 2.2 kernel, I discovered that changes to the system header files and a new warning in gcc 2.95.2 caused several of the programs to generate numerous compiler warnings and errors. The errors were caused by a benign redefinition of a macro, and were suppressed by changing the inclusion order of the system header files in question. The warnings were due to my taking advantage of of the standard feature of omitting trailing initializers in the definition of a structure, and were suppressed by omitting the -W gcc option in the Makefiles, leaving just -Wall. ls added to the tiny collection. Bug fixes and minor improvements to the documentation. * July 1999 Initial release. Main programs: elfls, elftoc, sstrip, ebfc. In the tiny collection: true/false, hello, fgconsole, hexdump, cat, factor.