It is now, as I write, 1997. The internet has become a combination library,
software warehouse, and television: more than ever before, a cracker's Web
Browser is as vital as his debugger, his disassembler, even his hex editor.
It is necessary, then, to trim these browsers so they do not hinder our
progress, and to tailor them to a style that suits us. ACP and YOSHi have
both done well with Netscape Navigator's windowing annoyances; I will here
demonstrate how to customize the application's user interface.<P>
<B>1. The Location Bar</B><P>
The best way to start out is with a string data search, as our targets are
going to be menus and buttons. As I was planning to do some extra work in the
.exe, I opened up Netscape in W32Dasm and got coffee while it was disassembling.
I exported the String Data Reference list into WordPad (Notepad being, alas,
not up to the task) and did a quick search for "http://", finding the string
values relating to the items we will be changing along (e.g., "http://guide.
netscape.com/guide/what'snew.html"). For the record, I found a number of strings
using BRW that were not in the W32Dasm disassembly.<P>
Here is where it gets interesting: I was scrolling through the string data
listing, waiting for my eyes to glaze over, when I cam across a command I knew--
"about:global", which when typed in the location bar causes the Netscape.hst
file to be dumped onscreen. The first thought that flashed through my mind was
"Undocumented commands!", and after many minutes of sifting through meaningless
strings I came up with the following list of location-bar commands:<P>
about:xxxx xxxx text appears on blank page (1.43K limit)
about: Displays the Netscape "About Box"
about:blank Displays a blank page
about:cache Dumps the contents of the URL cache
about:document The same as View->Document Info
about:editfilenew Opens a blank document called file:///Untitiled
about:global Shows the URL history from the Netscape.hst file
about:image-cache Dumps the contents of the image cache
about:license Displays the Netscape product license (snore)
about:memory-cache Displays the contents of the memory cache
about:plugins Displays stats on all of the plug-ins
File:/// Opens a file in the browser; .,.., drive letters are all valid
Javascript: Opens a Javascript console (OK, we knew this one...)
Mailto: Opens the send-mail dialogue box (OK, we knew this one too)
view-source: Same as View->Document Source<P>
It gets even better. First of all, remember that these go in the location bar,
and therefore one can place them in the href= parameter of an <a> tag--instantly,
lots of new web-page tricks. I experimented a bit with the about: command and
quickly learned that anything you type after "about:" will show up on a blank
document. I typed "about:When in danger or in doubt, run in circles, scream and
shout." There it was, in black, on a black page.<P>
So I experimented some more, typing "about:<center>When in <font color="ff0000">danger</font> or in doubt,<P> Run in circles, scream and shout.</center>", and sure enough it appeared in its full HTML-formatted glory. As good as document.writeln() without javascript!<P>
Of course the next thing I tried was dumping the entire source code of my tools
page (after changing the double quotes to singles, and vice versa) into the
href= parameter of an <a> tag that read, originally enough, TEST. I clicked it,
a new page loaded with maybe a tenth of my tools page displayed (due, of course,
to the limitation of a Windows edit control...effectively, the location bar can
take up to a 1.43K text file, as I found by testing).<P>
Now what are we left with? An undocumented "document.writeln()"-ish feature that
allows you to enter up to 1400 characters of HTML code (sans <HTML> and <BODY>
tags) directly from an <a> tag! And who says Netscape has no surprises.....<P>
<B>2. The Buttons</B><P>
The first thing to change is going to be the buttons--you know the ones, those
useless "Directory Buttons" that you always turn off because have horrible titles
like "What's New", "What's Cool", and "People". If you look in BRW you will find
the labels for thse buttons and the URLs that match them in strings 621-635.
Needless to say, you can edit the strings to reflect your six most-visited web
pages. I chose to remap them as follows:<P>
<LI>621 (What's New): from ...whats-new.html to http://207.30.50.126/fravia/academy.htm (New Title: HCU)
<LI>622 (What's Cool): from ...whats-cool.html to http://kryten.eng.monash.edu.au/gspamt.html (New Title: Net
Tools)
<LI>623 (Destinations): from ...index.html to http://www.hotmail.com (New Title: HotMail)
<LI>624 (Net Search): from ...search.html to http://cuiwww.unige.ch/eao/www/Internet/Nedashkovsky.html (New
Title: Search Engines)
<LI>625 (People): from ...white-pages.html to http://www.anonymizer.com/open.html (New Title: Anonymizer)
<LI>626 (Software): from ...upgrades.html to about:<applet codebase="file:///F|/Jdk/" code="AppletKiller.class" width=100 height=100>Applet Killer</applet> (New Title:
Applet Killer)<P>
Notice this last one: an application of the above principle, basically a one-
line web page that calls the compiled AppletKiller.class (watch it, this thing
makes your system very unstable) from the hard-drive. The rest of them are pretty
standard, your typical useful web pages...<P>
<B>3. The Menus</B><P>
But we are not done yet; there are still a couple of useless menus lurking
around here ("Directories" once again and also "Help", both of which use URLs
to define their actions)...you'll find their strings between 65000-65399, though
I would suggest editting only the URLs and changing the menus directly by editting