Announcement

Collapse
No announcement yet.

Resurrecting an online server

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • brad2192
    replied
    Just a quick thought, I know when the game "Amplitude" went offline they redirected the DNS to SOCOM I. I know on Bobzent.info he used to have a DNS server for Amplitude he discontinued support but I would like to see if it could be used to resurrect the SOCOM I server? I would love to see if someone could get in contact with him, as I do not have Facebook but I do know he has a page. Thanks guys! http://bobzent.info/

    Leave a comment:


  • KrazyKimahri
    replied
    its amazing the very thing that people complained about when socom was alive is the very thing that may bring it back to life I think I could be happy with a CA private server I would definitely rather socom 2 myself but ultimately I support everything you guys do. you are the exact reason why I am doing what I'm doing granted I wish I had just a piece of one of your brains in my head lol. keep up the good work. I follow you guys around like a crazy ex you are all the reason I even started exploring programming.

    Leave a comment:


  • s2ali
    replied
    updates?

    Hey guys,

    First and foremost, thank you to everyone is helping resurrect the Socom I/II online servers. For the time being, myself and others have been steadily growing the number of players who actively play on xLink, which we can all agree is far from perfect. There is a community of 2,075 members on Facebook who are excited for what you guys are doing. Hats off you all!

    I just wanted to ask if there were any new updates regarding this project? Any breakthroughs, milestones, roadblocks o recent developments that you can share with the community?

    Is there anything that the community can do to help accelerate your progress? Will you accept donations? Missing resources/skill sets? We will help anyway that we can.

    Cheers!
    - Ali

    Leave a comment:


  • Gtlcpimp
    replied
    I think this should constitute as a small bit of progress towards being able to achieve the main goal here. Since I don't want to port over everything I have logged on 1.4 patch, I now have something even better. Completely dumped all the patch files in their natural, non-encrypted forms. Since I am not really sure if it would be a copy right violation, I'll post the code used instead of posting the decrypted files. With the Patch Loader mod, non-encrypted patches can be loaded on any console (no more "created on another console" b.s. error). This also allows the much more efficient route of creating a game mod to enable online play again without depending as heavily on a cheat device.

    Code written for the process:
    Code:
    =======================================================================================================
    =======================================================================================================
    =========================================================================================== Misc
    
    /*
    
    	Disables the ERX stubs from re-encrypting to allow viewing the functions in their
    	natrual form. Gave up on this route, after seeing it's using a bunch of RSA key
    	mumbo jumbo on the patch files...
    
    */
    
    Disable ERX Re-Encrypt 1
    209dbea8 5520001d
    209dbeac 00000000
    
    Disable ERX Re-Encrypt 2
    209d2e80 5520001d
    209d2e84 00000000
    
    
    
    =======================================================================================================
    =======================================================================================================
    =======================================================================================================
    =========================================================================================== Decrypt.cds
    
    /*
    
    	Decrypts the files from the memory card, and haults the system to allow memory dumping
    
    */
    
    address $001840f8
    hexcode $241300a0
    
    address $00183b24
    jal :decryptTest
    
    address $00080000
    
    string file_00 "S3CORE"
    string file_01 "RTBASEv1.4"
    string file_02 "RTCERTv1.4"
    string file_03 "RTCOMMv1.4"
    string file_04 "RTCRYPTv1.4"
    string file_05 "RTINETCv1.4"
    string file_06 "RTMEDIAv1.4"
    string file_07 "RTMEDIASv1.4"
    string file_08 "RTMCLv1.4"
    string file_09 "RTMGCLv1.4"
    string file_0a "RTMSGCLv1.4"
    string file_0b "RTOBJECTv1.4"
    string file_0c "RTP2Pv1.4"
    string file_0d "RTSSLv1.4"
    string file_0e "INETCV6v1.4"
    
    define binAddr $00088000
    
    fnc writeOutput(EE a0, EE a1, EE a2, EE a3)
    {
    	sw a1, $0000(a0) // &Data
    	sw a2, $0004(a0) // File Size
    	sw a3, $0008(a0) // Full Size
    	
    	addiu v0, a0, $000c
    	a1 += a3
    	addiu v1, a1, $0020
    }
    
    fnc decryptTest(void) \s0,s1,s2
    {
    	setreg s0, :dumpWrite
    	setreg s1, :binAddr
    	
    	call memAlloc($40, $00800000, 0)
    	s1 = v0
    	
    	for (a0 = 0; a0 < 0x00800000; a0 += 4)
    	{
    		v1 = -1
    		sw v1, $0000(v0)
    		v0 += 4
    	}
    	
    	call decryptFile(:file_00, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_01, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_02, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_03, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_04, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_05, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_06, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_07, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_08, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_09, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_0a, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_0b, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_0c, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_0d, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call decryptFile(:file_0e, s1)
    	call writeOutput(s0, s1, v0, v1)
    	s0 = v0
    	s1 = v1
    	
    	call hault()
    }
    
    fnc decryptFile(EE a0, EE a1) \s0,s1,s2,s3
    {
    	addiu sp, sp, $ff80
    	s1 = sp
    	sq zero, $0000(s1)
    	
    	//call memAlloc($40, $00800000, 0)
    	s3 = a0
    	s2 = a1
    	
    	call LoadMCPatchFile(1, s3, s2)
    	s0 = v0
    	if (s0 <= 0)
    	{
    		call hault()
    	}
    	
    	call Decrypt_1(s0, s2, s1)
    	if (v0 <> 0)
    	{
    		call hault()
    	}
    	
    	lw a1, $0000(s1)
    	call Decrypt_2(s0, a1, s2)
    	if (v0 <> 0)
    	{
    		call hault()
    	}
    	
    	/*
    	nop
    	nop
    	nop
    	nop
    	
    	setreg v0, :dumpWrite
    	lw a0, $0000(s1)
    	sw s2, $0000(v0) // Compressed Data
    	sw a0, $0004(v0) // Compressed Size
    	
    	call hault()
    	*/
    	addiu sp, sp, $0080
    	
    	// Return compressed size
    	lw a0, $0000(s1)
    	v0 = a0
    	v1 = s0
    }
    
    fnc hault(void)
    {
    	while (1)
    	{
    		nop
    		nop
    		nop
    		nop
    		nop
    		nop
    	}
    }
    dumpWrite:
    
    addradd $100
    
    // int malloc(int a, int size, int c)
    extern $001848c0 memAlloc(EE a0, EE a1, EE a2)
    
    // void free(int *data)
    extern $001802d0 memFree(EE a0, EE a1, EE a2)
    
    /*
    Input:
    	a0 = MC Pos? :: 1
    	a1 = File Name (S3CORE, etc)
    	a2 = &Dest
    Output:
    	v0 = Size
    */
    extern $00184090 LoadMCPatchFile(EE a0, EE a1, EE a2)
    
    
    /*
    Input:
    	a0 = Size
    	a1 = &Data
    	a2 = &NewSizeDest
    Output:
    	v0 = ZERO (Success)
    */
    extern $009cc870 Decrypt_1(EE a0, EE a1, EE a2)
    
    /*
    Input:
    	a0 = Size
    	a1 = OutputSize
    	a2 = &Data
    Output:
    	v0 = ZERO (Success)
    */
    extern $009cd1b0 Decrypt_2(EE a0, EE a1, EE a2)
    
    
    
    
    
    
    
    
    =======================================================================================================
    =======================================================================================================
    =========================================================================================== PatchLoader.cds
    
    /*
    
    	Forces the game to use the non-encrypted files
    
    */
    
    
    address $00183fd0
    
    addu v0, s0, s2
    lw s2, $fffc(v0)
    
    a0 = s3 // Destination
    addiu a1, sp, $0080 // Stack for Return Size
    a2 = s0 // &Data
    a3 = s2 // Compressed Size
    
    
    jal $001f6470
    nop
    
    goto $00184020
    
    
    
    address $002ebf78
    //a0 = size; a1 = addr;  a2 = &stack
    s2 -= 4
    addu a1, a1, s2
    lw a0, $0000(a1)
    sw a0, $006c(sp)
    goto $002ebfa0
    
    
    address $0019bf54
    //a0 = size; a1 = addr;  a2 = &stack
    s1 -= 4
    addu a0, s4, s1
    lw v0, $0000(a0)
    sw v0, $0000(sp)
    v0 = 0
    goto $0019bfa8
    
    
    
    
    
    
    
    
    =======================================================================================================
    =======================================================================================================
    =========================================================================================== CSharp Code
    
    /*
    
    	Extracts the decrypted files from the memory dump
    
    */
    
    string dump = "C:\\ISO\\Dumps\\CA\\Patch Load\\Take 2\\Dump.bin";
    byte[] raw = System.IO.File.ReadAllBytes(dump);
    string[] fileNames =
    {
        "S3CORE", "RTBASEv1.4", "RTCERTv1.4", "RTCOMMv1.4", "RTCRYPTv1.4", "RTINETCv1.4",
        "RTMEDIAv1.4", "RTMEDIASv1.4", "RTMCLv1.4", "RTMGCLv1.4", "RTMSGCLv1.4", "RTOBJECTv1.4",
        "RTP2Pv1.4", "RTSSLv1.4", "INETCV6v1.4"
    };
    
    int Table, Entry, Size, FullSize;
    Table = 0x000804c4;
    for (int i = 0; i < fileNames.Length; i++)
    {
        Entry = BitConverter.ToInt32(raw, Table);
        Table += 4;
        Size = BitConverter.ToInt32(raw, Table);
        Table += 4;
        FullSize = BitConverter.ToInt32(raw, Table);
        Table += 4;
    
        if (i == 0)
        {
            byte[] fData = new byte[Size];
            for (int i2 = 0; i2 < Size; i2++)
            {
                fData[i2] = raw[Entry];
                Entry++;
            }
            string fSave = "C:\\ISO\\Dumps\\CA\\Patch Load\\Take 2\\Decrypted\\" + fileNames[i];
            //System.IO.File.WriteAllBytes(fSave, fData);
            System.IO.BinaryWriter bw = new System.IO.BinaryWriter(System.IO.File.Open(fSave, System.IO.FileMode.Create));
            bw.Write(fData);
            int tmpSize = Size;
            while ((tmpSize & 3) != 0)
            {
                bw.Write(Convert.ToByte(0));
                tmpSize++;
            }
            bw.Write(Size);
            bw.Close();
        }
        else
        {
            int entry2 = (Entry + FullSize);
            do
            {
                entry2 -= 4;
                FullSize -= 4;
            } while (BitConverter.ToInt32(raw, entry2) != 0);
    
            byte[] fData = new byte[FullSize];
            for (int i2 = 0; i2 < FullSize; i2++)
            {
                fData[i2] = raw[Entry];
                Entry++;
            }
    
            string fSave = "C:\\ISO\\Dumps\\CA\\Patch Load\\Take 2\\Decrypted\\" + fileNames[i];
            System.IO.BinaryWriter bw = new System.IO.BinaryWriter(System.IO.File.Open(fSave, System.IO.FileMode.Create));
            bw.Write(fData);
            bw.Write(Size);
            bw.Close();
        }
    }
    MessageBox.Show("Done.");

    Leave a comment:


  • brad2192
    replied
    https://github.com/FogNo23/DNASrep

    Leave a comment:


  • Harry62
    replied
    Originally posted by Clearvue View Post
    Holy wow, Its been so long! Harry, 1UP .. jesus

    Idk how many of you will remember me, Harry Probably does. I used the name Stealth and clearvue in the Socom Days. Bluefrost, cys, DNAS, all that nonsense .. its been a damn long time. I lost contact with most people after I joined the Army.

    Its pretty cool to see you guys still focused on this project! Good for you guys. And Harry, I'm glad to see you still focused on a passion like this.
    Long time no see Stealth. I haven't heard from any of the bluefrost guys in years, probably 10 years at this point. We meet up a few times a year to hack the hell out of SOCOM for old times sake. You can contact me via skype @harrysix2. We are trying to put out a new code video each year to keep up with the SOCOM tradition. Here's the 2015 and 2016 videos:

    2015:
    https://www.youtube.com/watch?v=gPJc2sAMIFo

    2016:
    https://www.youtube.com/watch?v=uOidmKf7D3I
    Last edited by Harry62; 12-22-2016, 05:56:38 AM.

    Leave a comment:


  • Clearvue
    replied
    Holy wow, Its been so long! Harry, 1UP .. jesus

    Idk how many of you will remember me, Harry Probably does. I used the name Stealth and clearvue in the Socom Days. Bluefrost, cys, DNAS, all that nonsense .. its been a damn long time. I lost contact with most people after I joined the Army.

    Its pretty cool to see you guys still focused on this project! Good for you guys. And Harry, I'm glad to see you still focused on a passion like this.

    Leave a comment:


  • 1UP
    replied
    Originally posted by brad2192 View Post
    It does work, but I promise you there is no way to get it work without lagging with over 2 people in a match.
    We are well aware of this, plus that's not what the end goal is. The problem he was having was the network plugin just wasn't working.
    Last edited by 1UP; 12-11-2016, 01:19:46 AM.

    Leave a comment:


  • Gtlcpimp
    replied
    We discovered the issue. Apparently WinPCap (that is required for the plugin to work) has an issue with connecting back to the same machine. I have to load my server application on a different host in order to make a connection.

    By the way, if anyone understands this method better, having a bit of a set back with producing an online server for SOCOM: Combined Assault. Looking to see if anyone has any prior knowledge about this packet in particular. It gets sent out when requesting the Universe server listings, and doesn't seem to like me very much if I try to bypass the function that does this...
    Code:
    0x00000000   24 D9 02 03 00 6F 00 6E-00 6D 00 03 00 00 06 00   $Ù.o.n.m....
    0x00000010   04 01 00 C7 02 30 82 02-C3 30 82 01 AB A0 03 02   .Ç0‚Ã0‚«*
    0x00000020   01 02 02 14 01 00 00 00-00 00 00 00 00 00 00 00   ...........
    0x00000030   42 00 00 00 00 00 01 3D-30 0D 06 09 2A 86 48 86   B.....=0..*†H†
    0x00000040   F7 0D 01 01 05 05 00 30-81 96 31 0B 30 09 06 03   ÷..0–10.
    0x00000050   55 04 06 13 02 55 53 31-0B 30 09 06 03 55 04 08   UUS10.U
    0x00000060   13 02 43 41 31 12 30 10-06 03 55 04 07 13 09 53   CA10U.S
    0x00000070   61 6E 20 44 69 65 67 6F-31 31 30 2F 06 03 55 04   an Diego110/U
    0x00000080   0A 13 28 53 4F 4E 59 20-43 6F 6D 70 75 74 65 72   .(SONY Computer
    0x00000090   20 45 6E 74 65 72 74 61-69 6E 6D 65 6E 74 20 41    Entertainment A
    0x000000A0   6D 65 72 69 63 61 20 49-6E 63 2E 31 14 30 12 06   merica Inc.10
    0x000000B0   03 55 04 0B 13 0B 53 43-45 52 54 20 47 72 6F 75   USCERT Grou
    0x000000C0   70 31 1D 30 1B 06 03 55-04 03 13 14 53 43 45 52   p10USCER
    0x000000D0   54 20 52 6F 6F 74 20 41-75 74 68 6F 72 69 74 79   T Root Authority
    0x000000E0   30 1E 17 0D 30 36 30 36-31 36 31 37 35 39 32 35   0.060616175925
    0x000000F0   5A 17 0D 33 36 30 36 31-34 32 33 35 39 35 39 5A   Z.360614235959Z
    0x00000100   30 68 31 0B 30 09 06 03-55 04 06 13 02 55 53 31   0h10.UUS1
    0x00000110   0B 30 09 06 03 55 04 08-13 02 43 41 31 12 30 10   0.UCA10
    0x00000120   06 03 55 04 07 13 09 53-61 6E 20 44 69 65 67 6F   U.San Diego
    0x00000130   31 0D 30 0B 06 03 55 04-0A 13 04 53 43 45 41 31   1.0U.SCEA1
    0x00000140   0F 30 0D 06 03 55 04 0B-13 06 5A 69 70 70 65 72   0.UZipper
    0x00000150   31 18 30 16 06 03 55 04-03 13 0F 53 4F 43 4F 4D   10USOCOM
    0x00000160   20 43 41 32 20 32 30 36-30 34 30 5C 30 0D 06 09    CA2 206040\0..
    0x00000170   2A 86 48 86 F7 0D 01 01-01 05 00 03 4B 00 30 48   *†H†÷..K.0H
    0x00000180   02 41 00 C3 AF 72 08 96-62 3B 90 DE 4E FD 9D 65   A.ïr–b;ÞNýe
    0x00000190   AD 43 A7 FC CB 29 28 8F-F7 13 A3 C4 7F F6 F6 1F   *C§üË)(÷£Äöö
    0x000001A0   7D 27 A6 2B 17 EE E6 41-26 DA CA C5 C0 D3 FE 3F   }'¦+îæA&ÚÊÅÀÓþ?
    0x000001B0   10 A1 F6 89 C4 34 68 61-F0 BE F0 B7 56 26 5D A3   ¡ö‰Ä4hað¾ð·V&]£
    0x000001C0   13 C7 7B 02 03 00 00 11-30 0D 06 09 2A 86 48 86   Ç{..0..*†H†
    0x000001D0   F7 0D 01 01 05 05 00 03-82 01 01 00 4C F6 51 AD   ÷..‚.LöQ*
    0x000001E0   1E 51 D4 04 AB 35 0B 3B-8E 36 FE 8B 3B E4 2D EF   QÔ«5;Ž6þ‹;ä-ï
    0x000001F0   C7 3F 9A 8A D0 A4 0A E0-C6 2C F3 CE 97 4E 5B FF   Ç?šŠÝ¤.àÆ,óΗN[ÿ
    0x00000200   DA B3 48 58 99 26 AD E4-71 E1 2A 05 1E 28 24 08   Ú³HX™&*äqá*($
    0x00000210   B8 45 10 D5 41 45 16 49-69 36 37 3A 16 08 19 1E   ¸EÕAEIi67:
    0x00000220   79 7B 3B B6 62 B6 8D E6-BB 96 AD 28 A3 7A 9B B7   y{;¶b¶æ»–*(£z›·
    0x00000230   E7 AB AB CD 9D E4 88 61-06 65 88 16 7E 87 6C F7   竫ݝäˆaeˆ~‡l÷
    0x00000240   3D CB 0A 26 E8 84 10 D4-D7 3C 27 9C 52 3B A2 24   =Ë.&è„Ô×<'œR;¢$
    0x00000250   1D B8 05 67 09 44 7D 97-40 D0 8A 92 16 83 D8 E8   ¸g.D}—@ÝŠ’ƒØè
    0x00000260   B8 7B A6 81 48 E5 5D D2-4D 7B 1A 76 A2 BE 6F 99   ¸{¦Hå]ÒM{v¢¾o™
    0x00000270   01 B5 8F 9B EA 29 73 2A-74 78 25 7A AF 99 29 97   µ›ê)s*tx%z¯™)—
    0x00000280   38 5F B9 72 03 E2 95 63-98 BB 01 56 F7 82 EC 40   8_¹râ•c˜»V÷‚ì@
    0x00000290   28 12 84 62 E6 FB 90 D0-CF 59 00 31 DF 38 6B 0D   („bæûÝÝY.1ß8k.
    0x000002A0   78 A7 03 CE 5A 4D F8 CE-3D 86 DB 3A 44 5C 5B 04   x§ÎZMøÎ=†Û:D\[
    0x000002B0   35 1F 3D A1 5F F7 40 DE-68 C7 84 74 2C 76 B0 E7   5=¡_÷@ÞhÇ„t,v°ç
    0x000002C0   EC 17 C8 73 63 96 83 A7-36 AB 04 97 04 90 3F 12   ìÈsc–ƒ§6«—?
    0x000002D0   E6 93 C0 99 7E C1 CE 8D-B0 C7 9C 0B               æ“À™~ÝΝ°Çœ
    Thankfully I still have my Virtual Gateway application I wrote for the game years ago, which includes the vast majority of the game's packet system mapped out. It would be very easy to build onto it and have a fully functional game server, if I can manage to get around this "SCERT Root Authority" request... Any takers?
    Last edited by Gtlcpimp; 12-10-2016, 06:30:25 AM.

    Leave a comment:


  • brad2192
    replied
    It does work, but I promise you there is no way to get it work without lagging with over 2 people in a match.

    Leave a comment:


  • Gtlcpimp
    replied
    1up, antix told me you had pcsx2 working with network connections. Mind hitting me up on skype? I'm having the worlds most difficult time with getting it to successfully access a network...

    Leave a comment:


  • 1UP
    replied


    It seems that with the emulator (at least) it could very well be possible to run this patched if map packs were desired. Not entirely sure it would make it any easier in the long run but it could be an option. I need to do more testing with it and see if I am right in that it could just be copied over because I don't think the BIOS that I currently have is from my latest PS2 that I originally had the patch on.

    Leave a comment:


  • brad2192
    replied
    The guys over on X-Link are really excited! Thank you very much for the work guys; any updates?

    Leave a comment:


  • Cronotrigga
    replied
    Originally posted by Lazy Bastard View Post
    This is an awesome project, and could serve as a framework for future projects with other games. I don't have the game and I'd be too busy with other projects to pitch in directly, but let me know if I can support the project in any other ways.
    Thanks for the support Lazy Bastard.

    Leave a comment:


  • Lazy Bastard
    replied
    This is an awesome project, and could serve as a framework for future projects with other games. I don't have the game and I'd be too busy with other projects to pitch in directly, but let me know if I can support the project in any other ways.

    Leave a comment:

Working...
X