Escargo the replacement MSN messenger network

Microsoft has had a long tradition of wanting to be cool and edgy, and copying what is popular to make themselves a metwo company.  And it’s really random, some things become wildly popular, while others crash and burn so hard that almost all existence of it happening is destroyed.  Back before the commercialization of the internet, if you wanted to do real-time conversations you used IRC, and before then it was just talk/ytalk on any UNIX host.

However once the internet opened up, companies were free to invent their own protocols, and let the users choose if they wanted something more rich than a simple text based protocol, it may seem obvious today, but users wanted to do things like share files, and more importantly be able to minimize the program and only get an alert if someone was actually messaging them.  Out of the gates of commercialization the big hit was ICQ.  And Microsoft being Microsoft, first created Comic Chat, a simplified IRC client back in 1996 as part of it’s push with Internet Explorer 3, which brought many internet programs to Windows, including a NNTP client, and a simple SMTP/POP email client.  Then in 1999 the MSN group brought out their MSN messenger.

With the later massive misstep of buying Skype from Ebay, Microsoft shuttered the MSN messaging product, and has been trying very hard to shoehorn Skype as not only a communication tool for users, but also for businesses.  Apparently they are going to try to copy slack now for us business users.

Back around 2002, when MSN was integrated in with things like ME and XP, I found some server implementation on one of our internal servers.  I think it was written in either Perl or python, and I just recall it definitely ran on one of our Linux boxes with a MySQL back end.  At the time we wanted a private server to keep internal communications internal, and MSN was convenient as everyone had it, and all they needed was a registry change to tell MSN to use the internal server.  Oh how times have changed.

Over on Escargot, it’s even easier to download a pre-patched client,  then create your account and login!

All alone

And just like that I’m logged in using MSN 7.5.0324 English on Windows 10.

Even better is that the source to Escargot is available!

If anyone feels the need to find me, you’ll know where, naturally you’ll have to type in that crazy long domain name….

SQL Server 2000 on Windows 10

I have to admit it, that when I first heard about this I was HIGHLY skeptical, but sure enough it actually works.

Enterprise Manager looking at the infamous PUBS database

Although I have gotten SQL Server 4.21a & 6.5 running on Windows 10 (The core from 6.0 works, but it’s pre-release COM objects for the Enterprise manager don’t like Windows 10) There were two stumbling blocks I never could get around.  The first one turned out to be something trivial, which is SQL 4.21 would never listen on TCPIP.

Fixing SQL 4.21

It turns out that this actually was a simple fix.

17/09/21 19:40:24.00 server server name is ‘JADERABBIT’
17/09/21 19:40:24.00 server Recovering database ‘model’
17/09/21 19:40:24.00 server Recovery dbid 3 ckpt (45,26)
17/09/21 19:40:24.00 server Clearing temp db
17/09/21 19:40:24.03 kernel Using ‘SQLEVENT.DLL’ version ‘4.21.00’.
17/09/21 19:40:24.83 kernel Using ‘OPENDSNT.DLL’ version ‘4.21.09.02’.
17/09/21 19:40:24.83 kernel Using ‘NTWDBLIB.DLL’ version ‘4.21.00’.
17/09/21 19:40:24.83 ods Using ‘SSNMPNTW.DLL’ version ‘4.21.0.0’ to listen on ‘\\.\pipe\sql\query’.
17/09/21 19:40:24.83 ods Using ‘SSMSSOCN.DLL’ version ‘4.21.0.0’ to listen on ‘1433’.
17/09/21 19:40:26.04 server Recovering database ‘pubs’
17/09/21 19:40:26.06 server Recovery dbid 4 ckpt (469,25)
17/09/21 19:40:26.06 server Recovering database ‘ultimate’
17/09/21 19:40:26.06 server Recovery dbid 5 ckpt (524295,12)
17/09/21 19:40:26.06 server Recovery complete.
17/09/21 19:40:26.12 server SQL Server’s default sort order is:
17/09/21 19:40:26.12 server ‘bin_cp850’ (ID = 40)
17/09/21 19:40:26.12 server on top of default character set:
17/09/21 19:40:26.12 server ‘cp850’ (ID = 2)

The DLL for TCP/IP is SSMSSOCN.DLL, and it turns out it really wants to be located in the C:\Windows\SysWOW64 directory (aka the system path for libraries).  Well that’s all great now, isn’t it?

Not really.

ODBC Hell

The ODBC drivers in Windows 10 finally made a magical cut off point that they will not talk to any old and ‘vulnerable’ SQL Servers.  This means that the oldest version you can connect to is SQL Server 2000.  Even SQL 7 didn’t make the cut.  Trying to connect to a SQL 7 server, you just get:

Attempting connection
[Microsoft][ODBC SQL Server Driver]Cannot generate SSPI context

And then I saw this post, about using FreeTDS to connect to MSSQL.  So I followed their instructions, and got nowhere fast just lots of crashing.  Turns out the bloodshed environment’s included G++ just fails 100% of the time for me, with a nice crash.  So I pointed it to the TDM GCC install, and then had to link the DLL manually and… nothing.  No configuration point.  In a fit of rage, I took the exist msvc project, opened it in Visual Studio 2015, and built it, except for one issue…

odbccp32.lib(dllload.obj) : error LNK2019: unresolved external symbol __vsnwprintf_s referenced in function _StringCchPrintfW

Seriously, it turns out that 2015 can’t just link to ODBC, that the libc thing that gave me SDL grief is deeply entrenched all over the place.  So in this case you need to link against legacy_stdio_definitions.lib. Fantastic.

I get my DLL, and yes, it’s a Windows 32bit ODBC driver!

FreeTDS Access failure

And yeah, lots of failure.

A red-herring was seeing this in the trace:

net.c:741:Sending packet
0000 01 01 00 2b 00 00 00 00-53 45 4c 45 43 54 20 43 |…+…. SELECT C|
0010 6f 6e 66 69 67 2c 20 6e-56 61 6c 75 65 20 46 52 |onfig, n Value FR|
0020 4f 4d 20 4d 53 79 73 43-6f 6e 66 |OM MSysC onf|

So I was thinking that SQL 4.21 & 6.5 are just too old to have this weird table, and as mentioned over here people would just create it, to get Access to shut up, and get on with their lives.

So, I put in some SQL

CREATE TABLE MSysConf(CREATE TABLE MSysConf(Config   int NOT NULL,chValue  char(255) NULL,nValue   int NULL,Comments char(255) NULL)
GO
INSERT INTO MSysConf(Config,nValue,Comments)VALUES(101,1,’Prevent storage of the logon ID and password in linked tables.’)
GO

And yes, it creates the table, Access get’s it’s result then obviously doesn’t like it and up and dies.  Maybe I can burn more cycles on it later, or break down and ask.

SQL Server 2000 (Dev) on Windows 10

And then I saw this epic thread, Windows 10 & My SQL Server 2000 Personal.

I managed to install following these steps:

Extract SP4
Copy ..SP4\x86\other\sqlredis.exe to ..\originalinstallpath\x86\other
(this avoid mdac insall freezing)
Create this folder structure (any place):
Microsoft SQL Server\80\Tools\Binn
Microsoft SQL Server\MSSQL\Binn
Find out sqlunirl.dll on SP4 path and copy to Binn folder above
Copy dll files on ..SP4\x86\setup to Microsoft SQL Server\MSSQL\Binn (folder above)
Copy folder structure (created on step 3) to C:\Program Files (x86)
Give full access to user logged to **Microsoft SQL Server** folder
Change install compatiblity ..\originalinstallpath\x86\setup\setupsql.exe
XP SP2
Run as administrator

Could that really be it?  For some reason I had a file held in the Computer\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\PendingFileRenameOperations registry key, preventing me from installing, but zapping the key & stub program, and I was able to follow the steps (I’m still not sure if you copy the dlls into the MSSQL\Binn or Tools\BInn directories, so I copied them to both!) and yes, it worked.  I even could run the SP4 update.

And now I can use Access 2016 with this fine ancient database.

Access 2016 with SQL 2000 via ODBC

And here we are.  As always there is no larger over reaching point to this.  I did have to create a linked SQL login for myself to get ODBC to login properly but it’s somewhat simple, and honestly if that sounds bizarre to you, why are you even thinking about something like this?

For me, I’m interested in the DTS of all things.  Sure the new ones are fancier, and all that jazz, but I paid good money back in the day for old MS dev tools, and being able to use them without any virtualization, aka running on bare iron is all the more appealing.

Early Direct X SDK’s

I found these while looking for something that it turns out I don’t need. Well wasn’t that great.

Anyways this includes the Direct X aka the Windows 95 Game SDK, which contains a substantial bit more documentation than the prior WING project.

I don’t think these are all that interesting to the vast majority of people, but more so anyone looking at SDK’s from the mid 90’s.

Hacking Flight Simulator 4 for multiple monitors

This has to be one of the coolest things I’ve seen in a long time.

Long story short, Wayne was able to exploit a ‘feature’ of older non random address location where a machine is configured the same way will always load the same program in the same address space.  Using this knowledge he was able to work out in memory where the location of the plane was kept in memory.  Adding a ‘server’ and two ‘client’ versions of DOSBox he could then transmit the location of the plane to the two other DOSBox client’s and then just set their viewports to left & right, and now he has an immersive simulation.

It’s a great read here: on tinmith.net

And this also is why ASLR is so important on internet connected devices, and servers where you don’t want to have known addresses in RAM where you can find important ‘protected’ data structures.

Microsoft starting to reduce One Drive storage

5GB..?

5GB..?

I suppose I should have managed it better.  I don’t even know what is there, but I shelled out the $18 HKD to at least keep it for now.

I know Microsoft has long dreamed of being SaaS, instead of being a traditional software vendor.  Is there hope for buy it and own it software as we approach 2020’s?

Either way, if you have onedrive, migrate, fix it, or pay for it.

Installing Microsoft Java on Windows 2000 SP4

So yeah, I’m using some old crap software, and it wants MS Java. Great. Ive installed Windows 2000 + SP4, IE6, and then to install MS Java and I get this error:

protected system component?

protected system component?

The Microsoft VM you are attempting to install is a protected system component and can only be updated with a later release of the operating system or service pack.

Well as far as I know, msjavx86-5.0.3810.0 is the last release of MS Java, so what to do?

Apparently all you have to do is rename it to ‘msjavwu.exe’ and it’ll install.

MS Java on IE6

MS Java in action

And there we go, Microsoft Java is working.

Thanks to the java test site that I’ve used over the years:

http://hp.vector.co.jp/authors/VA012735/applet/applets_en.htm

Merry Christmas from Japan!

So yeah, I’ve been crazy busy this holiday season, between work and vacation so updates have . well not been forth coming.

I wanted to touch on old StarWars games for the new movie, and even got to play Star Wars on a x68000!  If it were the 80’s I would super recommend one.  But in this day/age it’s plagued by poor draw distances, poor wire frame 3d, and just poor game play.  It is probably more of a fault with the arcade version that was revolutionary for it’s time, then it rotted and was ported out.  Something like Frontier puts Star Wars to shame on low grade 68000 based hardware.

But the sound, sure was awesome!

I also want to do some passable review of the retro freak!  I picked up one for about $150 USD. It is expensive, there is no doubt about that, and it is emulation.  I also picked up a NES on a chip console clone for about $13 USD.  At the same time I can score a MegaDrive for about 30-40 USD, and 25-30 for a SNES.  Which brings me to an interesting observation:

There is next to NO Mega Drive stuff.  There is far more Saturn, and very few Dreamcast, but I’s seen maybe 15 Mega Drive carts.  Meanwhile I’ve found Famicom/Super Famicom stuff almost everywhere I look.  My favorite is the local chain “Book Off” that almost always has a nice retro section, along with used PS1, PS2, PS3 and PS4 stuff.

Otherwise, I have horrible to non existent internet in the house I rented (it is like the yacht in Hong Kong from a few years back), so I’ve been forced to spend my time in internet cafes for 12+ hours a day.

Oh yeah, Tokyo is just like London.  After 6pm, everyone goes home, the stores close, and there is nothing open.  After 10 the trains stop and that is that.

While I’m on the subject of living in the future, and working physically wherever, the Microsoft Surface is a HORRIBLE HORRIBLE thing.  Granted I didn’t pay for this one, but it’s wifi chip is utter crap, it is prone to locking hard, and the kickstand and detachable keyboard is a JOKE.  I know Balmer wanted in on the iPad action, and then the Surface RT, eventually became just another PC, but damn a laptop this is not.  The only nice thing I can say is that it boots fast.  Which is something you’ll be doing lots of.  The fan is noisy and distracting, the display is OK, but nothing fancy in this modern age.

I currently had to go out and buy 2 USB Ethernet adapters and bridge the cafe’s internet so I could connect this POS.  I give the Microsoft Surface Pro v3 a 1/5*.  AVOID DO NOT BUY.

Merry Christmas!

Merry Christmas!

In the “neato” section, I did find an eval copy of Citrix.  And a NIB quality box of Postal 2!  I didn’t know there was any updates so that was a surprise.  But now I see it is on sale over on Steam, for $7.50 Hong Kong Dollars.  I would do some give away but I also found out that my account got converted. YAY.

steam is now in HKD

Steam is now priced in Hong Kong Dollars!

Which means I cannot give anything away as apparently I now live in a poorer area and get subsidized games. I guess that is to make up for censored and restricted catalogs.

So yeah, I am alive.

And MERRY CHRISTMAS!!!!!!

Crazy to think that 2016 is literally around the corner!

Snoopy – a basic packet sniffer for Windows

(this is a guest post by Tenox)

A few days ago I wrote a basic packet sniffer / analyzer for Windows for fun. I was working with raw sockets for another application and out of curiosity winged a small packet sniffer in just 200 lines of code. I actually used it already several times to resolve some firewall port blocking issues, instead of spinning up Wireshark, so I decided to release it to public.

The good:

  • Portable, a single, tiny exe
  • Easy to use
  • Doesn’t install any driver like libpcap
  • Extensible, just 200 lines of simple code

The bad:

  • It’s very basic and doesn’t allow anything outside of simple unicast TCP, UDP and ICMP, most importantly layer 2, broadcasts, multicasts, etc are out of question
  • Currently it doesn’t directly support filtering, however you can just pipe it to findstr to filter for anything you want

Raw socket limitations are possibly the biggest issue, but if you just want to find out simple stuff like traffic going to a given port or ip address it’s a perfect little handy dandy tool to carry around.

To use snoopy you specific IP address of the interface on which you want to listen:

snoopy1There also is a verbose mode which shows some more detailed protocol information:

snoopy2Today I decode ICMP message types, TCP flags, sequence, ack and window numbers and DSCP, ECN, TTL and Dont Fragment flags for IP. I’m thinking of embedding /etc/protocols and /etc/services in a .h file to resolve them on the fly.

Bug reports and suggestions most welcome!

Available here: http://www.tenox.net/out#snoopy

 

OpenNT – Windows NT 4.5

(This is a guest post from Tenox)

Just stumbled across this: someone has forked Windows NT 4.0 and created an open source version of it. But wait, forked what? Windows source code doesn’t live on Github. Is it ReactOS? No! Upon some digging, it was apparently born from the leaked source code of NT4.0, some W2K bits and 2003 WRK.

Enter NT version 4.5:

NT45Test-2015-04-27-18-20-37More screenshots here: http://www.opennt.net/projects/opennt/wiki/Screenshots

The main project site: http://www.opennt.net/

Looking at activity the project seems to be alive and well. There is some background information and discussion going on BetaArchive for those interested.

I wonder what Microsoft has to say about this 🙂