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.