C/C++ User Group - A review by R. Murawski
At the February 18 meeting Bruce Arnold presented two simple programs --- one written in C, the other in C++ --- to dump a file in hexadecimal. (As usual, these programs and the source code may be downloaded from the ACGNJ ftp site.) These utilities proved to be an introduction to the main speaker and some of the techniques involved in "hacking". [The term 'hacking' is used to indicate a thorough engineering type investigation of an unknown for the purpose of learning and/or solving a problem. Ed.]
The main speaker, Alan Carmel, a self-professed "unemployed radioman", revealed he was much more than that. He presented a talk entitled "Breaking The Code". Alan spends his time installing FMS (Flight Management System) systems in airplanes. The FMS system writes DOS files to floppy disks: the disks become the flight log. Some of Alan's time is spent "debugging" spurious errant data that occur while the FMS system is aloft: this investigation of the log can reveal defects in navigational equipment information sent to the log (and to the pilot!) that, in the worst case, could cause a dangerous situation.
The flight recording is normally sent to the manufacturer, who processes it and returns the results on paper in a form that Alan did not find very useable. Unsatisfied with having reams of paper and no easy way to identify the few moments of the flight he was interested in, Alan began poking around with a copy of a FMS flight recording disk. Starting with a raw dump of the flight recording file, he noticed a pattern that repeated every 532 bytes. Armed with ingenuity and determination, he set out on a quest to decipher these flight recordings. His step-by-step explanations of identifying certain key moments of a flight log and using them to identify changing navigational information represented by byte patterns was very instructive.
Alan not only succeeded at his task of "cracking" the flight log's structure, but also used the information to write a Quick Basic program to monitor these flight recordings. His program can "jump" to a particular moment of a flight and can "play" the flight back at any speed. Using his program, Alan can quickly home in on flight anomalies. Although it might seem strange in a C/C++ group to present a Basic program as the implementation language, the presentation stressed the techniques he used in "breaking the code".