BabelBuster is a submitted portion of my Princeton University undergraduate thesis, advised by Andrew Appel. It was inspired by the proceedings and rulings in several court cases concerning the U.S. judicial system's treatment of source code with respect to First Amendment law. If source code can be machine translated to English and vice versa, is there a point in distinguishing between source code and English prose? This issue is also explored and elaborated upon by Dr. David Touretzky in his Gallery of CSS Descramblers.
As far as I can tell, the idea for such a translator was first introduced by Leevi Marttila's c2txt2c, which translated C programs into English that was unrelated to the original code. Thus, this was a kind of "encryption" of C into English. Later, Omri Schwartz wrote c2eng, which translated the C into text that described the actual functioning of the program.
BabelBuster was created with the vision that C source code can be machine translated into grammatically correct English that is easy to read, and that this English can be machine translated back into C. Has BabelBuster succeeded? Take a look and decide for yourself.
example1.c example2.c blowfish.c |
example1.e example2.e blowfish.e |
example1-from-english.c example2-from-english.c blowfish-from-english.c |
decss.e. For decss.c, see Dr. Touretzky's Gallery of CSS Descramblers.