[Sponsor link - S.F.T. Setup Gizmo - utility for quickly developing a SETUP for your application]
Stewart~Frazier Tools, Inc.
Web Utilities
NOTE: SOFTWARE AT THIS WEB SITE IS BEING PROVIDED TO YOU 'AS-IS' WITHOUT
WARRANTY. IN NO CIRCUMSTANCES SHALL STEWART~FRAZIER TOOLS INC. BE HELD LIABLE
FOR ANY CONSEQUENTIAL (OR OTHER) DAMAGES WHATSOEVER THAT MAY ARISE FROM THE
USE OR ABUSE OF ANY MATERIALS FOUND AT THIS WEB SITE. YOU MAY USE THEM
AT YOUR OWN RISK, PROVIDED THAT YOU AGREE TO THE TERMS OUTLINED ABOVE AND DO
NOT IN ANY WAY MODIFY THE SOFTWARE EXCEPT WHERE ALLOWED BY LICENSE AGREEMENT.
GNU-style UTILITIES
The following utilities have been written using the GNU 'autotools' utilities, and so
should build on any platform that is compatible with them. In some cases you'll find
that the programs have also been written so that you can get them to build under windows
without too much difficulty, using Microsoft's 32-bit compiler. Generally they are in
'tar.gz' format, with a compatible naming style for use as a package or port.
- Sort Demo - This is a
wxWidgets based application that was converted
from an MFC application (with some effort, but not THAT much) so that it could be
cross-platform capable. It has been tested under Win32, Linux, and FreeBSD. The
wxWidgets implementation must be properly installed along with any packages that
it depends on. Installing the 'xrc' library is also required. If you want to modify
the resources, you will also need the 'wxrc' application. Instructions for building
these from source are included with wxWidgets. FreeBSD and Linux users may install
'ports' or 'packaged' versions that contain the 'xrc' library, usually with a suffix
such as 'contrib'. In FreeBSD, the required ports are wxgtk2 and wxgtk2-contrib .
IMPORTANT NOTE
This application SPECIFICALLY demonstrates that it is possible to create a
cross-platform GUI application from an existing MFC application, with a reasonably
small effort, by someone who is familiar with both MFC and wxWidgets. Yes, I'm
available for contract work (see MY RESUME).
You can also download a ZIP
archive for easier use on Windows system. See 'README' and 'INSTALL' for build
instructions. The windows 'nmake' file is 'Makefile.w32'. Additionally, there is a
simple port written for FreeBSD. The 'shar' output (relative to /usr/ports) can be
downloaded HERE. Running
the 'shar' output as a script from '/usr/ports' will generate the appropriate files,
so that sortdemo can be installed like any other port on FreeBSD.
- helloworld - This is a
basic application framework demo, a 'hello world' application, with all files needed
prior to using the GNU autotools 'aclocal' 'autoconf' and 'automake'. To use this,
extract it into a directory, then follow the instructions in README.
By changing the file names and the information in 'Makefile.am' and 'configure.in',
as well as the other files (man pages, README, and so forth), you could adapt this
to your own needs to create a cross-platform application.
- quoted 1.0 - The
'QOTD Daemon' application, which installs itself as a daemon by default, but
also allows you to invoke it via inetd. Default port is 17 (the 'qotd' port).
Includes an easily edited list of quotes. This application has been tested on
FreeBSD, Debian Linux, and Interix. Please see the README file for more information
regarding your operating system.
For more information, you can go HERE.
NOTE: If you can create a patch to allow your operating system to install the daemon
startup scripts, please feel free to submit it. It is likely to only require an
appropriate entry in 'configure.in', added to an existing section.
The 'QOTD Daemon' listens on both TCP and UDP to a specified port. UDP access
requires sending a packet, though a zero-byte packet is sufficient to initiate a
response. TCP responses fork to create simultaneous connection handling, and so
this application can be used to demonstrate how to set up an internet service daemon.
The 'QOTD Daemon' is covered by a BSD-like license, so you are welcome to use it
in any way you see fit. It has been provided as a public service to the internet
community.
- crlf 1.0 - this is a utility
that allows you to add or remove the 'cr' character in an 'end of line' sequence,
for compatibility between MS-DOS or Windows and UNIX-like operating systems.
This utility can be compiled for WIN32, and handles multiple file names on the
command line (compatible with 'globbing' by *nix shells). You can also pass wildcard
specifications in quotes to avoid 'globbing', and recurse sub-directories.
For more information, see the enclosed README file in the distribution.
Windows Utilities
The following web utilites for Win '9x and Win NT/2k/XP are
currently available for free download. All '.zip' files are
compressed using
PKZIP 2.04g except
for the ones that contain long files, which were compressed using the
Windows NT version of PKZIP.
Some '.exe' files are self-contained setup utilities that extract
the appropriate components during setup.
For those applications that have no setup utility, please read the
'README.TXT' file for special SETUP instructions, as well as the
associated license agreement, which has been included along with
these applications as 'license.htm'.
Several of the following utilities were originally designed primarily for use with
Microsoft's Personal Web Server
with IIS (Internet Information Server), but none of the utilities
require either of these packages to be installed. In any case, many of these applications are very old and are not being supported.
- sftinetd.zip -
SFTInetD is a simple "TCP/UDP" port mapping service for windows.
It is relatively simple to configure, but comes with no warranty whatsoever,
so use it at your own risk.
In short, it allows you to listen on a specific TCP or UDP port and map it to a
different TCP or UDP port. Obvious uses are for a simple firewall or proxy server,
with the exception that there is no 'http proxy' or 'ftp proxy' or 'socks' service
available in this application. Its purpose is therefore limited to mapping a
a single IP:port to one or more IP:port combinations (a connect is attempted
'in order' until one succeeds if more than one is specified).
A 'less than obvious' use is to map 'localhost' addresses to different locations
or through a separate firewall, where you must connect to a particular port but the
firewall does not allow you to specify a different port. An example might be a 'hard'
connection to a device through a firewall that must use a specific port, but port
restrictions on your firewall do not allow use of this port. To get around this, you
could use 'SFTInetD' to listen on '127.0.1.1' to the correct port, then map it to
the firewall's listening IP and port.
An even less obvious (but still very useful) capability would be to map 'known
trojan horse' ports to either port 7 (echo) or port 9 (discard). This way if a
trojan horse application were to attempt to infect your computer, you would already
be listening on this port, making it less likely to do any real damage. Further,
you could log all attempts at accessing this port and find out if someone is trying
to probe you for vulnerabilities.
Other uses are possible as well,
- advent.zip -
This contains the source files for an ISAPI DLL that plays the classic 'RJR Cave Adventure'
game, 660 point 1991 version, via the internet. Games are saved to a directory
that's located off of the system 'temp' directory, and measures were taken to avoid
buffer overrun and other similar security holes. Source is covered by the
'GNU Public License' (www.gnu.org).
- gettime.zip (updated 1/1/2000) - This is a 'service'
that runs on Windows XP/2k/NT or Win '9x/ME, to synchronize your computer's clock with any
other machine that supports the 'daytime' service via TCP/IP (port 13). It is 'GNU'd
and source files are included. Installation is simple - type "gettime -install" and
optionally add a 2nd argument indicating the daytime server, and an optional 3rd argument
indicating local or GMT time. The default is the web site for the atomic clock in
Colorado, the same one that standardizes the world (GMT time).
Believe it or not, the previous version *actually* had a Y2k problem - it was due to a missing '='
in the code, so a 2-digit year was always treated as '1999'. It's fixed in the update that's
available for download at this time. And if I hadn't written it in 1999, I'd have fixed it
already...
Also, see 'readme.txt' (within the ZIP file) for more info on this application, how to set it up,
and so forth. The Compiled binary 'gettime.exe' has also been included so that you won't
have to build it yourself.
- ftpgiz.exe (update 11/14/99) - This is a
self-extracting EXE for a "'GNU'd source" ActiveX component with a twist that allows you to
perform FTP (including via SOCKS) directly or through an FTP proxy. It is currently an 'alpha'
but you're welcome to use it anyway. No guarantees, use at your own risk. Since the source
file is included (via GNU license) you are welcome to experiment with it, or use it as a guide
for your own code. It was written using Microsoft Developer Studio '98 and MFC (ATL stinks).
One outstanding feature is the ability for a VBScript application to create the ActiveX
component by using the 'FTPGiz.ObjectFactory' OLE object. Normally server-side IIS
scripts and '.vbs' scripts (Windows Scripting Host) can't create ActiveX components.
But a workaround is to create an OLE object that can... and it's part of the OCX.
- portscan.zip - A multi-threaded
port scanning utility for Win '9x and NT (updated 1/4/99 - bug fix). This application is
designed to scan a specific range of IP addresses for a particilar listening port, or all
listening ports on a specified IP address. There is minimal help available, but the source
files are included according to the
GNU general public license.
This application only scans for TCP ports. If you want UDP, you have the source.
The compiled EXE has been provided for you; However, if you wish to modify the source files
or build it yourself, you will need Microsoft Visual C++ 6.0 / Visual Studio 6.0 or later.
Last update 1/20/2005