ARPAVAX:reeds (07/31/82)
SPOILER :: How to Cheat at Rogue :: SPOILER I have written a paper describing a fairly effective way at cheating at all versions of rogue that I know about. I will send copies of nroff source to anyone who mails me at reeds@ucbarpa or at ucbvax!ucbarpa!reeds Here is one of the Berkeley rogue score files. At least 5 of these 10 scores were obtained by my method: Top Ten Rogueists: Rank Score Name 1 36386 Cheater: quit on level 10. 2 16968 peter: quit on level 28. 3 37856 Quentin Quasitbane (aka the Clri Kid).: quit on level 1. 4 14281 T. P. Mustystump: A total winner on level 26. 5 12563 Frankenstein: A total winner on level 26. 6 11966 Frankenstein: A total winner on level 26. 7 6194 Leonardo: quit on level 20. 8 6141 Fsck the Yeti: A total winner on level 27. 9 4937 Rogue Runner: quit on level 19. 10 3645 The King of Beers: killed on level 16 by an invisible stalker. Here, as a further come-on, are a few of the opening paragraphs: General Idea of Cheating at Rogue This method of cheating works on all versions of rogue that support saved game files. The author has tried it out on versions 3.6, 4.22, 5.2 and 5.25C of rogue running on 4BSD VAX UNIX. The general idea is to forge saved game files. This is easiest done by taking an existing saved game file and altering it to suit the cheater's convenience, much the way a check forger (for reasons of his own) will take an existing check and alter the amount the check is made out for. The cheating is carried out by a program which I call rascal. You use it this way. Suppose you have been playing for a bit and decide to cheat. Save the current game with the capital S command, say in file savegame. You are now talking to the UNIX shell again. Type the command % rascal savegame You will be asked what you want your score to be, and possi- bly some other questions too. Answer them. Now the file savegame has been doctored. Resume your game with % rogue savegame and away you go! This is a simple score-inflating use of the rascal com- mand. Another use is as follows. Suppose you have come to a tight spot in the play of the game. You do not know whether to attack or to retreat. Save your game in file savegame, and execute these commands: % cp savegame s1 % cp savegame s2 % rascal s1 % rascal s2 % rogue s1 % rogue s2 This way you can explore two "parallel universes", having your cake and eating it too... This program is targeted at a given version of rogue. If a new version of rogue comes out, rascal must be rewrit- ten. The bulk of this report is devoted to showing how this rewriting should be done. The steps are explained in successive sections of this report. They are, briefly: 1 The saved game file is an encrypted version of the data space of the rogue command at the moment you saved the game. You must break the encryption scheme. 2 The layout of the data in the saved game file must be discovered so that you will know which entries to forge. This task is made much easier by having a source listing and name list for the current verson of rogue. In any case it is very easy to find cell loot which contains the players current fortune. 3 Rogue contains code guarding against the kind of cheat- ing described here. You must defeat this code. All of these steps take about an hour or two to carry out. Appendix B contains a sample source for rascal suit- able for cheating at one of the versions of rogue available on the Berkeley campus.