Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 (Tek) 9/26/83; site mako.UUCP
Path: utzoo!watmath!clyde!burl!hou3c!hocda!houxm!houxz!vax135!cornell!uw-beaver!tektronix!orca!mako!tims
From: tims@mako.UUCP (Tim Stoehr)
Newsgroups: net.games.rogue
Subject: Re: patching rogue?
Message-ID: <163@mako.UUCP>
Date: Fri, 8-Jun-84 11:58:10 EDT
Article-I.D.: mako.163
Posted: Fri Jun  8 11:58:10 1984
Date-Received: Sun, 10-Jun-84 00:17:03 EDT
References: <611@osu-dbs.UUCP>
Organization: Tektronix, Wilsonville OR
Lines: 23

Yes, it's quite possible to patch rogue.  If you have a version with a
wizard password, then a likely attack is to 'adb' rogue. First obtain a
assembler listing on paper piping adb output to a file and line printing
the file.
Then find the strings "wizard's password: ", "sorry" and "you are now
as smart as Ken Arnold ..." with adb in the data space of the rogue
object.  Write down the address of these strings and then 'grep' for
them in the the assembler listing file.  You will find that these
string addresses are localized in the code, and you can see where they
are being printed and why.  You can either patch in an instruction to
do something nice, or set a break-point, and then 'continue' at a
convenient place.  When I did this, I got the game to toggle me from
wizard mode and back at the touch of the ^P key.  Once wizard, you
may create any object you want, go up and down at will, increase your
experience and Hp, or just about anything.  Once this is done, however,
and you've explored the possibilities, the fun doesn't last very long.
I'm sure other more subtle things can be done, like finding out where
your strength is incremented, and add 10 instead.  The same method
mentioned above should work with other strings, although you may
have to trace subroutine calls and returns.
In any case, you must have your own readable, writable copy of rogue
to do any of this.  Good luck, and remember, cheating is the only
way to beat that stupid game.