Page 1 of 2 12 LastLast
Results 1 to 15 of 16
  1. #1
    Diericx's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    24
    Reputation
    10
    Thanks
    201
    My Mood
    Happy

    (Programmer new to hacking)How do I update the Hello&Account classes for realm relay?

    I am going to leave the steps that I took to get to this point here to help anyone else. For anyone that would like to help me, skip to the edit at the bottom.

    I am currently trying to follow the process that the user Pepsi Cola went through in this thread: https://www.mpgh.net/forum/showthread.php?t=837542
    but I am running into the "waiting for hello packet" error which he had solved by someone posting the answer, which doesn't help much because it is outdated now. I would like to figure out how to do this myself and if I can get this working hopefully post a detailed tutorial for others.

    First off I'll explain what I have done so far. I'll post links so that if this get's solved others can follow my steps and they may be useful for solving the problem:
    I have downloaded Realm Relay from ****** and loaded it into eclipse.
    https://******.com/DeVoidCoder/Realm-Relay
    I then decompiled the client and got the RC4 keys from there.
    Code:
    key1=311f80691451c71d09a13a2a6e
    key0=72c5583cafb6818995cdd74b80
    After that updated the HelloPacket with this pastebin:
    https://pastebin.com/V2u4adgd
    And updated the AccountListPacket with this pastebin:
    https://pastebin.com/vBgvswYU

    I then get this in the console:
    Code:
    05:36:47 Mapping: ACCEPTTRADE -> 45
    05:36:47 Mapping: ACCOUNTLIST -> 1
    05:36:47 Mapping: ALLYSHOOT -> 97
    05:36:47 Mapping: AOEACK -> 69
    05:36:47 Mapping: AOE -> 33
    05:36:47 Mapping: BUY -> 60
    05:36:47 Mapping: BUYRESULT -> 4
    05:36:47 Mapping: CANCELTRADE -> 78
    05:36:47 Mapping: CHANGEGUILDRANK -> 31
    05:36:47 Mapping: CHANGETRADE -> 76
    05:36:47 Mapping: CHECKCREDITS -> 6
    05:36:47 Mapping: CHOOSENAME -> 44
    05:36:47 Mapping: CLIENTSTAT -> 91
    05:36:47 Mapping: CREATE_SUCCESS -> 27
    05:36:47 Mapping: CREATEGUILD -> 80
    05:36:47 Mapping: CREATEGUILDRESULT -> 13
    05:36:47 Mapping: CREATE -> 35
    05:36:47 Mapping: DAMAGE -> 59
    05:36:47 Mapping: DEATH -> 62
    05:36:47 Mapping: EDITACCOUNTLIST -> 18
    05:36:47 Mapping: ENEMYHIT -> 22
    05:36:47 Mapping: ESCAPE -> 65
    05:36:47 Mapping: FAILURE -> 0
    05:36:47 Mapping: FILE -> 68
    05:36:47 Mapping: GLOBAL_NOTIFICATION -> 30
    05:36:47 Mapping: GOTOACK -> 47
    05:36:47 Mapping: GOTO -> 51
    05:36:47 Mapping: GROUNDDAMAGE -> 75
    05:36:47 Mapping: GUILDINVITE -> 66
    05:36:47 Mapping: GUILDREMOVE -> 3
    05:36:47 Mapping: HELLO -> 53
    05:36:47 Mapping: INVDROP -> 5
    05:36:47 Mapping: INVITEDTOGUILD -> 55
    05:36:47 Mapping: INVRESULT -> 25
    05:36:47 Mapping: INVSWAP -> 37
    05:36:47 Mapping: JOINGUILD -> 98
    05:36:47 Mapping: LOAD -> 58
    05:36:47 Mapping: MAPINFO -> 41
    05:36:47 Mapping: MOVE -> 92
    05:36:47 Mapping: NAMERESULT -> 12
    05:36:47 Mapping: NEW_TICK -> 56
    05:36:47 Mapping: NOTIFICATION -> 40
    05:36:47 Mapping: OTHERHIT -> 26
    05:36:47 Mapping: PIC -> 87
    05:36:47 Mapping: PING -> 74
    05:36:47 Mapping: PLAYERHIT -> 20
    05:36:47 Mapping: PLAYERSHOOT -> 84
    05:36:47 Mapping: PLAYERTEXT -> 42
    05:36:47 Mapping: PLAYSOUND -> 7
    05:36:47 Mapping: PONG -> 95
    05:36:47 Mapping: QUESTOBJID -> 14
    05:36:47 Mapping: RECONNECT -> 36
    05:36:47 Mapping: REQUESTTRADE -> 28
    05:36:47 Mapping: RESKIN -> 85
    05:36:47 Mapping: SETCONDITION -> 96
    05:36:47 Mapping: SHOOT2 -> 79
    05:36:47 Mapping: SHOOTACK -> 57
    05:36:47 Mapping: SHOOT -> 90
    05:36:47 Mapping: SHOW_EFFECT -> 21
    05:36:47 Mapping: SQUAREHIT -> 77
    05:36:47 Mapping: TELEPORT -> 11
    05:36:47 Mapping: TEXT -> 89
    05:36:47 Mapping: TRADEACCEPTED -> 49
    05:36:47 Mapping: TRADECHANGED -> 94
    05:36:47 Mapping: TRADEDONE -> 34
    05:36:47 Mapping: TRADEREQUESTED -> 88
    05:36:47 Mapping: TRADESTART -> 52
    05:36:47 Mapping: UPDATEACK -> 93
    05:36:47 Mapping: UPDATE -> 83
    05:36:47 Mapping: USEITEM -> 10
    05:36:47 Mapping: USEPORTAL -> 16
    05:36:47 Not mapped: _-0Z0 -> 19
    05:36:47 Not mapped: _-01K -> 82
    05:36:47 Not mapped: _-EK -> 8
    05:36:47 Not mapped: _-SA -> 17
    05:36:47 Not mapped: _-1HD -> 24
    05:36:47 Not mapped: _-1UV -> 48
    05:36:47 Not mapped: _-16N -> 86
    05:36:47 Not mapped: _-0LF -> 46
    05:36:47 Not mapped: _-YR -> 38
    05:36:47 Not mapped: _-0VN -> 50
    05:36:47 Not mapped: _-0OA -> 39
    05:36:47 Not mapped: _-FC -> 9
    05:36:47 Not mapped: _-R2 -> 15
    05:36:47 Not mapped: _-O3 -> 61
    05:36:47 Not mapped: _-XX -> 81
    05:36:47 Not mapped: ENTER_ARENA -> 67
    05:36:47 Not mapped: _-1IJ -> 23
    05:36:47 Not mapped: _-A1 -> 63
    05:36:47 Not mapped: _-HU -> 64
    05:36:47 Realm Relay listener started
    05:37:06 Connected Socket[addr=/127.0.0.1,port=65012,localport=2050]
    05:37:06 Waiting for HELLO from client...
    05:37:16 Disconnected Socket[addr=/127.0.0.1,port=65012,localport=2050]
    So I believe the problem is that my HelloPacket/AccountList class is out of date but I can't seem to figure out how to update it. I have been searching the forums and found this thread where someone was updating the files but I cannot for the life of me find out where he managed to get all these nice java files from the decompiled client:
    https://www.mpgh.net/forum/showthread.php?t=830866

    All the files I see are very cryptic and not nearly as informative as the ones he is apparently looking at. Is there some decryption step I am missing?

    I have spent so much time on this, any time would be greatly appreciated!

    Edit: Just found out about AS3 Sorcerer that will let me view the decrypted files! I found the packet classes but how do I update the java classes from the ones found in the client? I can't post the class I found in AS3 because I'm only using the trial...
    Last edited by Diericx; 12-19-2014 at 12:01 AM.

  2. #2
    kola95's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Posts
    128
    Reputation
    10
    Thanks
    13
    You can just RABCDASM and Grep it.
     
    public String buildVersion;
    public int gameId;
    public String guid;
    public int randomInt1;
    public String password;
    public int randomInt2;
    public String secret;
    public int keyTime;
    public byte[] key = new byte[0];
    public String obf1;
    public String obf2;
    public String obf3;
    public String obf4;
    public String obf5;
    public String obf6;
    public String obf7;
    10-15 chars Multibox-squad, custom sync.

  3. #3
    Diericx's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    24
    Reputation
    10
    Thanks
    201
    My Mood
    Happy
    Where did you get the values like randomInt1 and randomInt2?

    Edit: Nevermind I found those, but I'm still unclear on what all I need to edit. From the example I have from an older version it looks like the person added a lot of code that I don't really understand what is doing. Do you think you could post your HelloPacket so I could compare them? This is what I have so far:

    Code:
     
    package realmrelay.packets.client;
     
    import java****.DataInput;
    import java****.DataOutput;
    import java********Exception;
     
    import realmrelay.packets.Packet;
     
     
    public class HelloPacket extends Packet {
           
            public String buildVersion;    
            public int gameId;
            public String guid;
            public int randomInt1;
            public String password;
            public int randomInt2;
            public String secret;
            public int keyTime;
            public byte[] key = new byte[0];
            public byte[] obf1 = new byte[0];
            public String obf2;
            public String obf3;
            public String obf4;
            public String obf5;
            public String obf6;
     
            @override
            public void parseFromInput(DataInput in) throws IOException {
                    this.buildVersion = in.readUTF();
                    this.gameId = in.readInt();
                    this.guid = in.readUTF();
                    this.randomInt1 = in.readInt();
                    this.password = in.readUTF();
                    this.randomInt2 = in.readInt();
                    this.secret = in.readUTF();
                    this.keyTime = in.readInt();
                    this.key = new byte[in.readShort()];
                    in.readFully(this.key);
                    this.obf1 = new byte[in.readShort()];
                    in.readFully(this.obf1);
                    this.obf2 = in.readUTF();
                    this.obf3 = in.readUTF();
                    this.obf4 = in.readUTF();
                    this.obf5 = in.readUTF();
                    this.obf6 = in.readUTF();
                   
            }
     
            @override
            public void writeToOutput(DataOutput out) throws IOException {
                    out.writeUTF(this.buildVersion);
                    out.writeInt(this.gameId);
                    out.writeUTF(this.guid);
                    out.writeInt(this.randomInt1);
                    out.writeUTF(this.password);
                    out.writeInt(this.randomInt2);
                    out.writeUTF(this.secret);
                    out.writeInt(this.keyTime);
                    out.writeShort(this.key.length);
                    out.write(this.key);
                    out.writeShort(this.obf1.length);
                    out.write(this.obf1);
                    out.writeUTF(this.obf2);
                    out.writeUTF(this.obf3);
                    out.writeUTF(this.obf4);
                    out.writeUTF(this.obf5);
                    out.writeUTF(this.obf6);
            }
     
    }
    Last edited by Diericx; 12-19-2014 at 12:21 AM.

  4. #4
    kola95's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Posts
    128
    Reputation
    10
    Thanks
    13
    Quote Originally Posted by Diericx View Post
    Where did you get the values like randomInt1 and randomInt2?
    Quote Originally Posted by kola95 View Post
    RABCDASM and Grep it.
    use astrogrep and search for HELLO, and you find these values ^
    This hello what i posted was working fine in 27.1.0.
    10-15 chars Multibox-squad, custom sync.

  5. #5
    The richest man is not the one who has the most but the one who needs the least.
    MPGH Member
    Alde.'s Avatar
    Join Date
    Oct 2012
    Gender
    male
    Posts
    1,706
    Reputation
    166
    Thanks
    3,627
    My Mood
    Sleepy
    Also, make sure your xmls are for 27.2.1. xml/packet.xml
    Alde is Alde is

  6. #6
    RAXCA's Avatar
    Join Date
    Dec 2012
    Gender
    male
    Posts
    403
    Reputation
    10
    Thanks
    54
    My Mood
    Happy
    @Alde. Your Realm Relay on ****** is not up-to-date
     
    Quote Originally Posted by OstitchO View Post
    +1 Bought a 8/8 Warrior. Again a nice trade. Thank you RAXCA!
    Quote Originally Posted by jman9435 View Post
    vouch for RAXCA bought a 6/8 knight with colo
    Quote Originally Posted by Dosenhosenjoe View Post
    Vouch for RAXCA, went first.
    Quote Originally Posted by Dosenhosenjoe View Post
    Vouch for RAXCA. Bought 6/8 Archer with Hydra, went all smoothly.
    Quote Originally Posted by OstitchO View Post
    Vouch for RAXCA. Bought a 4/8 knight with tops.
    Quote Originally Posted by Fellepelle View Post
    Vouch for RAXCA i bought 30 Life for 10$, I went first got the lives shortly after.
    Quote Originally Posted by Mark_the_king420 View Post
    Vouch +1 Brought 100 life for $35 trade went very smooth I went first, thank you very much.
    Quote Originally Posted by miranab View Post
    buying for 10 bucks

    edit:
    Super fast trade, thanks alot.
    +1 Vouch
    Quote Originally Posted by erokz View Post
    Vouch for RAXCA: Fast service, i went first he delivered. Would order again!
    Quote Originally Posted by sprojector View Post
    +1 vouch. fast transaction, very smooth, i went first
    Quote Originally Posted by dummy11 View Post
    i vounch this trade , i have made twice with RAXCA

  7. The Following User Says Thank You to RAXCA For This Useful Post:

    Alde. (12-19-2014)

  8. #7
    Diericx's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    24
    Reputation
    10
    Thanks
    201
    My Mood
    Happy
    @kola95 I have gotten that far and I am looking at the HelloPacket in the client but my problem is knowing how to update the class in Realm Relay by looking at the one in the client. I'm just not sure what is supposed to be copied over.
    Last edited by Diericx; 12-19-2014 at 10:32 AM.

  9. #8
    kola95's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Posts
    128
    Reputation
    10
    Thanks
    13
    Quote Originally Posted by Diericx View Post
    @kola95 I have gotten that far and I am looking at the HelloPacket in the client but my problem is knowing how to update the class in Realm Relay by looking at the one in the client. I'm just not sure what is supposed to be copied over.
     
    trait slot QName(PackageNamespace("", "#0"), "buildVersion_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "gameId_") type QName(PackageNamespace("", "#0"), "int") value Integer(0) end
    trait slot QName(PackageNamespace("", "#0"), "guid_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "password_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "secret_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "keyTime_") type QName(PackageNamespace("", "#0"), "int") value Integer(0) end
    trait slot QName(PackageNamespace("", "#0"), "key_") type QName(PackageNamespace("flash.utils"), "ByteArray") end
    trait slot QName(PackageNamespace("", "#0"), "_-19N") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "_-M6") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-0zg") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-1we") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-Q") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-0Oh") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end

    String = readUtf, Integrer = readInt, i think its easy to understand, and when you scroll down you see after guid and after password some math calcualtions, so you need add it inside RR as well (aka RandomInt). My RR copy have auto-updater i dont care if HELLO changes, its will be correct all the time when build change (i dont say how its done, but the implementation is very simple ).
    10-15 chars Multibox-squad, custom sync.

  10. #9
    Zasx's Avatar
    Join Date
    Mar 2013
    Gender
    male
    Location
    Northern Italy
    Posts
    1,379
    Reputation
    10
    Thanks
    442
    My Mood
    Yeehaw
    Quote Originally Posted by kola95 View Post
    i don't say how its done
    The same way ORape does I guess, aren't both things coded in Java and programmed to grep 'n grab bytecode crap from an unknown file?
    "First get me some porn accounts"
    . . . . . . . . . . . . . . .-Trapped

  11. #10
    kola95's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Posts
    128
    Reputation
    10
    Thanks
    13
    Quote Originally Posted by Zasx View Post
    The same way ORape does I guess, aren't both things coded in Java and programmed to grep 'n grab bytecode crap from an unknown file?
    Nope, i dont even decompiled a client when finished this, i just used resourses of proxy to make it work.
    10-15 chars Multibox-squad, custom sync.

  12. #11
    Diericx's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    24
    Reputation
    10
    Thanks
    201
    My Mood
    Happy
    Quote Originally Posted by kola95 View Post
     
    trait slot QName(PackageNamespace("", "#0"), "buildVersion_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "gameId_") type QName(PackageNamespace("", "#0"), "int") value Integer(0) end
    trait slot QName(PackageNamespace("", "#0"), "guid_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "password_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "secret_") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "keyTime_") type QName(PackageNamespace("", "#0"), "int") value Integer(0) end
    trait slot QName(PackageNamespace("", "#0"), "key_") type QName(PackageNamespace("flash.utils"), "ByteArray") end
    trait slot QName(PackageNamespace("", "#0"), "_-19N") type QName(PackageNamespace("", "#0"), "String") end
    trait slot QName(PackageNamespace("", "#0"), "_-M6") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-0zg") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-1we") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-Q") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end
    trait slot QName(PackageNamespace("", "#0"), "_-0Oh") type QName(PackageNamespace("", "#0"), "String") value Utf8("") end

    String = readUtf, Integrer = readInt, i think its easy to understand, and when you scroll down you see after guid and after password some math calcualtions, so you need add it inside RR as well (aka RandomInt). My RR copy have auto-updater i dont care if HELLO changes, its will be correct all the time when build change (i dont say how its done, but the implementation is very simple ).
    I have done all of that and my HelloPacket seems to be up to date but I still get the error:
    Code:
    00:22:10 Connected Socket[addr=/127.0.0.1,port=55964,localport=2050]
    00:22:10 Waiting for HELLO from client...
    00:22:20 Disconnected Socket[addr=/127.0.0.1,port=55964,localport=2050]
    What am I doing wrong here? Sorry for being so difficult :/ I really appreciate the responses though!

    Code:
    package realmrelay.packets.client;
     
    import java****.DataInput;
    import java****.DataOutput;
    import java********Exception;
     
    import realmrelay.packets.Packet;
     
     
    public class HelloPacket extends Packet {
           
            public String buildVersion;    
            public int gameId;
            public String guid;
            public int randomInt1;
            public String password;
            public int randomInt2;
            public String secret;
            public int keyTime;
            public byte[] key = new byte[0];
            public byte[] obf1 = new byte[0];
            public String obf2;
            public String obf3;
            public String obf4;
            public String obf5;
            public String obf6;
     
              @override
            public void parseFromInput(DataInput in) throws IOException {
                    this.buildVersion = in.readUTF();
                    this.gameId = in.readInt();
                    this.guid = in.readUTF();
                    this.randomInt1 = in.readInt();
                    this.password = in.readUTF();
                    this.randomInt2 = in.readInt();
                    this.secret = in.readUTF();
                    this.keyTime = in.readInt();
                    this.key = new byte[in.readShort()];
                    in.readFully(this.key);
                    this.obf1 = new byte[in.readShort()];
                    in.readFully(this.obf1);
                    this.obf2 = in.readUTF();
                    this.obf3 = in.readUTF();
                    this.obf4 = in.readUTF();
                    this.obf5 = in.readUTF();
                    this.obf6 = in.readUTF();
                   
            }
     
              @override
            public void writeToOutput(DataOutput out) throws IOException {
                    out.writeUTF(this.buildVersion);
                    out.writeInt(this.gameId);
                    out.writeUTF(this.guid);
                    out.writeInt(this.randomInt1);
                    out.writeUTF(this.password);
                    out.writeInt(this.randomInt2);
                    out.writeUTF(this.secret);
                    out.writeInt(this.keyTime);
                    out.writeShort(this.key.length);
                    out.write(this.key);
                    out.writeShort(this.obf1.length);
                    out.write(this.obf1);
                    out.writeUTF(this.obf2);
                    out.writeUTF(this.obf3);
                    out.writeUTF(this.obf4);
                    out.writeUTF(this.obf5);
                    out.writeUTF(this.obf6);
            }
     
    }
    Last edited by Diericx; 12-19-2014 at 06:14 PM.

  13. #12
    kola95's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Posts
    128
    Reputation
    10
    Thanks
    13
    If you have socket bla bla error in client you must run it as admin and I prefer use exe files so i dont run into problems, somewhere here by nilly was explained how to add SWF in trusted locations, it will allow of proxy usage in SWF, else you get socket error.
    try change obf 1 from array to single string
    if it still will not work, but say packet length *numbers* is something *numbers* will be close like 398\400 add next string obf7 at the end to make the packet process as 400\400 and when you will be able to connect property, its why i have 7 obf when client give me only 6 of classes.
    10-15 chars Multibox-squad, custom sync.

  14. #13
    Diericx's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    24
    Reputation
    10
    Thanks
    201
    My Mood
    Happy
    Quote Originally Posted by kola95 View Post
    If you have socket bla bla error in client you must run it as admin and I prefer use exe files so i dont run into problems, somewhere here by nilly was explained how to add SWF in trusted locations, it will allow of proxy usage in SWF, else you get socket error.
    try change obf 1 from array to single string
    if it still will not work, but say packet length *numbers* is something *numbers* will be close like 398\400 add next string obf7 at the end to make the packet process as 400\400 and when you will be able to connect property, its why i have 7 obf when client give me only 6 of classes.
    Shoot, I totally forgot about the whole thing where you have to run in the browser to connect to sockets, woops. So now I am getting the error you talked about:
    Code:
    CREATE_SUCCESS byte length is 8 after parsing, but was 400 before parsing. Try updating your packets.xml
    I know you just explained how to fix it but I'm not too sure what you mean. Wouldn't I have to add another string and then check the current packet size and add a certain amount of characters to the string in order to make it 400 bytes? Or am I over thinking it...Here is my current HelloPacket (just for reference):
    Code:
    package realmrelay.packets.client;
     
    import java****.DataInput;
    import java****.DataOutput;
    import java********Exception;
     
    import realmrelay.packets.Packet;
     
     
    public class HelloPacket extends Packet {
           
            public String buildVersion;    
            public int gameId;
            public String guid;
            public int randomInt1;
            public String password;
            public int randomInt2;
            public String secret;
            public int keyTime;
            public byte[] key = new byte[0];
            public String obf1;
            public String obf2;
            public String obf3;
            public String obf4;
            public String obf5;
            public String obf6;
     
              @override
            public void parseFromInput(DataInput in) throws IOException {
                    this.buildVersion = in.readUTF();
                    this.gameId = in.readInt();
                    this.guid = in.readUTF();
                    this.randomInt1 = in.readInt();
                    this.password = in.readUTF();
                    this.randomInt2 = in.readInt();
                    this.secret = in.readUTF();
                    this.keyTime = in.readInt();
                    this.key = new byte[in.readShort()];
                    in.readFully(this.key);
                    this.obf1 = in.readUTF();
                    this.obf2 = in.readUTF();
                    this.obf3 = in.readUTF();
                    this.obf4 = in.readUTF();
                    this.obf5 = in.readUTF();
                    this.obf6 = in.readUTF();
                   
            }
     
              @override
            public void writeToOutput(DataOutput out) throws IOException {   
            		out.writeUTF(this.buildVersion);
                    out.writeInt(this.gameId);
                    out.writeUTF(this.guid);
                    out.writeUTF(this.password);
                    out.writeUTF(this.secret);
                    out.writeInt(this.keyTime);
                    out.writeShort(this.key.length);
                    out.write(this.key);
                    out.writeUTF(this.obf1);
                    out.writeUTF(this.obf2);
                    out.writeUTF(this.obf3);
                    out.writeUTF(this.obf4);
                    out.writeUTF(this.obf5);
                    out.writeUTF(this.obf6);
            }
     
    }
    Last edited by Diericx; 12-20-2014 at 12:51 PM.

  15. #14
    kola95's Avatar
    Join Date
    Aug 2012
    Gender
    male
    Posts
    128
    Reputation
    10
    Thanks
    13
    This is valid class, i just entered nexus with it.
     
    public class HelloPacket extends Packet
    {
    public String buildVersion;
    public int gameId;
    public String guid;
    public int randomInt1;
    public String password;
    public int randomInt2;
    public String secret;
    public int keyTime;
    public byte[] key = new byte[0];
    public String obf1;
    public String obf2;
    public String obf3;
    public String obf4;
    public String obf5;
    public String obf6;
    public String obf7;

    @override
    public void parseFromInput(DataInput in) throws IOException
    {
    this.buildVersion = in.readUTF();
    this.gameId = in.readInt();
    this.guid = in.readUTF();
    this.randomInt1 = in.readInt();
    this.password = in.readUTF();
    this.randomInt2 = in.readInt();
    this.secret = in.readUTF();
    this.keyTime = in.readInt();
    this.key = new byte[in.readShort()];
    in.readFully(this.key);
    this.obf1 = in.readUTF();
    this.obf2 = in.readUTF();
    this.obf3 = in.readUTF();
    this.obf4 = in.readUTF();
    this.obf5 = in.readUTF();
    this.obf6 = in.readUTF();
    this.obf7 = in.readUTF();
    }

    @override

    public void writeToOutput(DataOutput out) throws IOException {
    out.writeUTF(this.buildVersion);
    out.writeInt(this.gameId);
    out.writeUTF(this.guid);
    out.writeInt(randomInt1);
    out.writeUTF(this.password);
    out.writeInt(randomInt2);
    out.writeUTF(this.secret);
    out.writeInt(this.keyTime);
    out.writeShort(this.key.length);
    out.write(this.key);
    out.writeUTF(this.obf1);
    out.writeUTF(this.obf2);
    out.writeUTF(this.obf3);
    out.writeUTF(this.obf4);
    out.writeUTF(this.obf5);
    out.writeUTF(this.obf6);
    out.writeUTF(this.obf7);
    }
    }

    Create_Sucsess must not show error what i explained before, your IDs are outdated.
    Try compile and launch, you enter nexus, when compile without obf7, you will get error 398\400, its why i have 7 instead of client 6.
    10-15 chars Multibox-squad, custom sync.

  16. #15
    Diericx's Avatar
    Join Date
    Jun 2014
    Gender
    male
    Posts
    24
    Reputation
    10
    Thanks
    201
    My Mood
    Happy
    It works now! I accidentally forgot to update the packets. Stupid mistake. But thank you for providing your HelloPacket, I understand what you were saying now. That was what I guessed the implementation would be but I wasn't sure. Thank you so much for all the help! I'm thinking of writing a detailed tutorial about all of this to teach a group of my friends. Do you think posting it in the forums would be helpful?
    Last edited by Diericx; 12-20-2014 at 03:54 PM.

Page 1 of 2 12 LastLast

Similar Threads

  1. New Packets for Realm Relay
    By congresses in forum Realm of the Mad God Tutorials & Source Code
    Replies: 6
    Last Post: 09-19-2014, 10:45 AM
  2. [Solved] How do i update the clients version to what i want
    By jay russell3 in forum Realm of the Mad God Private Servers Help
    Replies: 4
    Last Post: 07-05-2014, 05:01 AM
  3. [Help Request] How do you make the map editor to show for a certain rank?
    By Zidinitial in forum Realm of the Mad God Private Servers Help
    Replies: 1
    Last Post: 03-13-2014, 11:09 PM
  4. NEW WARROCK HACK FTW! WORKS AFTER UPDATE :D
    By sander026 in forum WarRock - International Hacks
    Replies: 25
    Last Post: 03-27-2009, 09:49 PM
  5. **UPDATE** New Undetected Hack See Video HERE *LINK ADDED*
    By Methadone727 in forum WarRock - International Hacks
    Replies: 17
    Last Post: 05-17-2007, 07:42 AM

Tags for this Thread