Contents of the FAUXDBUG.DOC file
by David Roper
Version: JULY '92
Offered as Shareware to friends and the public.
This is NOT Public Domain, nor is it FreeWare.
Shareware means that if you use it, you pay for it.
Shareware means that if you DON'T use it, you DON'T pay for it.
Lighten up....I don't want you to WORRY about it. I just want
you to know that I'm TRYING to make enough money to buy a bigger
hard drive. If you CAN register, great, but PLEASE ENJOY FDB anyway.
Q - How do you pronouce FAUXdBUG?
A - Like this: FOE DEE BUG ... (Faux means False, like Faux Pearls, etc.)
Q - What does it do?
A - It allows a non-programmer to make changes inside an EXE or a COM file
without a lot of effort. You can change HEX values as well as
plain old simple words and strings. Actually, you can change any
ASCII values to any other ASCII values in ANY file. If you need to
change the SIZE of the words in a TEXT file, use CUTZIT.EXE instead,
another program by me. You can find a free copy on Compuserve.
Here's an idea for you. Get your FORMAT.EXE program, search for a "?",
question mark, change it to a BELL . When the formatting is over
and you are asked "Do you want to format another?", it will BEEP so
you will know it's FINISHED if you're doing something else at the time.
"Explain FAUXdBUG, please. What does it do?"
FAUXdBUG, abbreviated here as FDB, allows you to change X bytes to
X other bytes. That's 3 bytes to 3 bytes, 20 bytes to 20 bytes, etc.
It will not allow you to change 3 bytes to 2 bytes, etc. It won't.
It was designed to work in EXE and COM files which don't lend themselves
to decreasing and augmenting their size without re-compiling.
DEBUG (from DOS) has a 64K limit. FDB doesn't have a limit!
FDB is not as flexible as PC TOOLS or NORTON UTILITIES, but it's
easy to use and at $10, FDB is affordable for you to own and use.
(FAUXdBUG is NOT endorsed by Central Point Software or Peter Norton.)
Everything is Menu Driven. Easy to use by reading this DOC just once.
When you crank it up, FDB will ask you for the source file, that's
the one you're changing. Then it asks you for the name of the file
that you will be producing which will contain the new, changed bytes.
If you don't really want to Create a file (maybe you're browsing...)
then enter the word NUL for the new filename to be created. A NUL
device (like in DOS) will throw away output; no file will be created.
Also, if you press ENTER without a filename, NUL will be provided.
At no time will the original file be in danger. AND, if the filename
you select for the new file is accidentally already in use, you can't
accidentally "stomp" on top of it....FDB will quit to let you figure
out what is going on. Safety was the priority in this FDB design.
page 2 FDB
Next, you tell FDB the "word" to find and then you tell FDB what "word"
to change it to. For instance, change DECEMBER to NOVEMBER. They are
both 8 bytes long, so it's okay. If you want to change APRIL to " MAY "
be sure to add two spaces because APRIL is 5 characters and MAY is only 3. See the quotes?
They will be removed by FDB, so that " MAY " is five characters too.
See the extra 2 spaces with MAY? Use quotes anytime you need to have
spaces on the left or right side of a word.
If you want to change an 'exotic' HEX string like 1B 42 01 to 00 00 1B,
you can very easily. Of course, you can't enter a null character
from the keyboard so you enter the hex values as two digit values
inside a pair of square brackets. Here goes: [1B4201] No spaces!
The brackets will be stripped and the 3 HEX pairs will be formed
into 3 ASCII characters. Two null characters and an ESC look like this:
[00001B] The word 'BABY' would be , '6.75' is [362E3735]
This could be handy to change OLD Printer codes in EXE files.
This could be handy to change a VERSION NUMBER without re-compiling.
This could be handy changing all CAL state abbreviations in a .DBF file
from CAL (for California) to CA like this: Find CAL replace with "CA "
You could look for a string like in DOS' DEBUG, then come back later
after you have seen ALL YOU NEED TO SEE and change it. See NUL above.
You can mix and match HEX entry and "normal words" (aka a string).
Example: Find UP2 replace with 
Example: Find  replace with EX3
Example: Find  replace with 
Example: Find UP2 replace with EX3
These 4 examples above are are the same thing, said four ways.
(Hex 55 is decimal 85 which is the UPPER CASE letter "U", etc.)
Example: Find "RW " replace with 
Example: Find  replace with pug
Example: Find  replace with 
Example: Find "RW " replace with pug
These 4 examples above are are the same thing, said four ways.
These examples use "quotes" because I needed to specify a SPACE
character after the W, and you can't do that without using the quotes.
You could take a TEXT file with CRLF combinations (you know, 0D0A)
and change all [0D0A] to  spaces. Wow, what a long string!
Remember, the source file is never touched! ....and
FDB will ask you what to do EACH time it finds a pattern-match.
A pattern-match will be known as a HIT when you see it on the screen.
Small, little arrows will point to the HIT in question, showing both
the HEX value and the CHARACTER (If it can be printed on the screen.)
If a character cannot be printed, you will see ".." instead.
You will be given the chance to say Yes...change it, or No....don't.
In fact, there are 5 answers to select: Y, N, S, D, and Quit.
YES will get the change done only at that point, at the HIT showing.
NO is the default (ie, press enter, get NO). No change will be done.
SKIP will just skip through the file, counting. No changes will be done.
DoAll (DO ALL) will go ahead and Do All occurences without
asking each time....puts it on "Autopilot." You can STOP the
DoALL mode by tapping the Space Bar once. A small beep happens.
Quit (or ESCape) will quit. No new file will be made, either.
page 3, FDB
Once, I saw a program that would allow you to change COMMAND.COM
of your DOS so that the DIR inside it would be "dir". In that way
the uppercase DIR would never be found and you could have a DIR.EXE
or DIR.COM or DIR.BAT file in your path that would run instead.
If you see fancy HEX patterns in a book, use FDB to see if it's in
the file you have, or wherever, and then use FDB to change the values
using the square brackets [##xx##xx] to hold the HEX values ## and xx.
I hope you will find FDB easier to use than DOS DEBUG. It's safer....
If you use FDB a lot and you want to help me write new programs like
this, please register. I will send you instructions on how to get rid
of the SHAREWARE screen for your registration fee. It's only $10.
You'll feel good.... I'll be happy. I'm saving for a SCSI Hard Drive.
Print the file named FDB.REG (filled out) and aattach a check for $10.
If you don't want to print the file, heck, just send me your
name address and a check for $10. I'll figure it out, you bet.
Please tell me what diskette to use, 3.5 or 5.25 -- or you'll get 3.5.
You'll be on my mailing list for future developments on all new
utilities and programs of mine. I've been at this address for
over eight years. I'm not moving any time soon.
You'll get a notice for a free upgrade. I'll send you a postcard.
You can send me a formatted diskette, SASE mailer, and postage or...
if you don't want to bother with all that packaging, send me a check
for $3 ... that's all. I guess it depends upon how busy you are.
(You're paying for postage, diskette, mailer, and lunch if I have to
format diskettes and stand in line to buy postage, etc.)
If you are a software developer, I'll make you a SPECIAL VERSION
for YOUR SHAREWARE PROGRAM and sell you the rights to send it to
everybody with your shareware (like FDB.) You won't have to write it
and I'll get my hard drive even faster. I'll send you HOW TO USE it.
Including my secrets on how I did this one, so you can use this
Developer version to the best use without having to "think" a lot.
I'll send you the instructions for Registering the personal
version, too. So.... you'll get two programs to use, one to
send out, and one to keep for your own personal use. The two
programs will be FDB.EXE and FDB-TOOL.EXE. See the FDB-TOOL.REG file.
The $10 registration is for personal use of FDB only and you "cannot"
(read that as Should Not) send it out as a tool to use. Please
help me at the $25 level for the TOOL version. See the file in
this package called FDB-TOOL.REG for instructions. Thanks.
If you are a corporation, I will send you a SITE LICENSE to use
FDB for $25 and the instructions to "register" it. Yes, I take PO's.
A site license is good for any building "known" as part of the
address to which I'll send the instructions, 1 building or 50 of them.
See the file named FDB-SITE.REG for a form to fill out and send to me.
Individuals should personally register at $10, and corporations at
$25 which includes a personal registration along with the SITE license.
page 4, FDB
If you are in State Government or Federal government, I will send
you a site license for $25 and how to register it easily. A site
license is good for any building "known" as part of the address to
which I'll send the instructions, one building or 50 of them. That's
1 computer to 1000+ computers. Quite a bargain (?) Yes, I take
PO's. See the file FDB-SITE.REG for a form to fill out and send to
me. Looks a lot like the above, don't you think?
Sorry, I cannot do business with STATE government of NC. Write me
ON YOUR LETTERHEAD and we'll figure out what to do. You suggest.
If you have suggestions and you're registered, I'll listen.
If you have suggestions and you're NOT registered, I'll listen.
If you want to write me and you expect (desire) a response, then
please enclose a Self Addressed, Stamped Envelope for reply.
The above DOC file and prices are good until April 30, 1993.
The free upgrades are good for life when you send in a diskette,
mailer, and return postage....IF YOU'RE REGISTERED.
P.S. It may happen (as Murphy likes to say) that a string, or text,
or words, which you are searching for, will fall "across" the
end of one buffer and into the next buffer. FDB is written to
grab a buffer of 4096 bytes at a time which makes it so fast.
However, a word like "DIAMOND" MAY fall across the END of one
buffer and INTO the next buffer. So that one buffer contains
only "DIA" and the next buffer contains the "MOND" part. If you
want to make 'very' sure "DIAMOND" is not in a file, you can
change the BUFFER size from the command line and try looking
for "DIAMOND" again (use SKIP). To change the BUFFER size from
4096 bytes to another size, put "/BUFFER" on the command line
with the desired Buffer size after it. The allowed Range is 1
to 32767 bytes. Note that "/BUFFER" is not "/ BUFFER".
If you CAN'T FIND a string using the default 4096 bytes, then
try to use 4096 * 1.5 = 6144 bytes and then again at 4096
divided by 1.5 = 2731 bytes. That should cover them. You
math majors will quickly see that 2731 * 1.5 = 4096.5 instead.
You'll be reminded if you use the /BUFFER size option.
Example: a buffer size of 5200 bytes would look like this:
A:\>FDB /BUFFER 5200 BYTES
Example: a buffer size of 6666 bytes would look like this:
A:\>FDB /BUFFER 6666 BYTES
(you don't need the word BYTES, but it helps to read better,
therefore, you could have typed only: FDB /BUFFER 6666 )
Warning: I don't think DIET, LZEXE and other "shrinkers" should
be used on FDB. Always keep a copy safe for yourself, before
you squeeeze EXE files with these programs. Try it at your
own risk. It will work or it will not, it's that simple.