pso plus port issue

Discussion in 'Nintendo Gamecube - General discussion' started by twisterco, Sep 23, 2004.

  1. twisterco

    twisterco Member

    Joined:
    Sep 23, 2004
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    11
    Ive been trying to mess with pso 1 and 2 plus loading dol files. Ive been able to get the memory card save to work.. but psul and psoload always crash when they try to upload the dol. I read a thread where some people claimed the problem was that pso plus connects to the server on port 9103 instead of 9100. The only way at first i could get the gamecube to connect to the loader at all was to write a small app in java that accepted the gc connection on 9103 and just relayed all the packet data to the loader server running locally. I noticed some other people said they were using port forwarding programs. I found a simple easy fix if anyone wants to mess around with it. Just open psul.exe or psoload.exe in HexWorkshop and replace all hex values 8C23 with 8F23... The loader will now accept the gamecube connection on port 9103.. no need to rewrite the app ;-)

    Anyways the loaders still crash, so im guessing they probably still will need rewriting to properly load the dol files with pso plus.. I havent gotten any further.. anyone else have any info?
     
  2. Fr0d83

    Fr0d83 Member

    Joined:
    Oct 3, 2004
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    11
    I tried the modifications you mentioned above however I get an error. This is what I get:

    Call to recv(sClient, szInBuffer, sizeof(szInBuffer), 0); failed with: 10054

    I found that this is actually a winsock error code. This is what the error means:

    WSAECONNRESET (10054) Connection reset by peer.

    An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, or the remote host used a "hard close".

    Thought people would be interested in this information. I'm working on fixing this, but it's hard without the source code.
     
    Last edited: Oct 3, 2004
  3. StoneRain

    StoneRain Member

    Joined:
    Sep 30, 2004
    Messages:
    43
    Likes Received:
    0
    Trophy Points:
    16
    There is also rumor going around that you cant use a server that is on the same class C IP. So it could be that even though you are fixing one problem the port, you are still using a server with an IP that is invalid. If you run windows, you can configure a second alternate IP. I dont think it has to be the same IP class. Try that if your bored.
    Here is a thought. Why doesnt someone packet sniff all the traffic for when the GC actually connects to the real PSO server. Understand what it is saying back and forth, making note of who is saying what and its credentials. Then, hook-up a cross-over cable to the GC and PC. Finally, make a program that will spoof the whole god damn internet. I realize that this is more than a modification of the PSOLoader. But, in many ways this might actually be more easy. IP spoofing and MAC address spoofing are well known.
     
  4. Fr0d83

    Fr0d83 Member

    Joined:
    Oct 3, 2004
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    11
    Unfortunately I don't have a real account to play PSO, nor am I interested in getting one. But that does sound like an interesting idea.
     
  5. zephyrius

    zephyrius Member

    Joined:
    Oct 17, 2004
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    11
    Hey, I re-created all of the steps mentioned as well and get the same error message.

    I do have a real PSO account, though. If anyone is interested in working on this project with me (or solo), let me know and I can send you a delimited .csv file with all the login traffic.

    In the meantime, I'm going to keep trying to hack away at PSOload.exe.
     
  6. Fr0d83

    Fr0d83 Member

    Joined:
    Oct 3, 2004
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    11
    I would absolutely LOVE to have that login traffic. Can you e-mail it to me at [noemailsallowed@afterdawn.com] ? Thanks a lot
     
    Last edited: Oct 23, 2004
  7. twisterco

    twisterco Member

    Joined:
    Sep 23, 2004
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    11
    yeah the CSV data might b helpful.. Sorry for any confusion
    most of you seemed to think this fix would make the loaders
    work. It doesnt. It just enables PSO to actually connect to PSUL
    and PSOLoad, however the gamecube still disconnects. At
    least with PSO Plus actually connecting to the PSOLoad server,
    we might be able to work some more on a fix.

    Source code costis please!
     
    Last edited: Oct 18, 2004
  8. Fr0d83

    Fr0d83 Member

    Joined:
    Oct 3, 2004
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    11
    Can we storm his house with torches and pitchforks and demand the source?
     
  9. bigwill29

    bigwill29 Member

    Joined:
    Oct 20, 2004
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    11
    I will try to use a linux with ip forwarding between my pc and the gc, forwarding all connection from 192.168.1.32/24 on port 9103 to a class A ip address on port 9100, so it could solve the problem without rewriting or fixing code. I will try this and get back to you guys. If somebody have an idea to complete or replace mine share it I will try to do it.
     
  10. bigwill29

    bigwill29 Member

    Joined:
    Oct 20, 2004
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    11
    By now, when I first try it this night with the normal setup, all I could get from cubesoft was A DNS Query from 192.168.1.32 was served. This was for the Save user data to memcard. But with the setup I told in my last post it's seem to work. My dos window waiting for connection said "connecting" then "saving user data" then close by herself. I've start this evening so I'm really a newbie. If somebody can point me out which port I need to forward for streaming dol files it would help me alot.
     
  11. npd

    npd Member

    Joined:
    Aug 9, 2004
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    11
    I tried the modifications suggested at the top of this page (I have PSO 1&2 Plus) and it saved the information to the memory card. However, whenever I try to make a backup off of the gamecube, it waits for a connection, and then connects. (Before the modification, it didn't connect at all) Then the computer window closes, and on the gamecube I'm left with "The line was disconnected. GAME OVER. Press start."
    Sorry if I'm repeating questions asked by others, but is there any possible way to make a backup of a game with PSO1&2 plus?
    _X_X_X_X_X_[small]Hi.[/small]
     
    Last edited: Oct 23, 2004
  12. StoneRain

    StoneRain Member

    Joined:
    Sep 30, 2004
    Messages:
    43
    Likes Received:
    0
    Trophy Points:
    16
    wow, im impressed that someone made progress on this. good work guys. I would really like to know if you get it to work. I dont know much about linux so I cant test this stuff out myself. you might have to check to see if the receiving port on the GC is the same as the old one. If they changed the server port I can only guess they changed the GC port. this will be harder to figure out because you will have to wait to till the exact moment that the port opens and then ping them all before it closes.

    or this info should be in a log of an actual log on. much more simple.

    just a guess...
     
    Last edited: Oct 23, 2004
  13. Mr69ways

    Mr69ways Guest

    You guys still working on this?
     
  14. twisterco

    twisterco Member

    Joined:
    Sep 23, 2004
    Messages:
    3
    Likes Received:
    0
    Trophy Points:
    11
    I was messing around with PSO some more, heres what I found out so far, maybe someone can help fill me in.

    When the GC first connects to the server, the server sends some information about the server, its viewable in plain text and says something like Dreamcast Port Map... at the end of the packet is an 8 byte key. All further communication between the GC and server are encrypted using this key.

    PSOLoad and PSUL have a fixed key that is sent to the GC everytime, so the encrypted data is always the same. They each use a different key though. My guess is that the authors of the program observed the communication between the GC and the actual sega server and just wrote a program to mirror the responses from the sega server. No decrypting is involved. If you hex edit the key in psoload to another 8 byte key, it gives an unexpected client response error or something, so all of the communication is hard coded into the app.

    I would love to figure out the encryption so that it is possible to see the actual communcation that is occuring. The people that made the unofficial PSO server software for dreamcast and PC have figured out the encryption http://schtserv.funurl.com/ but they dont release source code because they want people to continue to use sega's servers for gamecube and xbox.

    The problem may not actually be with the loaders, as some thought PSO just limited access to certain ip ranges and stuff. Networking isnt my favorite field but I dont know how this kind of protection would be implemented, especially with features such as the proxy server. If someone was able to get a proxy server going, then the GC could actually contact a real DNS server, send out the request for the sega server to the proxy server, then the proxy server could just tunnel the connection to PSUl or PSOload. Any thoughts?
     
  15. Mr69ways

    Mr69ways Guest

    Maybe you can shed some light on me.I am getting the "DNS Server Error->Can't bind socket" when tyring to load the testdemo4.dol via PSO ver2.0

    Here is my setup.
    PSO+ settings:
    IP:192.168.0.32 (does it have to be 192.168.1.32)
    Subnet:255.255.255.0
    Gateway:192.168.0.1
    DNS Server:151.196.111.74

    Windows XP Computer:
    IP:151.196.111.74
    Subnet:255.255.255.0
    Gateway:192.168.0.1
    DNS Server:127.0.0.1

    Using Hanewin DNS Server to forward gc01.st-pso.games.sega.net to 151.196.111.74
     
  16. StoneRain

    StoneRain Member

    Joined:
    Sep 30, 2004
    Messages:
    43
    Likes Received:
    0
    Trophy Points:
    16
    you are right I think, a proxy would clear up many of the networking problems. I'm not totally sure though. try it and see if you can get all the same successful responces.

    So it is encrypted, hmmm. I believe there are programs out there that if you have 20 compinations of "A" & "B" that are encrypted. It can decrypt them, because every A = B regardless of whether you have 2A = 2B or 3A = 3B... I think there used to be some serial # generators that worked of this stuff. So basically what I am saying is if you have 20 logs of the 8 byte key and 20 logs of maybe the first line of the responce you should be able to figure out the algorithem. Honestly, you probably need more like 64-128 combinations (more combinations, more accurate), instead of just 20. Am I right here 8 byte = 64 bit encryption? I think the way most encryption works these days is that (in this case) 1)the server sends an encypted message 2)the GC decrypts it 3)it reads the message 4) in re-encypts it 5) it sends it back to the server which sees if it got the same decrypted message back.

    All of this really doesnt explain why PSOload doesnt connect if it is not just a simple port issue or IP filtering, unless the encryption is different. You just need to figure out what new responce to mirror. I think maybe this gives evidence that the Plus version is on a different port is because it connects to a different server software that has slightly different encryption.

    I'm still curious to know if the GC is listening for the server (the real one, not psoload) on a different port?

    Really wish I had the knowledge to answer more of these questions myself.

    mr69ways. PSOLoad v2.0 has a DNS server built in, if you are running an extra DNS server or you didnt reboot your computer after installing it, I have gotten those messages. try disabling PSOLoad's DNS server. It has something to do with all of this...
     
  17. Mr69ways

    Mr69ways Guest

    StoneRain, I will try what you said. Anyway to use a "network sniffer" to determine what port PSO+ is using. I don't have a account to go online with PSO+ (would be nice to have a log file of what going on during the log in process).
     
  18. Morfiuso

    Morfiuso Member

    Joined:
    Nov 16, 2004
    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    11
    Is there any news about this issue?
    I will sniff the ethernet stuff and look at the packets this week, when i get the time!
    But any new info would be great
     
  19. Mr69ways

    Mr69ways Guest

    I really have not had time myself to sniff the network.
     
  20. doood81

    doood81 Member

    Joined:
    Nov 20, 2004
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    11
    I've been able to capture all the packets during the DNS query and load process. All traffic aims for port 9103 but I'm seeing two packets with [CHECKSUM INCORRECT] that are replies from psul to the gc. It seems there is some header checksumming going on here or something?

    I'm using pso I&II plus on a US gc rev 2.

    C:\>psul.exe testdemo4.dol
    PSUL 1.1 Copyright (C) 2003, Titanik of Crazy Nation

    Starting server on 192.168.0.235...
    Waiting for connection...
    Served DNS query from 192.168.0.234...
    Connected (US)...
    Sending file...Error > Communication error 0b...

    Has anyone made any progress for pso plus users?
     
    Last edited: Nov 20, 2004

Share This Page