C#

New BBS Features

Decided to sit down and add some long waited features I have been thinking about for the BBS. Almost all these changes revolve around security.

1. The Reddit Reader has returned. It has a few minor bugs that deal with the text placement on the screen but nothing major.

2. Secure Connection Lockdown has been implemented. If you want to be able to login using SSH/WSS/TOR only, it will no longer allow you to login use Unencrypted methods (Telnet/WS)

3. 2FA (Two Factor Authentication) has been implemented. Any apps/programs that are compatible with Google Authenticator or Authy will work. Standard TOTP style keys.

4. New “Profile Settings” can be found on the main menu, it contains the two security features listed above allowing you to toggle them on and off.

5. Password Recovery email address can now be specified in the Profile Settings menu. Although not required, it will allow me to reset passwords if you forget them.

As always if you have any issues, comments, complains, questions about the BBS you can contact me via Comments below, email, or the BBS itself.

By |April 5th, 2017|0 Comments

BBSLink Client

If you have heard of or came across http://bbslink.net/ and wanted to add the services door games to your BBS but find that they only offer a javascript file for Synchronet BBSes then this might help you out.

I recently joined and not having a Synchronet BBS I had to make my own client to work with their service. It is written in C# against .NET 2.0 and *might* work in mono on Linux. You will have to test.

Local Binary: BBSLink Door Binaries
Local Source: BBSLink Door Source Code

By |November 1st, 2016|0 Comments

C# DOOR32.SYS BBSLink Client

If you have heard of or came across http://bbslink.net/ and wanted to add the services door games to your BBS but find that they only offer a javascript file for Synchronet BBSes then this might help you out.

I recently joined and not having a Synchronet BBS I had to make my own client to work with their service. As promised I am also releasing the source.

It is written in C# against .NET 2.0 and *might* work in mono on linux. You will have to test.

Local Binary: BBSLink Door Binaries
Local Source: BBSLink Door Source Code

Update: I made a small change to the dropped carrier handling and disconnections. The door should now handle dropped carrier and exit correctly. Let me know if you have issues.

Update: Removed Github links.

By |March 6th, 2015|0 Comments

Reddit Posts on Archaic Binary BBS

I have been asked on the BBS how I pulled reddit links into the BBS for callers to see. As you might know, I have been using RMLib to make some simple door utilities with C#.

My latest utility pulls some headlines from reddit, as well as showing recent activity on the board.

Here is the code that does this… I don’t want to release the full program source yet, as it has other stuff I need to finish up. Sorry.
Using this though you should be able to get a C# door running with RMLib.


WebClient w = new WebClient();
            string s = w.DownloadString("http://www.reddit.com/r/tech");
            string cleanString = "";
            string cleanURL = "";

            foreach (LinkItem i in LinkFinder.Find(s))
            {
                cleanString = Regex.Replace(i.Text.ToString(), @"[^\u0000-\u007F]", string.Empty);
                cleanURL = Regex.Replace(i.Href.ToString(), @"[^\u0000-\u007F]", string.Empty);
                Door.WriteLn(StringUtils.PadRight(cleanString, ' ', 57) + " | ");
                Door.WriteLn(StringUtils.PadRight(cleanURL, ' ', 57) + " | ");
                Door.WriteLn(StringUtils.PadRight(" ", ' ', 57) + " | ");
            }

---

public struct LinkItem
        {
            public string Href;
            public string Text;

            public override string ToString()
            {
                return Text + Href;
            }
        }

static class LinkFinder
        {
            public static List Find(string file)
            {
                List list = new List();
                int j = 0;

                MatchCollection m1 = Regex.Matches(file, @"(.*?)", RegexOptions.Singleline);

                foreach (Match m in m1)
                {
                    if (j <= 6)
                    {
                        string value = m.Groups[1].Value;
                        LinkItem i = new LinkItem();

                        Match m2 = Regex.Match(value, @"href=\""(.*?)\""", RegexOptions.Singleline);
                        if (m2.Success)
                        {
                            i.Href = m2.Groups[1].Value;

                        }

                        string t = Regex.Replace(value, @"\s*<.*?>\s*", "", RegexOptions.Singleline);
                        i.Text = t;

                        list.Add(i);
                        j++;
                    }
                }

                j = 0;
                return list;
            }
        }

By |June 17th, 2014|4 Comments

Telnet Server Connection Concentrator/Router

I have been working on getting my multi-node BBS back online using some FOSSIL drivers and telnet instead of dial-up modems.

One large problem is the speed Windows NTVDM (DOS Console) gives to legacy 16-bit applications running inside of it. You can really tell the difference from running a pure DOS 6.22 install with a packet driver and FOSSIL -> Telnet software and running say Windows 2003 server with the software inside a DOS box, especially when drawing full screen ANSI.

So this is what I did, I found the best combination by running two Windows NT 4 Servers (inside ESXi), and then loading TelSrv on each. It’s odd that NT 4 handles DOS virtual machines (NTVDM) better then Windows 2000 and 2003. When the DOS software is setup correctly and tested, the NTVDM rarely used more then 20% spiking and around 3% idle.

Each ESXi virtual machine handles two nodes currently, for a total of four. Now the problem comes up how can I handle connections from the outside, coming into one port (23 Telnet) off the router and then choose which telnet server to redirect it to.

I built this small application in C# that will take in a telnet connection, and then based on the code at the moment, will direct it to a specific server based on some simple rules. Say, first connection and third to server one, and second and fourth to server two.

If you need more information on running it, you can check the source code that is available, as I cannot offer a compiled version. It would be of no use unless you changed the code anyway.

I suppose you could re-route any TCP socket connections using this, I know FTP will not work, as it uses two sockets.

Telnet Concentrator

By |September 10th, 2012|0 Comments
Load More Posts