Jump to content

Arachne Web Browser Community Edition for DOS with TLS 1.3 Hack


Recommended Posts

== Arachne Web Browser Community Edition for DOS with TLS 1.3 Hack ==

= Overview =

Arachne v1.97 (2013) is a DOS graphic internet client (web browser, FTP, email) that can technically be modified for TLS 1.3 web browsing support [1]. Although it does not handle encrypted web pages natively, a Wget APM (Arachne Package Manager) provides limited TLS support. Additional work is then needed to manually install and configure a newer Wget to achieve TLS 1.2 functionality (grab HTTPS web page) then install a newer cURL for TLS 1.3 (browse HTTPS web page) functionality. Note TLS functionality is clunky and this is mostly just a fun computing project and proof of concept.

The steps below were tested in vanilla Windows 98 SE using it's DOS v7.10. Below is a compilation of the most relevant information needed to download, install and run the browser.

Project homepage and screenshot.
http://www.glennmcc.org/
https://en.wikipedia.org/wiki/File:Arachne_VESA_Mode.png

= Prerequisites =

- Working DOS system
- Basic DOS knowledge
- Functional DOS network [2]
- Software downloads below

= Download =

Download Arachne (a197gpl.zip, 1.21 MB).
http://www.glennmcc.org/arachne/

Download Wget package for Arachne (wgetssl2.apm, direct link, 839 Kb).
http://www.glennmcc.org/apm/wgetssl2.apm

Download newer Wget (wget117b.7z, 1,83 MB).
http://www.glennmcc.org/download/mik/

Additional helper software used (not linked) was 7-Zip v9.20 (Windows), Enhanced DOSKEY (DOS) and XCOPY (DOS). Built-in helper software used was EDIT (DOS editor) and Notepad (Windows).

= Setup Arachne =

This example uses a C:\DOS\ directory with additional subdirectories for relevant software, modify as desired. In a temporary directory extract 'a197gpl.zip' then 'A197GPL.EXE'. Rename the extracted 'A197GPL' directory to 'ARACHNE' and copy it to C:\DOS\.

No AUTOEXEC.BAT or CONFIG.SYS entries were used aside from DOSKEY /INSERT in C:\AUTOEXEC.BAT. SmartDrive may be added, initiated manually after boot or used in a custom Arachne BAT file, as outlined below.

Boot into DOS, this system needs a cold boot between Windows 98 and DOS to initialize the packet driver.

Manually load SmartDrive, CuteMouse, the packet driver and CWSDPMI.EXE, example below. As seen from the command pathways, Arachne includes CuteMouse and CWSDPMI.EXE. On this test system SmartDrive was already installed for usage and no additional arguments are needed. For software like CuteMouse, check out usage options and modify based on the hardware used (eg. CTMOUSE.EXE /?). The example below allows SmartMouse scrolling if mouse compatible (note /O is the letter 'O').

C:\WINDOWS\SMARTDRV.EXE
C:\DOS\ARACHNE\SYSTEM\DEVDRVRS\CTMOUSE.EXE /R2 /O
C:\DOS\LNE100\LNE100TX.COM 0x60
C:\DOS\ARACHNE\CWSDPMI.EXE -P



Nagivate to C:\DOS\ARACHNE\ and run SETUP.BAT. Use the wizard to adjust browser resolution, modify preferences and confirm packet driver function. Only continue below once happy with the configuration. At this point only HTTP (not HTTPS) site connections are possible, which excludes most of the modern internet. Note Google still works with HTTP only (http://www.google.com).

Note if exiting and restarting Arachne during the same session causes a memory error just Ctrl-Alt-Delete to restart DOS. Manually reload the items listed above (SmartDrive, mouse, packet driver, CWSDPMI.EXE) and resume Arachne with ARACHNE -R (resume), unless you need to run SETUP.BAT again.

Useful tips: press 'r' (reload) if HTTP pages don't load, F8 key clears cache, F10 key for Arachne's desktop, right-mouse click goes back, Backspace key displays browsing history.

= Install Wget via Arachne Package Manager =

There are two methods to install the Wget package for Arachne, via web page (method 1) or from the downloaded APM file (method 2, wgetssl2.apm).

1) Method 1 (install wgetssl2.apm via webpage)

Open Arachne (ARACHNE -R) to the Arachne Package Manager packages page. Note numerous packages are available, untested and some outdated.
http://www.glennmcc.org/apm

Select (to install) 'wgetssl2.apm' (858345 bytes).

Important, scroll 2/3 down the Wget installation summary page and click 'Link here ad2file.dgi to modify saveas.ah to include the wgetssl interface', otherwise the desired Wget functionality for SSL will not be available.

2) Method 2 (install wgetssl2.apm from local drive)

Open Arachne (ARACHNE -R) to the Arachne 'desktop' (F10 key).

Click Utilities -> Install Arachne Package.

Navigate to downloaded 'wgetssl2.apm' file and select it to install.

Important, scroll 2/3 down the Wget installation summary page and click 'Link here ad2file.dgi to modify saveas.ah to include the wgetssl interface', otherwise the desired Wget functionality for SSL will not be available.

Whichever method was used above, exit (Alt-x) then restart Arachne (ARACHNE -R).

Attempt to load an HTTPS page via URL bar, example https://www.google.com. An error message will indicate 'Unknown protocol in URL' and 'The requested protocol is not yet supported'.

Press F2 (save or send document shortcut), which provides some prompts. Click 'Get SSL page or post data via SSL using Wget'. The Arachne browser will exit and Wget will attempt to fetch the page. This (old) Wget may fail with 'Unable to establish an SSL connection'. Hopefully it will, however, succeed and then when prompted 'Press any key to continue'. Arachne will restart, rational for using CWSDPMI.EXE with the permanent switch, and the web page will display.

As this Wget will only fetch some HTTPS pages, the section below will update and configure a newer release of Wget for DOS.

= Install Updated Wget =

Exit Arachne and work from DOS or Windows. Following the Wget APM install above, rename C:\DOS\ARACHNE\WGET111B\WGET.EXE to WGETB.EXE. The 'B' stands for Broken.

MOVE C:\DOS\ARACHNE\WGET111B\WGET.EXE C:\DOS\ARACHNE\WGET111B\WGETB.EXE



Extract the downloaded 'wget117b.7z' file to a temporary directory.

Copy the newly extracted WGET.EXE to C:\DOS\ARACHNE\WGET111B\.

COPY C:\WINDOWS\TEMP\WGET117B\BIN\WGET.EXE C:\DOS\ARACHNE\WGET111B\WGET.EXE



Backup the new WGET.EXE in case it's overwritten by Arachne or user error. The 'G' stands for Good.

COPY C:\DOS\ARACHNE\WGET111B\WGET.EXE C:\DOS\ARACHNE\WGET111B\WGETG.EXE



Warning the custom Wget install may revert to the old WGET.EXE and configuration. It may be related to re-running SETUP.BAT or some setting components. This is why the Arachne Setup section above recommends finishing with SETUP.BAT preferences before continuing. Recommend backing up the entire ARACHNE directory once all the tweaks below are completed (< 7 MB).

XCOPY /E C:\DOS\ARACHNE C:\DOS\ARACHNE1



Note running DIR in C:\DOS\ARACHNE\WGET111B\ clearly shows the differing file sizes of the older and newer WGET.EXE files. If SSL web page fetches break review these file sizes, it may be that Arachne reset the WGET.EXE file and custom configurations outlined below. If so restore Arachne from the back up directory recommended above.

= Configure Updated Wget =

Unfortunately the newer WGET.EXE does not recognize the original C:\DOS\ARACHNE\WGET111B\WGETRC file. This test system uses a simple DHCP connection and the following configuration files have been significantly simplified to provide new Wget functionality. Modify as needed based on the system's network connection type and any desired Wget arguments. Run WGET.EXE --HELP | MORE for usage information or direct usage help to a file for review.

WGET.EXE --HELP > WGETHELP.TXT



Note the modified WGETSSL.BAT file below has commented out (REM) the 'Press any key to continue' PAUSE command for streamlined functionality. Recommend keeping PAUSE enabled until Wget SSL page fetches work well then disable PAUSE for faster performance.

C:\DOS\ARACHNE\WGETGRAB.BAT file:

CD C:\DOS\ARACHNE\DOWNLOAD
C:\DOS\ARACHNE\WGET111B\WGET.EXE --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0" --random-file=C:\DOS\ARACHNE\WGET111B\WGET.EXE --no-check-certificate -nd -c -p %1
CD ..
PAUSE



C:\DOS\ARACHNE\WGETSSL.BAT file:

CD C:\DOS\ARACHNE\WGET111B
WGET.EXE %1 --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0" --random-file=WGET.EXE --no-check-certificate --load-cookies=COOKIES.TXT --save-cookies=COOKIES.TXT -c -k -O %2
CD ..
REM PAUSE



= Confirm TLS v1.2 Support =

Restart Arachne and load the URL below to confirm TLS 1.2 support, using the Wget SSL fetch mechanism outlined above.
https://www.ssllabs.com/ssltest/viewMyClient.html

= Tweak DHCP Connecton =

If the first browser launch resulted in a 'Configuring through BOOTP' delay and then connected via DHCP anyway, replace the WATTCP.CFG configuration file in C:\DOS\ARACHNE\ containing the line below [3]. Also copy this modified WATTCP.CFG file to C:\DOS\ARACHNE\WGET111B\ for WGET.EXE. Note 'my_ip' is literally 'my_ip', do not substitute this for your system's IP (Internet Protocol) address. Note a blank (empty) line is expected below the 'my_ip=dhcp' entry.

WATTCP.CFG file:

my_ip=dhcp



= Custom Arachne Batch File =

After configuration and testing create a custom batch file to launch Arachne. As the Arachne directory already has an ARACHNE.BAT file, personal preference is to name a custom launcher 0ARACHNE.BAT (zero), which sorts to the top when running 'DIR /W /ON /P'.

C:\DOS\ARACHNE\0ARACHNE.BAT file example:

C:\WINDOWS\SMARTDRV.EXE
C:\DOS\ARACHNE\SYSTEM\DEVDRVRS\CTMOUSE.EXE /R2 /O
C:\DOS\LNE100\LNE100TX.COM 0x60
C:\DOS\ARACHNE\CWSDPMI.EXE -P
C:\DOS\ARACHNE\ARACHNE -R



= Usage and Help =

In Arachne click the toolbar's question mark button (F1 key).

= Limitations =

Although fun Arachne has limitations and is not considered a go to DOS web browser. Performance and usage is clunky and it does not run as well as more recently updated TLS 1.2 capable DOS browsers. Additional Wget configuration would be needed to post data to HTTPS sites, such as a forum login. The Wget SSL fetch routine is tedious and inefficient. HTTPS URL strings are limited to 80 characters or they fail. Filename saves will also fail if not modified for DOS 8.3 format.

Arachne sometimes hangs, recommend disabling 'Try to use HTTP instead of HTTPS' and 'Auto-download inline images'. To download and view select images right-click the image placeholder. The 'Would you like some coffee?' prompt in the status bar when performing tasks, such as clearing cache, is indicative of the browser's sub-optimal performance.

END

[1] Other web browsers for DOS with TLS 1.2 support.
https://msfn.org/board/topic/181853-links-web-browser-community-edition-for-dos-with-tls-12/
https://msfn.org/board/topic/182400-lynx-web-browser-community-edition-for-dos-with-tls-12/

[2] Review this DOS Networking guide if the system does not yet have a working DOS packet driver. Note mTCP is not required to run Arachne as it handles connectivity internally.
https://msfn.org/board/topic/177106-running-vanilla-windows-98-in-2020-and-beyond/page/32/?tab=comments#comment-1187090

For network adapters that do not have a working packet driver, review forum member @Deomsh's NDIS 2 driver guide below.
https://msfn.org/board/topic/181853-links-web-browser-for-dos-with-tls-12-community-edition/?tab=comments#comment-1187234

[3] More WATTCP configuration information.
http://wiki.freedos.org/wiki/index.php/Networking_FreeDOS_-_WATTCP

Edited by Wunderbar98
Link to comment
Share on other sites


Hi MERCURY127. TLS v1.3 would be nice indeed. The Wget used above was compiled for DOS in 2015 and is dated and weak. If someone finds a newer release that would be great, might even work with cURL.

Regardless the interface is clunky, the auto-switch between Arachne and command prompt to run Wget, lots of mode switching for the monitor. So regardless this enhanced Arachne would be best for primarily HTTP sites and just occasional HTTPS browsing. So for most not very useful.

Aside from the Google search link above, couple other good HTTP only sites.
http://lite.cnn.com/en
http://www.msn.com/

Link to comment
Share on other sites

Still having fun but no documentation update yet. Wanted to spend time with this browser since many years ago, when i first learned you can browse through DOS. As mentioned, there are better current DOS browsers but this one's the backside of a mullet (business up front and party in the back).

The disk thrashing and performance issues were fixed by loading SMARTDRV.EXE prior to launching Arachne - night and day difference. Note DWSDPMI.EXE is still also needed for Wget and cURL.

Some kind soul over at FreeDOS recently compiled cURL with TLS v1.3 support, so that's what my Arachne can do now too :)

The HTTPS interface is still clunky and not well integrated into the browser, that would require source code hacking which i don't want to get into. Nonetheless seems all websites are now accessible and rudimentary downloads from HTTPS are now possible too, such as direct link PDF or ZIP files.

One thing about this browser, it's intention was to become everything including the kitchen sink, which violates the 'do one thing and do it well' rule of thumb. Maybe that's what makes it so fun though, lots to explore. Haven't looked at it's mail handling features, imagine this is long out of date. Probably also won't spend any time trying to get it to post data via HTTPS, such as forum logins.

Link to comment
Share on other sites

  • Wunderbar98 changed the title to Arachne Web Browser Community Edition for DOS with TLS 1.3 Hack

The first post is still a work in progress and was updated to reflect potential TLS 1.3 functionality, loading SmartDrive for better performance and modifying CuteMouse configuraton for mouse scrolling. Some additional explanations and the limtations section was also updated. Will post updated configs later, custom cURL install for TLS 1.3 and probably couple screenshots.

Link to comment
Share on other sites

First post edited. Full default C:\WINDOWS\SMARTDRV.EXE pathway added, adjust for your system. The WGETSSL.BAT file was modified, this is the version that would be used with Wget for TLS 1.2. Note the WGET.EXE line is one looong line, just mentioning in case it wraps in your browser (four lines total: CD x 2, WGET, PAUSE).

Link to comment
Share on other sites

Three screenshots using Arachne's default (funky) toolbar layout and the Wget update from first post for TLS 1.2. Note this forum now requires allowing JavaScript for MSFN's domain to view these screenshots or just click the links below.

1. You'll see this whenever an HTTPS site is encountered. If you've updated Wget as per first post then press F2.
https://i.postimg.cc/3xsBJvZq/01-UNKNOWN.jpg

2. Pressing F2 displays the Save or Send Document screen. Note the address in the URL bar you are trying to load. Click Get SSL page or post data via SSL using Wget (upper left).
https://i.postimg.cc/g0GxDccJ/02-GETSSL.jpg

3. The browser will briefly exit, Wget fetch the desired page, restart Arachne and display page content. This screenshot shows TLS 1.2 capability with some of the cipher information.
https://i.postimg.cc/vBk93RSN/03-SSL2.jpg

Edited by Wunderbar98
Link to comment
Share on other sites

Embedded screenshots in post above removed to reclaim real estate, as they can't be viewed from browsers not running JavaScript (ie. most Windows 9x users). Just click on the screenshot links provided.

Press PrtScn key in Arachne for a screenshot (entire screen, not just web page). In the save dialogue ensure the full save pathway is specified or it fails (eg. C:\SCREEN.BMP not SCREEN.BMP). Most modern software (browsers, image viewers) can't view Arachne's BMPs. Fortunately PictView in DOS can display and convert these BMP files. Converted to JPGs they work well with all software.

Link to comment
Share on other sites

Using Wget's -k switch (convert links) in WGETSSL.BAT does not work. Unsure if it's a problem with this Wget or an Arachne limitation. When loading an HTTPS page, like Wikipedia, trying to load a link from this HTTPS page may result in an incomplete link, usually missing the root URL. It does not fail on all sites, like this forum, but is very evident in Wikipedia.

Example, load Wikipedia's page for Windows 98 then attempt to load the embedded 'Operating System' link. This provides the URL 'file:/wiki/Operating_system'. This will obviously fail as Arachne does not have a local copy of this file.

After many testing failures the only solutions i've found are to either perform a new HTTP-only Google search specifically for that link (eg. search wikipedia + operating + system) or manually modify the URL in Arachne's URL bar, prepending the root URL then press Enter to load the page. So in this example 'file:/wiki/Operating_system' would become 'https://en.wikipedia.org/wiki/Operating_system'.

Still the best solution is just use Arachne for fun, bookmark all your favourite HTTP-only sites, only access HTTPS sites in a pinch and use one of the other (better) DOS browsers for seemless HTTPS support (Links or Lynx).

Link to comment
Share on other sites

WGETGRAB.BAT on the first post was updated, not that many use the feature of downloading web pages. This fetches the web page and page images into Arachne's DOWNLOAD directory, which can be accessed by pressing F10 in the browser. It works okay only, limitations included failure with any links >80 characters, including the page URL and any image URLs.

Link to comment
Share on other sites

= Add cURL for TLS 1.3 =

Since i can't kickstart Wget's --convert-links function, one of it's best features, may as well update cURL for TLS 1.3.

Download and extract curl.zip (6.2M, no Javascript needed).
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/curl.html

At a DOS prompt running 'CURL.EXE --VERSION' shows 7.72.0 from August 2020.

Create a directory in your Arachne install for cURL, my example path.
MKDIR C:\DOS\ARACHNE\CURL

From the extracted cURL download, only need to copy CURL.EXE into this directory.

From the Wget update on the first post (this must be done first), modify C:\DOS\ARACHNE\WGETSSL.BAT by commenting out the entire Wget section and adding cURL configuration. Comment out the PAUSE command, as below, once it's observed to perform well.

Updated WGETSSL.BAT file:

CD C:\DOS\ARACHNE\CURL
CURL.EXE "%1" -L --insecure --retry 3 --show-error -o "%2"
CD ..
REM PAUSE

Similar to the Wget update, if connecting via DHCP add a simple WATTCP.CFG file into the CURL directory to speed up the initial connection process. New C:\DOS\ARACHNE\CURL\WTTCP.CFG file below, note an extra blank line is expected at the end of the document, don't substitute your IP address it's just 'my_ip'.

my_ip=dhcp

Restart Arachne and as usual press F2 (save or send document shortcut) when encountering an HTTPS page. Click 'Get SSL page or post data via SSL using Wget', you'll just be using cURL instead of Wget.

Recommend keeping the upgraded Wget setup intact from post #1, as it will still be used by WGETGRAB.BAT if you decide to save a web page to Arachne's DOWNLOAD directory.

Link to comment
Share on other sites

  • 10 months later...
Updated Arachne released last month, didn't test.
http://www.glennmcc.org/

Changelog:
http://glennmcc.org/arachne/changelog.txt

It was noted to be a minor update but means the developer still has his head-in-the-game! Still nothing that would allow proper access to HTTPS sites without the clunky and painstaking TLS 1.2 and TLS 1.3 hacks documented earlier. For modern DOS browsing Lynx and Links are still the best goto browsers (think i created member projects for them all). Edited by Wunderbar98
Link to comment
Share on other sites

  • 5 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...