Line 1:
Line 1:
−
tinysmb is a lightweight SMB client originally written by softdev for the GameCube. It is now included as part of [[libogc]].
+
tinysmb is a lightweight SMB client originally written by softdev for the GameCube. It is now included as part of [[libogc]]. It has since been updated by [[User:Tantric|Tantric]] to use [http://en.wikipedia.org/wiki/NTLM NTLM] (with SMB dialect NT LM 0.12). In addition, rodries and scip have written a devoptab allowing SMB to be used uses via standard file operation functions (using a prefix of smb:/).
== User usage ==
== User usage ==
−
tinysmb requires [http://en.wikipedia.org/wiki/LM_hash LM hashes] for authentication. Newer versions of Windows, such as Windows Vista, have LM hashes disabled by default. To re-enable LM hashes in Vista:
+
tinysmb follows the "SMB over IP" standard and so uses TCP port 445, rather than the deprecated TCP ports 137-139. tinysmb requires [http://en.wikipedia.org/wiki/NTLM NTLM] for authentication (supported by all major Operating Systems). Tutorials for setting up a file share in [http://www.practicallynetworked.com/sharing/xp/filesharing.htm Windows XP] and [http://cws.internet.com/article/3592-.htm Windows Vista] are available.
−
* load Group Policy Editor - gpedit.msc
−
* go to Computer Configuration > Local Policies > Security Options
−
* change "Network security: Do not store LAN Manager hash value on next password change" to Disabled
−
* change your password at least once to generate a LM hash
−
== Technical notes ==
+
== Developer usage ==
−
tinysmb only supports [http://en.wikipedia.org/wiki/LAN_Manager LAN Manager] 2.0 (SMB dialect LM1.2X002). It uses [http://en.wikipedia.org/wiki/LM_hash LM hashes] for authentication, an obsolete standard. Newer operating systems such as Windows Vista have LM hash support disabled by default. tinysmb needs to be modified to use [http://en.wikipedia.org/wiki/NTLM NTLM] (with SMB dialect NT LM 0.12), which has been the SMB standard since Windows 95. Combining tinysmb with an existing C implementation of NTLM such as [http://josefsson.org/libntlm/ libntlm] would be the fastest way to do so.
+
Adding SMB support to your program is easy! All you need to do is initialize the network, and then make a call to smbInit() to connect to the SMB share. From there you can use standard file functions to access to the share by prefixing smb:/ to your path.
== Applications that use tinysmb ==
== Applications that use tinysmb ==
Line 18:
Line 14:
* [[FCE Ultra GX]]
* [[FCE Ultra GX]]
* [[Visual Boy Advance GX]]
* [[Visual Boy Advance GX]]
−
−
== Related Reading ==
−
−
* [http://www.ubiqx.org/cifs/SMB.html#SMB.8 Implementing CIFS]