New Packets!

Posts 1–15 of 29 · Page 1 of 2
New Packets!
I was thinking about the new login reward system and was trying to figure out how in the world they would add that with the existing packets, since the packetIds didnt change. Well i just double checked and there are 3 new packets.

  1. CLAIM_LOGIN_REWARD_MSG
  2. LOGIN_REWARD_MSG
  3. QUEST_ROOM_MSG


They sort of hid these packets instead of putting them with the rest, not sure of the reason for that since it takes 2 seconds to find out where they are are.

 
CLAIM_LOGIN_REWARD_MSG

Code:
package kabam****tmg.dailyLogin.message
{
   import flash.utils.IDataOutput;
   import kabam****tmg.messaging.impl.outgoing.OutgoingMessage;
   
   public class ClaimDailyRewardMessage extends OutgoingMessage
   {
       
      
      public var claimKey:String;
      
      public var type:String;
      
      public function ClaimDailyRewardMessage(param1:uint, param2:Function)
      {
         super(param1,param2);
      }
      
      override public function writeToOutput(param1:IDataOutput) : void
      {
         param1.writeUTF(this.claimKey);
         param1.writeUTF(this.type);
      }
      
      override public function toString() : String
      {
         return "type";
      }
   }
}


 
LOGIN_REWARD_MSG
Code:
package kabam****tmg.dailyLogin.message
{
   import flash.utils.IDataInput;
   import kabam****tmg.messaging.impl.incoming.IncomingMessage;
   
   public class ClaimDailyRewardResponse extends IncomingMessage
   {
       
      
      public var itemId:int;
      
      public var quantity:int;
      
      public var gold:int;
      
      public function ClaimDailyRewardResponse(param1:uint, param2:Function)
      {
         super(param1,param2);
      }
      
      override public function parseFromInput(param1:IDataInput) : void
      {
         this.itemId = param1.readInt();
         this.quantity = param1.readInt();
         this.gold = param1.readInt();
      }
      
      override public function toString() : String
      {
         return formatToString("CLAIMDAILYREWARDRESPONSE","itemId","quantity","gold");
      }
   }
}



 
QUEST_ROOM_MSG
Code:
package kabam****tmg.messaging.impl.outgoing
{
   import flash.utils.IDataOutput;
   
   public class GoToQuestRoom extends OutgoingMessage
   {
       
      
      public function GoToQuestRoom(param1:uint, param2:Function)
      {
         super(param1,param2);
      }
      
      override public function writeToOutput(param1:IDataOutput) : void
      {
      }
      
      override public function toString() : String
      {
         return formatToString("GoToQuestRoom");
      }
   }
}



Im not too familiar with the protocol for these yet as i havent logged in to play with them. From what i can gather you send the QUEST_ROOM_MSG packet (which is blank) to get the LOGIN_REWARD_MSG packet when you talk to the npc, then you send back the CLAIM_LOGIN_REWARD_MSG packet to claim the item. Though im not sure what the claimKey is yet.
This is what it looks like

damn fuckboi why u posting this shit publicly.
I know what it looks like, im just not sure what the packets are suppose to contain.

Sofar, ive captured the packets for 2 mules, and i have no idea how the claimKey is created. It was the exact same for both of my mules.

Anyways here is what ive seen sofar:
Code:
Client sends ClaimDailyRewardMessage to server:
* ClaimKey = ahVzfnJlYWxtb2Z0aGVtYWRnb2RocmRyLwsSB0FjY291bnQYgICw6qu__AsMCxIORGFpbHlMb2dpbkRhdGEYgICAgIDXjAoM
* Type = [nonconsecutive|consecutive]

The claimKey hasnt changed for 2 of my guys. The type is either nonconsecutive or consecutive depending on which one you are trying to claim.


If successful, server sends back ClaimDailyRewardResponse packet to the client:
*ItemId = item
* Qty = quantity
* Gold = gold

It seems the daily reward system can handle giving gold as a daily reward. That would be sweet.
I havent seen the GoToQuestRoom (QUEST_ROOM_MSG) show up yet. Im not sure what causes this. Maybe im just missing it because im pretty sure it gets sent to the server to view the daily login rewards, but i could be wrong. If someone has that one figured out yet let me know.




Quote Originally Posted by TaintedSoulz View Post
damn fuckboi why u posting this shit publicly.
wow, please leave.




EDIT: OH HOLY SHIT! Nice! I just did a test and sent the QUEST_ROOM_MSG packet to the server from k-relay. That packet actually teleports you to the quest room/daily login place. Nice. It must be used somewhere, like the guild hall or something maybe, somewhere in the game there is a spot that trigger the packet which makes you enter the quest room.
Quote Originally Posted by toddddd View Post
I know what it looks like, im just not sure what the packets are suppose to contain.

Sofar, ive captured the packets for 2 mules, and i have no idea how the claimKey is created. It was the exact same for both of my mules.

Anyways here is what ive seen sofar:
Code:
Client sends ClaimDailyRewardMessage to server:
* ClaimKey = ahVzfnJlYWxtb2Z0aGVtYWRnb2RocmRyLwsSB0FjY291bnQYgICw6qu__AsMCxIORGFpbHlMb2dpbkRhdGEYgICAgIDXjAoM
* Type = [nonconsecutive|consecutive]

The claimKey hasnt changed for 2 of my guys. The type is either nonconsecutive or consecutive depending on which one you are trying to claim.


If successful, server sends back ClaimDailyRewardResponse packet to the client:
*ItemId = item
* Qty = quantity
* Gold = gold

It seems the daily reward system can handle giving gold as a daily reward. That would be sweet.
I havent seen the GoToQuestRoom (QUEST_ROOM_MSG) show up yet. Im not sure what causes this. Maybe im just missing it because im pretty sure it gets sent to the server to view the daily login rewards, but i could be wrong. If someone has that one figured out yet let me know.






wow, please leave.




EDIT: OH HOLY SHIT! Nice! I just did a test and sent the QUEST_ROOM_MSG packet to the server from k-relay. That packet actually teleports you to the quest room/daily login place. Nice. It must be used somewhere, like the guild hall or something maybe, somewhere in the game there is a spot that trigger the packet which makes you enter the quest room.
questroommsg is for the popup that's (supposed to) pop up when you log into the nexus for the first time, like those packages. did you test it outside the nexus?
also claimkey is most likely different for each item but same for all players, on the specific item.
Quote Originally Posted by FlutterM4rk View Post
questroommsg is for the popup that's (supposed to) pop up when you log into the nexus for the first time, like those packages. did you test it outside the nexus?
No, as the edit in the post you quoted showed, QUEST_ROOM_MSG works like the escape packet. But instead of taking you to the nexus like the escape packet does, questroommsg takes you to the daily login reward portal! So all you have to do is send the GoToQuestRoom packet and then the ClaimDailyRewardMessage packet and you have redeemed the daily reward.


Quote Originally Posted by FlutterM4rk View Post
also claimkey is most likely different for each item but same for all players, on the specific item.
Possibly. Im not sure where it comes from yet though, it has to come from somewhere since its the same for everyone. I checked the char/list xml you get when logging in but that didnt have it on it.
Quote Originally Posted by toddddd View Post
No, as the edit in the post you quoted showed, QUEST_ROOM_MSG works like the escape packet. But instead of taking you to the nexus like the escape packet does, questroommsg takes you to the daily login reward portal! So all you have to do is send the GoToQuestRoom packet and then the ClaimDailyRewardMessage packet and you have redeemed the daily reward.




Possibly. Im not sure where it comes from yet though, it has to come from somewhere since its the same for everyone. I checked the char/list xml you get when logging in but that didnt have it on it.
http://i.imgur.com/lTBGr6O.png this is the popup i'm talking about, it shows up in the nexus like the ambrosia pack and shit like that, and go & claim button takes you to the daily room. i'm 99% sure the packet is used here
Quote Originally Posted by FlutterM4rk View Post
http://i.imgur.com/lTBGr6O.png this is the popup i'm talking about, it shows up in the nexus like the ambrosia pack and shit like that, and go & claim button takes you to the daily room. i'm 99% sure the packet is used here
Yes the QUEST_ROOM_MSG would be when you click the "Go & Claim" button. I didnt see that button on there before.

Im still not sure how the client gets the info for the items though, i guess i have to go looking in the client to see what i can find about that. There is probably an api/url that it hits to get the claimKey + reward info.

edit: found it.

http://realmofthemadgodhrd.appspot.c...Calendar?guid=[guid]&passwordpassword]

the returned xml looks something like this:
Code:
<LoginRewards serverTime='#' conCurDay = '#' nonconCurDay = '#'>
  <NonConsecutive days='#'>
    <Login>
      <Days>[DAY#]</Days>
      <ItemId quantity='[QTY]'>[ITEMID]</ItemId>
      <Gold>[GOLD]</Gold>
<!-- if its today's reward for the player it also has: -->
      <key>[CLAIMKEY]</key>
<!--if the day has been claimed already: -->
      <Claimed/>
    </Login>
  </NonConsecutive>
  <Consecutive days='#'>
<!-- same layout -->
    <Login>
      <Days>[DAY#]</Days>
      <ItemId quantity='[QTY]'>[ITEMID]</ItemId>
      <Gold>[GOLD]</Gold>
<!-- if its today's reward for the player it also has: -->
      <key>[CLAIMKEY]</key>
<!--if the day has been claimed already: -->
      <Claimed/>
    </Login>
  </Consecutive>
  <Unlockable days='#'>
<!-- i dont know if anything goes in here, probably is something. -->
  </Unlockable>
</LoginRewards>
Quote Originally Posted by toddddd View Post
Yes the QUEST_ROOM_MSG would be when you click the "Go & Claim" button. I didnt see that button on there before.

Im still not sure how the client gets the info for the items though, i guess i have to go looking in the client to see what i can find about that. There is probably an api/url that it hits to get the claimKey + reward info.

edit: found it.

http://realmofthemadgodhrd.appspot.c...Calendar?guid=ⓘ[guid]&passwordpassword]

the returned xml looks something like this:
Code:
<LoginRewards serverTime='#' conCurDay = '#' nonconCurDay = '#'>
  <NonConsecutive days='#'>
    <Login>
      <Days>[DAY#]</Days>
      <ItemId quantity='[QTY]'>[ITEMID]</ItemId>
      <Gold>[GOLD]</Gold>
<!-- if its today's reward for the player it also has: -->
      <key>[CLAIMKEY]</key>
<!--if the day has been claimed already: -->
      <Claimed/>
    </Login>
  </NonConsecutive>
  <Consecutive days='#'>
<!-- same layout -->
    <Login>
      <Days>[DAY#]</Days>
      <ItemId quantity='[QTY]'>[ITEMID]</ItemId>
      <Gold>[GOLD]</Gold>
<!-- if its today's reward for the player it also has: -->
      <key>[CLAIMKEY]</key>
<!--if the day has been claimed already: -->
      <Claimed/>
    </Login>
  </Consecutive>
  <Unlockable days='#'>
<!-- i dont know if anything goes in here, probably is something. -->
  </Unlockable>
</LoginRewards>
you are a god
Things I've found (some of which you've already stated in this thread) so far:

Code:
    QUEST_ROOM_MSG
-Sends you to the Daily Quest Room, you can only send this packet (and successfully be sent) while in the nexus it seems
-You can join the Daily Quest Room directly from anywhere via manually setting your gameId to -11, no need for this packet

    CLAIM_LOGIN_REWARD_MSG
-Uses a claimKey which is retrieved via the url, and type which is either nonconsecutive or consecutive
One interesting thing I've discovered is that the claimKey is unique per your account, and unique towards the current build you're playing on. If you translate the base64 to ascii you will get some interesting results. This is what the keys look like in plaintext, from two of my mule accounts:

Prod Mule A:
6A 15 73 7E 72 65 61 6C 6D 6F 66 74 68 65 6D 61 64 67 6F 64 68 72 64 72 2F 0B 12 07 41 63 63 6F 75 6E 74 18 80 80 C0 92 AD 9B 93 0B 0C 0B 12 0E 44 61 69 6C 79 4C 6F 67 69 6E 44 61 74 61 18 80 80 80 80 D0 EA 99 0A 0C
Prod Mule B:
6A 15 73 7E 72 65 61 6C 6D 6F 66 74 68 65 6D 61 64 67 6F 64 68 72 64 72 2F 0B 12 07 41 63 63 6F 75 6E 74 18 80 80 C0 92 F5 D4 9C 08 0C 0B 12 0E 44 61 69 6C 79 4C 6F 67 69 6E 44 61 74 61 18 80 80 80 80 90 C9 8F 0A 0C
Testing Account C:
6A 11 73 7E 72 6F 74 6D 67 68 72 64 74 65 73 74 69 6E 67 72 2F 0B 12 07 41 63 63 6F 75 6E 74 18 80 80 80 C1 D5 BA 9D 09 0C 0B 12 0E 44 61 69 6C 79 4C 6F 67 69 6E 44 61 74 61 18 80 80 80 80 BA 8D 89

Prod Mule A:
j.s~realmofthemadgodhrdr/...Account.€€À’.›“.....DailyLoginData.€€€€Ðê™..
Prod Mule B:
j.s~realmofthemadgodhrdr/...Account.€€À’õԜ.....DailyLoginData.€€€€.É...
Testing Account C:
j.s~rotmghrdtestingr/...Account.€€€Áպ......DailyLoginData.€€€€º.‰


Note only 7 bytes have changed, 28 to 2B and 43 to 45. Tomorrow we'll see what the next day's key looks like. I wasn't able to translate the changed bytes into any recognizable account id (neither statdata's accountid nor server's naid which is raw account number).

I also found the hidden server url that gets used:
https://realmofthemadgodhrd.appspot....aimLoginReward
This type of url is used internally and probably needs a special auth, because I've tried countless combinations of normal paramaters for different hidden urls (addStar, etc) and the only response I've received is <Failure/>.
Quote Originally Posted by 059 View Post
and probably needs a special auth
Just like the guild creation url requires a database auth token.
This sounds kind of dangerous to add, I bet some people will create 10,000 mules to log in and get 10,000 free def pots.
@059 awesome work with the claimKey! I would love to be able to create the claimKey instead of grabbing it via the url. That would speed up things a lot for me. Ill be keeping my eye on it, as im sure you will too.



Quote Originally Posted by aseikin View Post
This sounds kind of dangerous to add, I bet some people will create 10,000 mules to log in and get 10,000 free def pots.
Dangerous for who? I already incorporated this into my clientless code and was able to run through my entire muledump accounts list (200+ mules) and claim the daily rewards on all of them.



I plan to set up my clientless code to run once in the mornings (like 3am or so) and once again at night (11pm or so) to catch any accounts that failed the first go around. By the end of the month ill have 200+ mules all with an extra character/vault slot lol.


I saw there was a guy offering a service where he would login each day for people and collect the reward for them for like $2, i should offer it for like $0.10 per account or something haha. It would be easy since i just have to set up my settings file with all the accounts to use.







edit: it seems you can collect day 2 rewards already...Looking at the various attributes of the xml, it seems they reflect which day is currently available for you, but that could still be wrong. Wont really know until day 8 or whatever it is when the consecutive calendar resets (i think).

Also, looking at what 059 was saying, here are the keys for my mule on the same day:
Code:
Day 1:
6a 15 73 7e 72 65 61 6c 6d 6f 66 74 68 65 6d 61 64 67 6f 64 68 72 64 72 2f 0b 12 07 41 63 63 6f 75 6e 74 18 80 80 b0 ea ab 80 b0 c0 b1 20 e4 46 16 96 c7 94 c6 f6 76 96 e4 46 17 46 11 88 08 08 08 08 0d 78 c0 a0
Day 2:
6a 15 73 7e 72 65 61 6c 6d 6f 66 74 68 65 6d 61 64 67 6f 64 68 72 64 72 2f 0b 12 07 41 63 63 6f 75 6e 74 18 80 80 b0 ea ab 80 b0 c0 b1 20 e4 46 16 96 c7 94 c6 f6 76 96 e4 46 17 46 11 88 08 08 08 0c 0e 18 a0 a0
edit2: nuts, was looking over the output again and realized that the base64 output was wrong in a few places due to the unrecognized characters. i was running it through php's base64 decoder just because it takes 2 seconds to put together a script in php. Ugh, ill have to decode it some other way to get the real values.

edit3: i just googled until i found a site that did it online for me. Found one that appears correct so ive changed the decoded hex keys above to the right values.

edit4: here is another accounts day 2 key that is extremely close to the keys 059 posted, only a few differences. Not sure why its so different from the keys above i posted
Code:
Day 2:
6a 15 73 7e 72 65 61 6c 6d 6f 66 74 68 65 6d 61 64 67 6f 64 68 72 64 72 2f 0b 12 07 41 63 63 6f 75 6e 74 18 80 80 d0 91 ee 90 f0 08 0c 0b 12 0e 44 61 69 6c 79 4c 6f 67 69 6e 44 61 74 61 18 80 80 80 80 d0 90 91 0a 0c
Quote Originally Posted by toddddd View Post
Dangerous for who? I already incorporated this into my clientless code and was able to run through my entire muledump accounts list (200+ mules) and claim the daily rewards on all of them.
Dangerous for deca, will encourage people to make massive amounts of mules which will cause them performance issues. Also flood the market potentially....
Quote Originally Posted by aseikin View Post
Dangerous for deca, will encourage people to make massive amounts of mules which will cause them performance issues. Also flood the market potentially....
I promise that deca didnt just decide to do this over night. Im sure it was a long and thought out decision where they have gone over the pros and cons of its impact. To me it seems this new addition is their answer to the constant complaints from the "free to play" players. People are always complaining about not having any way to unlock extra character slots/vaults without money, and now there is. So unless there is some huge unforeseen consequence to the game as a result of this new addition, dont expect it to go anywhere anytime soon.
Posts 1–15 of 29 · Page 1 of 2

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us