hexwords - extracts any words from a file that can be written as hex numbers
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:
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
. This provides a much larger selection of words that can be
matched, although the digits 3
cannot be used due to the
lack of any similar-looking letters. The digits and their corresponding
letters are given in the following table.
||O, o or Q
||I, i or l
||Z or z
||q or R
||S or s
||J or T
argument must be a valid dictionary filename but if
is omitted then hexwords
as the name of the dictionary file to use. If that
cannot be found then hexwords
will try /usr/lib/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.
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.
- --help [-h]
- Displays a quick-reference option summary.
- --match <exact|lower|upper|any>
- 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
- --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
- --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
- --version [-V]
- Displays the version number of the hexwords command.
The mpatrol manual and reference card.
Graeme S. Roy <email@example.com>
Copyright (C) 1997-2002 Graeme S. Roy <firstname.lastname@example.org>
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
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
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.