Hello all!
I’ve had this idea for quite a while, around late 2016-early 2017ish. That idea was to dissect MSN Explorer, an MSN-branded browser. To basically let it connect without relying on Microsoft servers barring old clients/non-MSN Internet Access accounts (@msn.com
subscription email accounts).
First thing was to test the clients. Sure enough, I did. With Fiddler in hand (although it’s not trusty for connections made with WinHTTP, mind you), I saw some connections to texreg2.msn.com
. Accessing the URL now links you to an inaccessible site, asking for a username and password.
I had ended up coding a quick Python script to host a server and redirected the aforementioned URL to where the server was running. Stupidly enough, I forgot to set something like autossl
up, and connection attempts to the server via HTTPS failed. If I can, I’ll get back to that and properly set things up to see what happens.
Then, I had decided to tear through the .MAR files, since they contained all of the UI files, made up of HTML and JavaScript, which could potentially uncover how registration worked. Only problem, however, was that there is no available program to read/write .MAR files. While searching up details on these proprietary files, I stumbled across a Neowin thread regarding extracting files out of .MAR files. One of the posters, “oDD”, gave out the structure of these files and stated that he’d code a program to extract and recompress .MAR files. Unfortunately, said program doesn’t exist anymore, as it was hosted on an obscure site that has been lost to time. So I knew I had to do my duty as a programmer to use what I had to create a program that could extract and recompress .MAR files.
Initially, the VB6 junkie I was at the time decided to start the project in VB6, envisioning the program as a GUI application that would work like your average archive opener. But due to the complications that are API definitions involving recreating structs and the poor support of bit manipulation, I ditched that in favor of C#.
Now, at this point, I had no idea how unpacking/packing integer types worked, and I was blind from how endianness worked, so I went searching up how to “convert 4-byte DWORDs to 32-bit integers” (yes I thought it worked like that at the time please). Frankly, the initial code works awfully, as it doesn’t extract the filenames or data with 100% accuracy, and again, I was obsessed with getting the GUI stuff to work.
So after abandoning the project for several months, I decided to revisit the project, but this time, get things straight.
Instead of fancying everything with GUIs, I’ll just make the .MAR extraction and compression programs console programs. With my newly found knowledge of unpacking and packing integer types and endianness, I’ll make sure that nothing is butchered during the parsing of those files. When I do get the console programs working, I’ll go examine any and all contents of the source files. If nothing that can lead to progress can be found, then I’ll go back to using loopbacks for services that MSN Explorer might use.
Well that was one lengthy ride of a post. Have a nice day and catch ya later!