SmbMate 1.0 alpha.3 README
Contents
License
All copyrights to SmbMate are exclusively owned by the author - Murad Kakabayev.
SmbMate is Freeware. You can freely use it under the following condition:
you cannot create the new versions, rent, sell or disassemble executable module(s).
SmbMate may be freely distributed provided the distribution package is not modified.
No person or company may charge a fee for the distribution of SmbMate without
written permission from the author.
SmbMate IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.
YOU USE AT YOUR OWN RISK. THE AUTHOR WILL NOT BE LIABLE FOR DATA LOSS, DAMAGES,
LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS SOFTWARE.
If you do not agree with the terms of this license, you must remove SmbMate
from your storage devices and cease to use the product.
Overview
SmbMate is a SMB client for Palm OS-compatible devices.
SMB (Server Message Block) client/server protocol was designed primary for sharing
resources (files, printers, devices) across networks. Now SMB protocol as well
as its inheritor CIFS (Common Internet File System) is used on many platforms
and operating systems. The most popular implementation of SMB protocol is the
Microsoft's implementation. The Microsoft Windows OS family uses SMB/CIFS for
sharing their files and printers across network. There are SMB implementations
for UNIX, MAC and other systems.
SMB is client/server protocol. It means that must be a server that share their
resources and a client who communicates with a server and uses resources. SmbMate
is a client implementing SMB over TCP/IP transport.
By using SmbMate you can:
- Establish connection between your PDA and SMB servers;
- List files,shares,accounts on server;
- Copy/move files from server to PDA's external memory card;
- Copy/move files from PDA's memory and external memory card to server;
- Delete/Rename files on server;
- Change file attributes on server;
- Post messages to server;
- Shutdown/reboot server;
You can even print to remote shared printers! :-) Seriously, SmbMate has not
true printing support yet but you can print prepared (somewhere outside) files
to printer by connecting to printer as if were a disk and copying file from
Palm to printer.
SmbMate supports translating between PDA's and server's charsets. Currently
encoding for the following three Cyrillic charsets implemented: win1251, koi8-r,
dos866.
SmbMate supports HiRes (320x320) for OS >= 5.0.
SmbMate was tested successfully with the following SMB servers:
- MS Windows 98 SE;
- MS Windows ME;
- MS Windows NT 4.0 Professional SP6;
- MS Windows 2000 Professional SP2, SP3, SP4;
- MS Windows XP Professional SP1;
- MS Windows 2003 Server;
- Samba 2.0.6
Smb server must support NT LM 0.12 protocol for normal interconnection.
The most of modern servers do that.
Screen shots
What's new
1.0.alpha.3 |
- Added remote server shutdown/abort shutdown features
- Added "Inspect server" feature
- Minor bugs fixed.
|
1.0.alpha.2 |
- Slightly optimized icons for monochrome devices
- BAGFIX: some network bugs fixed. Turned all socket operations to blocking
mode. Unfortunately, Palm OS is too unpredictable in non-blocking socket
interconnections.
- Minor bugs fixed.
|
System requirements and installation
SmbMate works on Palm OS 3.5 and higher. Palm OS 4.0 and higher is recommended.
Installation is easy - just unpack SmbMate.prc and install
it on Palm via HotSync.
Get Started
SmbMate uses your default network connection on Palm, so make sure your Palm
can connect to network successfully. Setup your network connection via Palm's
Preferences before using SmbMate.
- Starting SmbMate you will get blank screen. First of all, tap on menu
button and select "Preferences".
- In Preferences form set the following parameters for your connections:
Hostname Default SMB name of your PDA.
Username Default user/login name for connecting to
servers
Group/domain Default workgroup or domain name for connecting
to servers
Translate charsets Set this checkbox if your PDA's
and servers charsets are different (for example PDA uses ANSI charset
and SMB server uses OEM charset). Currently only Cyrillic charsets are
supported
Backup connections database Do or do not backup connections
database via HotSync. For security reasons only because database contains
hashed SMB passwords. Learn more about SMB passwords in SmbMate here
.
- Tap on "Save" button to return to main form (still blank)
|

|
 |
 |
 |
|
- Press "New" button in main form to create a new connection
record. Whenever it possible, new connection is created with the pre
filled values which are copies of Preferences ones
- Enter connection-specific parameters:
Name Just name, for reference and description only
Resource Path Path to your SMB resource. Must be in
format \\ServerName\ShareName. Server name is a NETBIOS name of server.
In most cases server accepts universal name *SMBSERVER but sometimes
you need specify exact server name (especially for old-style SMB servers,
Win9x for example).
An example: you want to connect to server BOSS and see shared folder
TopSecret. Your resource path is \\BOSS\TOPSECRET or \\*SMBSERVER\TOPSECRET.
Resource Type Just for information only
IP address TCP/IP address of server. DNS or dotted
form. Here is explanation why should you specify
TCP/IP address if you already have \\ServerName
Username Your login name for server.
Group/Domain You connect as some user which belongs
to some workgroup or domain name. Set that workgroup or domain name
here.
Password Password to connect to server. Learn more
about SMB passwords in SmbMate here
Translate charsets The same as in Preferences.
- Tap on "Save" button to save new connection and return to
main form.
|

|
 |
 |
 |
|
- Tap on "New connection" to connect to server (see next topic)
or tap and hold until popup menu is displayed:
Send Message send a message to server. Go here
to learn more about sending messages
Edit,Delete,Duplicate Modify,delete or make copy of
existing connection record
- After connecting to resource SmbMate tries to log in and load directory
list. You can perform the following actions by tapping on toolbar buttons,
select menu items and other interconnections:
- Close connection and return to main form
- Refresh/reload working directory
- Download files from server to Palm's external storage card (MMC/SD,
CF, Memory Stick). You should select files by tapping on checkboxes
at left of file names or tap on checkboxes' caption to select all
the files and folders.
- Upload files from Palm's RAM and external storage card to server
- Delete files on server. Select files to delete previously
- Go forward and back on server's file system hierarchy: To go into
folder tap on folder name, to go back - tap on tool button.
- Create new folder
- See and change file's properties. Tap and hold on file's name
until popup menu is displayed. Select "Properties"
- See connection info. Select "Connection info" menu item
- Send a message to server. See topic below.
|
 |
 |
 |
 |
|
- Send message to server. This is an equivalent
of net send command or sending message via WinPopup
application on MS Windows platform. For receiving of this message you
should have started WinPopup (or some third-party chat software) on
Win9x/Me or Messenger service on Win NT/2000/XP/2003. Or any other software
listening on server's \\MAILSLOT\LANMAN mailslot.
Each platform has it's own restrictions on message's length. Usually
message is limited to 150-200 symbols.
Sender's computer/user - your sign for the message.
In most cases it does not matter for delivering what you put here. It
can be important for recipient only :-)
Recipient's computer/ip address - server's SMB name/IP
address Recipient's user - to whom you address the
message. It's up to you what you will put here
Additionally you can translate message between charsets.
|
 |
 |
Some explanations
- Smb passwords in SmbMate
For log in to SMB server SmbMate have to store passwords. The passwords you
entered are stored as non-recoverable NT LM hashes. This is the same method
as Microsoft Windows uses. There is no way to restore password from NT LM
hash besides brute force. Nevertheless there are third-party software able
to restore passwords from hashes using brute force method. Be careful anyway.
You can turn on/off HotSync's backup of SmbMate's passwords database via program
preferences.
- Why should you specify TCP/IP address of server if you already have
SMB server's name?
SMB protocol is transport-independent. Nevertheless the client must do some
investigations for mapping server name with a real network address. This is
a transport-specific method. In TCP/IP networks we should know IP address
of server to establish a connection. This is transparent process for user.
In LAN a client does a broadcast request like "I need a server with name
SOMENAME" and server SOMENAME says back "I am SOMENAME and my IP
address is x.x.x.x". This method works fine in LAN but in internet medium
it fails because of broadcast limitations - internet routers do not pass broadcast
packets. The solution is have something like DNS for SMB (WINS - Windows Internet
Name System) servers who know where is your desired server. Or you can have
local mapping file on client. Microsoft Windows OS uses lmhosts file.
That is the way we go. Even if you are located in LAN in most cases Palm cannot
receive broadcast responses from SMB servers. SmbMate is designed to work
in internet. So, for simplifying process SmbMate uses something like lmhosts
file: local name<=>address mapping. This is universal method which will
work everywhere. However besides IP address you have to know the server's
SMB name. See the next topic
- SmbMate returns error "Remote node has not registered name
SOMENAME(00X0)". What does it mean?
So, first of all, you have connected to remote host and it is a really SMB
server. Congratulations! But your server has not registered name SOMENAME.
Probably you requested a shared resource like \\SOMENAME\RESOURCENAME. Server
has other name and you just have to know what the name is it? First of all,
try an universal name *SMBSERVER The most of modern SMB servers response successfully
of *SMBSERVER. If you failed - try to use first part of server's DNS name
(servername.mydomain.com) or go to this server (if it is
Microsoft Windows powered) and run command nbtstat.exe -n.
This command will show you all the registered SMB names. Another way is use
nbtstat.exe -A x.x.x.x where x.x.x.x is IP address of remote
server.
Known issues/bugs
- This is an alpha version. It's in testing so you can meet some bugs and
inconveniences. Please e-mail any complaints, wishes and ideas. See contact
info below. Check new versions often, I believe they will be released quickly.
- SmbMate uses built-in Palm OS MD4 and DES crypt software. It reduces the
prc file size. Unfortunately, MD4/DES functions are undocumented in Palm OS
SDK. Besides, due USA crypt technologies export limitation there may be some
ROMs without built-in crypt software. Therefore, it's possible for you to
get error message on program start. Don't be afraid, send me e-mail and I
just include my own version of MD4/DES algorithms into next release. It slightly
increases of prc file size.
- Listing of remote directory can be canceled then a directory has many files
(approximately greater than 1500-2000, it depends of total files names length).
This happened because of insufficient memory on Palm to storage listing info.
This is known feature and I will fix it if you request it. Really, I have
no idea how often will you need working with huge directories. Will you do?
Write me!
- There is no recursion deletion on server. I.e. you can delete only empty
folders. I'm working on it now.
- Program's colors and bitmaps are not optimized properly for monochrome devices.
The only real device I have is a Palm Tungsten T, with HiRes and 65k color
capabilities. However, it should work on monochrome devices but if you have
another opinion (better - with a ready for your device bitmap) - mail me.
- SMB protocol implementations produce many, many errors for every action.
Error codes are undocumented. Many error codes are obsolescent. SmbMate translate
the most common errors into human readable form. "Common" means that I met
them when I tested SmbMate. Any other error (if any) will be displayed as
"Unknown DOS/NT/DCE error XXXXXXX". Tell me about such errors, I include translation
and handler into next release.
- Currently there is no UNICODE support. Main reason is a memory limitation.
However some operations works only with UNICODE-coded data. For example -
DCE/RPC calls for NT. I use the simplest scheme to convert null-terminated
string to UNICODE - just insert 0 after each character. It works fine only
with English texts. I will add some limited UNICODE encoding/decoding schemes
later, by user requests.
To do
SMB/CIFS is large protocol with many features. I have a lot of work :-). Some
of my tasks not sorted by importance:
- Reduce screen flickering
- Develop local files selection dialog into simple local file browser/navigator/shell
- Add HiRes+ support
- Add printing on remote SMB printers support
- Add connected resource info displaying
- Remote control on server
- Remote vulnerabilities scanning
- Network resources scanning
- Group connection records by categories
Contact information
murad_kakabayev@mail.ru
Please notice in letter SmbMate's version you use.