====================================================
SocksCap32 for Windows - Version alpha32-0.12-960812
====================================================
File: README

# Copyright (c) 1995, 1996 NEC USA, Inc.  All rights reserved.
#
# The redistribution, use and modification of this software is subject
# to the conditions set forth in the copyright document ("COPYRIGH")
# included with this distribution.

Thanks for trying out the alpha version SocksCap32.  Its purpose is
the same as the current beta 16-bit SocksCap (SocksCap16) however it
operates on 32-bit applications only under Win95 and WinNT.  It is
known to work with Microsoft's 32-bit TCP stack.  I have not tried it
at all with other 32-bit stacks at this point.

There are some new concepts with the SocksCap32 that you should be
aware:

1. In SocksCap16, once SocksCap is started up, all Winsock
   applications that are run are "socksified" and subjected to the
   access configuration of SocksCap.  In SocksCap32, application
   profiles must be registered with SocksCap32 and started from the
   SocksCap32 Control window to be "socksified" and subject to the
   access list.  Any applications started outside SocksCap32 control
   are not affected by SocksCap32.

2. Only 32-bit applications can be "socksified" by SocksCap32.
   However, under Win95, SocksCap16 can be running at the same time to
   handle the 16-bit applications.  Under WinNT, SocksCap16 doesn't
   run at all, unfortunately.  (Remember that if SocksCap16 is
   running, ALL 16-bit Winsock applications are "socksified".)
   
3. As with SocksCap16, SocksCap32 doesn't work with all network
   applications.

4. SocksCap32 and SocksCap16 will share the same configuration info so
   you don't have to have separate configs for each.

5. It isn't necessary to keep SocksCap32 running once a "socksified"
   application is running.


=========
0.0 Files
=========
COPYRIGH      - Copyright and restrictions.

FAQ           - Frequently asked questions about SocksCap.

HISTORY       - History of changes between versions.

README        - This file.

SC32.EXE      - The SocksCap32 executable.

SC32LNCH.EXE  - The SocksCap32 application launcher.  This is used
		by SC32.EXE to launch applications.

SCORCARD      - List of known applications that SocksCap32 has been
		successful or unsuccessful with.

SOCKS32.DLL   - The DLL for the SocksCap32 package.


================
1.0 Requirements
================
- A PC running Win95 or WinNT.

- A properly set up and functioning Winsock stack.

- A functioning SOCKS server.

SOCKS.CSTC version 4.x.x is available from
	ftp://ftp.nec.com/pub/socks/socks4

NEC Socks5-beta can be found at 
	http://www.socks.nec.com/
or
	ftp://ftp.nec.com/pub/socks/socks5/

NOTE: Unless you have some method to answer ident queries to your PC,
you'll have to be sure that your server is configured to not request
ident authentication from the PC.

- Properly configured DNS.  For SOCKS version 4 the PC must be able to
query a DNS server that can resolve all inside and outside names.  For
SOCKS version 5, remote name resolution is supported.

- Applications for Winsock.  SOCKS version 4 only supports TCP.  SOCKS
version 5 supports both TCP and UDP.


================
2.0 Installation
================
a) Create a working directory for the SocksCap32 package and unzip the
   SocksCap32 archive file.

b) Depending on your OS, create a Shortcut (Win95) or a Program Item
   in a Program Group (WinNT) for SC32.EXE.


=================   
3.0 Configuration
=================
a) Start up SocksCap32 (SC32.EXE).  Click on the "SocksCap Setup..."
   button at the lower left.

b) Fill in the configuration information as necessary.

   SOCKS Server:
	Hostname or IP address of your SOCKS server.
	
   Port:
	Port number to communicate with the server (default 1080).

   SOCKS User ID:
	User name that will be sent to SOCKS server (Socks4).

   Socks4 or Socks5 Protocol:
	Protocol version to communicate with SOCKS server.  See
	"Appendix A: Socks4 or Socks5" below.

   Supported Authentication (Socks5):
	Available authentication types.

   Name Resolution (Socks5):
	Method for attempting name resolution.  See "Appendix D: Name
	Resolution" below.

   Direct Connections:
	List of networks, subnets, host IP addresses to always connect
	directly (not through SOCKS).  See "Appendix B: Configuring
	Direct Connections" below.

   Direct Applications:
	List of applications which should always connect directly.
	See "Appendix C: Configuring Direct Applications" below.

   Direct UDP Ports (Socks5):
	List of UDP ports which should always be contacted directly.

c) Press the "OK" button when you're finished.


====================   
4.0 Using SocksCap32
====================
a) Start a Socksified application by double-clicking its profile name
   from the listbox in the SocksCap32 Control window.  Or, select it
   from the listbox and click "Run Socksified!".

b) To register an application profile, click on "New".  Click on
   "Browse..." to find the application executable.  Once you've
   selected the executable, a profile name and working directory will
   be filled in for you.  You can edit those as necessary or desired
   before clicking "Add".  Any options and arguments to the
   application can be appended in the "Command Line" field.  Click
   "Add" when you're ready to add it to the list.

c) You can additionally create Shortcuts or Program Items to launch
   socksified applications directly from your desktop rather than
   having to launch them from the SocksCap32 GUI.  This is done by
   passing an Application Profile name as an argument to SC32.EXE.

   For a Win95 Shortcut, create a new Shortcut.  For the Target
   field, specify:
	   drive:\fullpath\SC32.EXE profilename

   For a WinNT3.51 Program Item, create a new Program Item in a
   Program Group.  For the Command Line field, specify:
	   drive:\fullpath\SC32.EXE profilename
     
   "profilename" is the name of an Application Profile that you've
   already registered in the SocksCap32 GUI.  It is case independent
   and can include spaces.


===========================
5.0 Known Bugs/Things to Do
===========================
a) Need to integrate more with SocksCap16.

b) SocksCap32 doesn't operate with several Winsock applications.


============================
Appendix A: Socks4 or Socks5
============================
For a full description of the Socks4 and Socks5 protocols, see the
SOCKS WWW site at:
	http://www.socks.nec.com/


==========================================
Appendix B: Configuring Direct Connections
==========================================
Many people have the need to connect directly (not through SOCKS) to
other hosts behind their firewall.  SocksCap can be configured to
decide which method to connect in the "Direct Connections" box under
Setup.  You can enter either host addresses, entire subnets, or any
combination of these.

To configure to connect directly to a host at IP address 1.2.3.4,
enter a line in the "Direct Connections" box:
	1.2.3.4

To configure to connect directly to all hosts in the subnet 1.2.3,
(i.e. 1.2.3.1, 1.2.3.2, ...) enter a line in the "Direct Connections"
box:
	1.2.3.
The ending '.' is important!

Similarly, to configure to connect directly to all hosts in the
network 1.2, ender a line in the "Direct Connections" box:
	1.2.

NOTE: You may need to add your PC's own IP address to the Direct
Connection list if you see that it tries to go through the Socks
server to make connections to itself.


===========================================
Appendix C: Configuring Direct Applications
===========================================
Besides being able to connect particular destination addresses
directly, SocksCap allows you to define applications whose connections
should always be done directly.  An important use for this is to
instruct SocksCap to not try to SOCKSify calls from the Winsock stack
itself.  For Win95 or Windows for Workgroups stack, configure SocksCap
to ignore "WSASRV".  For Trumpet, configure SocksCap to ignore
"TCPMAN".


===========================
Appendix D: Name Resolution
===========================
Socks4 requires that the client be able to resolve all "inside" and
"outside" hostnames.  Socks5 protocol provides a mechanism for the
client to pass unresolved hostnames to the SOCKS server along with
the socket requests.  Keep the following caveats in mind, however, if
using remote name resolution.

- In SocksCap32 and SocksCap16, there are 254 unresolved hostnames
allowed per client application run.  You will need to shut down the
client application and start it again if you run out.

- When the application can't resolve a hostname, SocksCap assigns it a
dummy IP number and then sends the hostname to the server with SOCKS
requests.  Since the real IP number isn't available until the SOCKS
server already receives a connection request, your direct address list
might not work like you expect.

- If you enter a hostname that doesn't exist, you waste one of the 254
allowed unresolved names.  You might also end up having to wait for
the name resolution to time out at at both the local and remote ends
before returning an error message.

- The error message for failed remote resolutions are deceptive to the
application.  Since the application believes that it already has the
address and it is trying to make a connection or send data, you might
just see "Connection Refused" or something similar.

- If you provide a hostname for the Socks Server in your SocksCap
setup, you must be able to resolve that hostname locally, of course.


=============================
Appendix E: Possible troubles
=============================
Only one method of "SOCKSification" can be used at a time.  Therefore,
you should not use SocksCap in conjunction with other stacks or
applications that have SOCKS enabled.  For example, if you plan to use
Netscape through SocksCap, you should be sure that the SOCKS
capabilities of the Netscape client itself are not enabled.

Since SocksCap basically doesn't know anything about the stack and
application that it is running between, there is no way to guarantee
that it will work with various combinations, if at all.


====================
Appendix F: Contacts
====================
SocksCap16, SocksCap32, Socks server software, and related information
can be found at the SOCKS WWW site:
	http://www.socks.nec.com/

Software is available via anonymous ftp at:
	ftp://ftp.nec.com/pub/socks/

Please send any comments, bug reports, and success reports to:
	sockscap-comments@socks.nec.com

Technical questions can be directed to me:
 	Cornell Kinderknecht
	NEC USA
	cornell@syl.dl.nec.com


====================================
Appendix G: Copyright and Disclaimer
====================================
-------------------------------------------------------------------------------
Copyright (c) 1995, 1996 NEC USA, Inc.  All rights reserved.  

The redistribution and use of this software is subject to the
following conditions:
     
1). You may use the software for non commercial purposes only, such as
    academic, research and internal business use.

2). You may copy and distribute the software, provided that:
    a). The package must be distributed complete and unaltered with
	all messages intact.
    b). The copyright notice and this list of conditions appear on all
        copies.
    c). No charge is associated with such copies.
    d). NEC USA retains exclusive ownership of the software.
     
3). The name of NEC USA shall not be used in any advertising or
    publicity pertaining to the use or redistribution of this software
    without the prior express, written consent of NEC USA.
     
4). THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
    EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, THE
    IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
    PURPOSE, NON-INFRINGEMENT OR ARISING FROM A COURSE OF DEALING,
    USAGE, TRADE OR PRACTICE.  Some jurisdictions do not allow the
    exclusion of implied warranties, so the above disclaimer may not
    apply to you.
     
IN NO EVENT SHALL NEC USA BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
OR PERFORMANCE OF THIS SOFTWARE.
-------------------------------------------------------------------------------


Cornell Kinderknecht
NEC USA
cornell@syl.dl.nec.com
