Extending the Life of Halo Modding

Everything about HD, MD, and their mods.

Moderator: Halo Moderators

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: Extending the Life of Halo Modding

Post by Modzy » Fri Dec 30, 2011 11:37 pm

I don't even know how this one worked... Started a server using a gibberish key:

Image

Apparently joinable as this random doodly joined:

Image

Proof of gibberish key:

Image

EDIT: Turns out somehow my firewall settings allowed this. Huh.

Mgalekgolo
Commando
Posts: 2589
Joined: Thu Jun 24, 2010 6:36 am

Re: Extending the Life of Halo Modding

Post by Mgalekgolo » Sat Dec 31, 2011 7:45 am

Cronos Dage wrote:Smart.

If anyone wants I am very good at using PackageMaker and Disk Utility in terms of making a .pkg file for such(an attractive Installer, ReadMe and all) or a mounted disk image.
My job bro, you can make me an image though, but i'll probably use bunneh's if he ever finishes it.
Yarok wrote:There may be a giant dildo protruding from your forehead.
Image

nil
Halo Moderator
Halo Moderator
Posts: 1090
Joined: Sat Jul 05, 2008 8:38 am
Location: null zone

Re: Extending the Life of Halo Modding

Post by nil » Sat Dec 31, 2011 11:44 am

What did I just say about packaging/icons/dmgs? (FYI: installers are terrible, ideally, we would want to avoid that)

@Modzy: Is it possible to see which server(s) your firewall was blocking in that scenario. I think it is blocking on you receiving packets but not on sending packets.
I am no longer active to Halo or MGM, and don't guarantee a response on the forums or through email. I will however linger around the discord room for general chatting. It's been fun!

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: Extending the Life of Halo Modding

Post by Modzy » Sat Dec 31, 2011 1:53 pm

nil wrote:What did I just say about packaging/icons/dmgs? (FYI: installers are terrible, ideally, we would want to avoid that)

@Modzy: Is it possible to see which server(s) your firewall was blocking in that scenario. I think it is blocking on you receiving packets but not on sending packets.
Did a bit of packet sniffing. It was blocking all connections from the Gamespy server (heh). It sent all the register data, Gamespy sent a packet, then they sent the same packet three more times until I closed the server. I'm assuming it kept sending the packet as it had not received a follow up from my server (it was being blocked). When the firewall is off, the packet from Gamespy is received, and I'm kicked out one packet later.

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Extending the Life of Halo Modding

Post by Sparky » Mon Jan 02, 2012 5:26 pm

So why would the Gamespy SDK allow you to set up the server before your CD Key was authenticated?

Also, does this mean that we can simply modify our firewall settings to block the gamespy server from connecting to our computer when we host and everything will be hunky-dory?
Either you are groping for answers, or you are asking God and listening to Jesus.

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: Extending the Life of Halo Modding

Post by Modzy » Mon Jan 02, 2012 7:48 pm

Sparky wrote:So why would the Gamespy SDK allow you to set up the server before your CD Key was authenticated?

Also, does this mean that we can simply modify our firewall settings to block the gamespy server from connecting to our computer when we host and everything will be hunky-dory?
Setting up a server does not require key authentication. It's when you *join your own server* (your player is set up) that the key auth is sent. Using a firewall will allow server creation, however joiners still need a working key.

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: Extending the Life of Halo Modding

Post by Modzy » Tue Jan 03, 2012 2:05 am

I've been trying to find a way to completely remove the key prompt the first time you launch Halo, so that we don't need to enter a random key.
Using GDB I've been able to skip the key check and go straight to the graphics options without any ill effect. You can test this by deleting your preference file and doing the following in GDB:
break * 0x0029b510
break * 0x002a7eae

(wait for Halo to break at 0x0029b510)

ret 1
y
cont

(wait for Halo to break at 0x002a7eae)

ret 1
y
cont
The graphics options screen will appear and you'll be set to go. However, I'm having trouble applying this to the application as nopping these functions does not have to same effect as using ret 1. If the functions are nopped from the application, when launched, Halo will display "The product key you entered is not valid. Please try again." If you hit OK, it will just display the same message over again.

nil
Halo Moderator
Halo Moderator
Posts: 1090
Joined: Sat Jul 05, 2008 8:38 am
Location: null zone

Re: Extending the Life of Halo Modding

Post by nil » Tue Jan 03, 2012 12:23 pm

Doesn't work for me. I keep getting a pop up window saying "The Product Key you entered is not valid. Please try again." Stuck in an infinite loop, breaking at 0x0029b510.

Something like this is happening:

Code: Select all

(wait for Halo to break at 0x0029b510)

ret 1
y
cont

Dialog popup: "The Product Key you entered is not valid. Please try again."

(wait for Halo to break at 0x0029b510)

ret 1
y
cont

Dialog popup: "The Product Key you entered is not valid. Please try again."

ret 1
y
cont

...etc.
I am no longer active to Halo or MGM, and don't guarantee a response on the forums or through email. I will however linger around the discord room for general chatting. It's been fun!

Modzy
Green Beret
Posts: 3058
Joined: Fri Feb 22, 2008 11:06 pm
Location: Portland, OR

Re: Extending the Life of Halo Modding

Post by Modzy » Tue Jan 03, 2012 4:29 pm

nil wrote:Doesn't work for me. I keep getting a pop up window saying "The Product Key you entered is not valid. Please try again." Stuck in an infinite loop, breaking at 0x0029b510.
Are you using an unmodified 2.0.4? I've tried it with your modification and what you stated is exactly the result I get.

nil
Halo Moderator
Halo Moderator
Posts: 1090
Joined: Sat Jul 05, 2008 8:38 am
Location: null zone

Re: Extending the Life of Halo Modding

Post by nil » Sun Jan 15, 2012 7:19 pm

I'm getting kind of sick of this. I happened to discover from all our research what may be a "good enough" and "hopefully possible" solution, at least, it sounds good to me. It requires us implementing our own lobby, however. Here I explain:

This version will use a different application identifier (not com.macsoft.halo but something else) - this is easy to do.

We will have a 'wrapper' application that launches before Halo, it acts as a 'launcher'. Ideally we'd have it such that the ordinary user would not be able to notice (but if not, not a big deal really). This was kind of thought about already because we'd want to automate entering in a random serial key. The launcher will also contain a lobby of open games. It will connect to a server that provides information on which games are open (our own master server).

The launcher will contain two options: choosing a game from the list to 'join' or starting Halo normally. How will the game to join thing work? Well, the launcher can tell Halo to connect to a server on startup via init.txt (HDemoLauncher makes use of a similar feature). Writing/Updating in the app bundle is not reliable to work though as write permissions are not guaranteed there.. But, Halo relies on the current directory to determine where the game data files are (and thus calls chdir - short for change directory). So simple solution is to NOP the instruction that calls chdir in Halo, and set the current directory in the launcher somewhere in ~/Library/blah/ where we can have our init file be there (and for the other game data files, the launcher will create and update symbolic links to).

Now if you start Halo normally, you can 'host' games. When you host an internet game, at least for the first time, halor.master.gamespy.com is connected to. In the executable, there is a string or two, '%s.master.gamespy.com' - all that needs to be done is replace this string with the server that we want to use. This will bypass the invalid serial key prompts and also contact our own master server to tell it that our server is up. The master server will keep track of the server and make sure that it is kept alive by pinging it or some other way. It will take down the server from the list when the server is no longer reachable or if we can somehow tell what packet is received that says the server is going to close. I also know how to grab information from a particular server by pinging it as I've done it before in HDL, so I can obtain that stuff.

This will obviously require a server program running 24/7 by the way, as would any "our own lobby" approach. We'd have to figure out the port numbers being used too and what ports to forward/unblock.
Last edited by nil on Mon Jan 16, 2012 10:17 am, edited 2 times in total.
I am no longer active to Halo or MGM, and don't guarantee a response on the forums or through email. I will however linger around the discord room for general chatting. It's been fun!

Mgalekgolo
Commando
Posts: 2589
Joined: Thu Jun 24, 2010 6:36 am

Re: Extending the Life of Halo Modding

Post by Mgalekgolo » Sun Jan 15, 2012 7:34 pm

My version of the app uses com.mgalekgolo.halo lol.
Yarok wrote:There may be a giant dildo protruding from your forehead.
Image

nil
Halo Moderator
Halo Moderator
Posts: 1090
Joined: Sat Jul 05, 2008 8:38 am
Location: null zone

Re: Extending the Life of Halo Modding

Post by nil » Mon Jan 16, 2012 8:30 am

I was able to create a simple 'listening server' that intercepted packets (and it looks possible to distinguish which packet says a game is starting and which one says the server is closing). The port used is 29910 on UDP. This convinces me more that this is possible..
I am no longer active to Halo or MGM, and don't guarantee a response on the forums or through email. I will however linger around the discord room for general chatting. It's been fun!

Monoman
Site Admin
Site Admin
Posts: 2662
Joined: Sat Aug 16, 2003 11:26 pm
Location: Planet Bob
Contact:

Re: Extending the Life of Halo Modding

Post by Monoman » Mon Jan 16, 2012 11:25 am

nil, if you flesh out the server enough for testing and have it working Linux and not just Mac. I can throw it on the server I have Minecraft running for you guys to do some better testing.
Kansas....Like Paris Hilton: White, Flat, and Easy to Enter. -- Conan O'Brien

Masturbation is like procrastination, they're both great until you realize your screwing yourself.

MGM Discord | MGM Chat
MGM Sig

Sparky
Delta Force
Posts: 4194
Joined: Wed Mar 31, 2004 8:59 pm
Location: New Jersey, USA
Contact:

Re: Extending the Life of Halo Modding

Post by Sparky » Mon Jan 16, 2012 7:49 pm

Monoman, you can get the GameSpy SDK from the gamespy web site by simply signing up and downloading it (no money required) or I can upload it to HDM or something for you to download. That's if the SDK will be useful; it's an XCode Project. Actually, I think I already uploaded it, just check the topic here and there's a link to the download.
Either you are groping for answers, or you are asking God and listening to Jesus.

Monoman
Site Admin
Site Admin
Posts: 2662
Joined: Sat Aug 16, 2003 11:26 pm
Location: Planet Bob
Contact:

Re: Extending the Life of Halo Modding

Post by Monoman » Tue Jan 17, 2012 12:26 pm

Sparky wrote:Monoman, you can get the GameSpy SDK from the gamespy web site by simply signing up and downloading it (no money required) or I can upload it to HDM or something for you to download. That's if the SDK will be useful; it's an XCode Project. Actually, I think I already uploaded it, just check the topic here and there's a link to the download.
Yes, but I'm not looking to use any of GameSpy's services and if nil continues on with his latest post he wouldn't be using it either.
Kansas....Like Paris Hilton: White, Flat, and Easy to Enter. -- Conan O'Brien

Masturbation is like procrastination, they're both great until you realize your screwing yourself.

MGM Discord | MGM Chat
MGM Sig

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Google [Bot] and 28 guests