HEXWORDS(1)
NAME
hexwords - extracts any words from a file that can be written as hex
numbers
SYNOPSIS
hexwords [options] [dictfile]
DESCRIPTION
- The hexwords command is a little tool that can be used to generate
hexadecimal constants from a dictionary of known words. Such numerical
constants can be used in source files for a variety of debugging problems, and problems with uninitialised variables are especially relevant
since these special numbers will stand out if seen from within a debugger. For example, here are some common (and some not-so-common) 32-bit
hexadecimal constants that can be used as debugging aids:
- word hex constant
- addedbad 0xaddedbad
allocate 0xa110ca7e
badlabel 0xbad1abe1
baseball 0xba5eba11
codebabe 0xc0debabe
codedbad 0xc0dedbad
deadbeef 0xdeadbeef
deadcode 0xdeadc0de
failsafe 0xfa115afe
feedface 0xfeedface
freedata 0xf4eeda7a
goodcode 0x600dc0de - As can be seen above, many decimal digits can be used to represent the letters that they most closely resemble, along with the hexadecimal digits A through F. This provides a much larger selection of words that can be matched, although the digits 3 and 8 cannot be used due to the lack of any similar-looking letters. The digits and their corresponding letters are given in the following table.
- digit letter
0 O, o or Q
1 I, i or l
2 Z or z
3 4 q or R
5 S or s
6 G
7 J or T
8 9 g
A-F A-F
a-f a-f - The dictfile argument must be a valid dictionary filename but if dictfile is omitted then hexwords will use /usr/dict/words as the name of the dictionary file to use. If that cannot be found then hexwords will try /usr/lib/dict/words and /usr/share/dict/words. The dictionary file must be a plain text file that contains one word per line, otherwise few to no words will be matched.
- The hexwords command currently makes use of several UNIX text processing commands in order to extract the words and their hexadecimal equivalents. As a result, the hexwords command is only likely to work on UNIX platforms or on systems which have the necessary commands installed.
OPTIONS
- --help [-h]
- Displays a quick-reference option summary.
- --match <exact|lower|upper|any> [-m]
- Sets the type of case-sensitivity to use. A setting of exact performs a case-sensitive comparison of all of the words in the dictionary file and the hexadecimal digits, whereas a setting of any does not. The lower and upper settings convert the words in the dictionary file to lower and upper case respectively before performing a case-sensitive comparison. The default case-sensitivity is exact.
- --maximum <count> [-u]
- Sets the maximum number of letters to match. None of the hexadecimal numbers displayed will have any more digits than this. The default is 8.
- --minimum <count> [-l]
- Sets the minimum number of letters to match. None of the hexadecimal numbers displayed will have any less digits than this. The default is 4.
- --version [-V]
- Displays the version number of the hexwords command.
SEE ALSO
mpatrol(1), mprof(1), mptrace(1), mleak(1), mpsym(1), mpedit(1), libmpatrol(3), libmpalloc(3).
The mpatrol manual and reference card.
http://www.cbmamiga.demon.co.uk/mpatrol/
AUTHOR
Graeme S. Roy <graeme.roy@analog.com>
COPYRIGHT
Copyright (C) 1997-2002 Graeme S. Roy <graeme.roy@analog.com>
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Library General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library
General Public License for more details.
- You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307,
USA.