Menu
Forums
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Trending
What's new
New posts
New profile posts
Latest activity
Members
Current visitors
New profile posts
Search profile posts
Upgrades
Log in
Register
What's new
Search
Search
Search titles only
By:
All threads
Latest threads
New posts
Trending threads
New posts
Search forums
Menu
Log in
Register
Navigation
Install the app
Install
More options
Contact us
Close Menu
Forums
Server Development
Habbo Retros
Habbo Tutorials
Updating header/packet IDs. (Not yet complete - Client only).
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Reply to thread
Message
<blockquote data-quote="Sledmore" data-source="post: 325774" data-attributes="member: 591"><p>So I thought its time to make my own tutorial, I'm aware there is more out there somewhere but meh here we go.</p><p></p><p><strong>NOTE: </strong>This tutorial doesn't yet cover outgoing/server header IDs, as I noticed I made the thread kinda large. So I'll cover that after some replies etc.</p><p></p><p><strong>Table of contents:</strong></p><ul> <li data-xf-list-type="ul">Requirements</li> <li data-xf-list-type="ul">Basic things to know.</li> <li data-xf-list-type="ul">Don't get confused.</li> <li data-xf-list-type="ul">What do we need to know?</li> <li data-xf-list-type="ul">We're ready, let's get started.</li> <li data-xf-list-type="ul">Preparing files.</li> <li data-xf-list-type="ul">Working on updating a client packet.</li> </ul><p><strong>Requirements</strong></p><ul> <li data-xf-list-type="ul"><a href="https://ilikerainbows.co.uk/torrent/7858642/AS3_Sorcerer_v1.40_Incl_Keygen_MAZE" target="_blank">AS3 Sorcerer</a></li> <li data-xf-list-type="ul"><a href="http://notepad-plus-plus.org/download/v6.7.4.html" target="_blank">Notepad++</a> (or some other IDE, I just prefer Notepad++ for this)</li> </ul><p><strong>Basic things to know before we begin</strong></p><p>The class we're working on is named HabboMessages. This name could change in future releases, if it does then.. how do we find it again? But also, how do we find it to start with?</p><p></p><p>1. We'll need to find it each time we want to update our headers, the main thing to remember is that there is a static header with the numeric value of '4000'. So we can simply search for it - both header types (event & composer) are in <em>hashmaps</em>. We can hit CTRL + F (on Windows), and search for [4000] and we'll find it. We may find it twice - but don't worry, there are ways to determine which is which. We'll discuss this soon.</p><p></p><p>2. Very simple, use the class name! Hit CTRL + F (on Windows), and search for "public class HabboMessages" and bam, we're there.</p><p></p><p><strong>Don't get confused!</strong></p><p>A lot of people address the packet IDs with a different name, or variation. They generally all mean the same thing. When you see people discuss; headers, packets, header ids, packet ids - they generally all mean the <strong>same </strong>thing. <strong>A packet structure isn't a header/packet ID however</strong>.</p><p></p><p><strong>What else do we need before we begin?</strong></p><p>We need to know what we're updating from and what we're updating to. We will start with<strong> 2 </strong>files and end up with <strong>4</strong>. We require two SWFs, our current SWF and the SWF we're going to update to. Try to avoid naming your SWF "Habbo.swf", "Old.swf" or "New.swf", try to keep the revision name there or keep them in a folder named after the SWFs revision (E.g; <strong>RELEASE63-201502160844-186836974</strong>).</p><p></p><p><strong>We're ready, let's begin.</strong></p><p>First up, make a new folder (to be nice and organized) named "Updating" in that folder put your current SWF, in this example I'll be using <strong>RELEASE63-201502160844-186836974</strong> as my current SWF (what I am using right now), next we need to get the SWF we'd like to update to - in this example I'll be using <strong>RELEASE63-201502191834-235884845</strong>. But how do we find this SWF? Easiest way is to navigator to Habbos client variables file, found <a href="http://habbo.com/gamedata/external_variables" target="_blank">here</a>. Hit CTRL + F to find "flash.client.url=" and the value should be (right now, it'll change soon) "<a href="http:////habboo-a.akamaihd.net/gordon/RELEASE63-201502191834-235884845/" target="_blank"><strong>//habboo-a.akamaihd.net/gordon/RELEASE63-201502191834-235884845/</strong></a>" navigator to that URL in your browser and simply add the file name - which has always been "Habbo.SWF", and hit CTRL + S to save it in the "Updating" folder. Remember what I said about naming it, if you're unsure what the revision is then in this case it's really simple to find out, it's the folder after /gordon/ in the URL.</p><p></p><p><strong>Alright, we have 2 files - next!</strong></p><p>You should have already installed AS3 Sorcerer and Notepad++ by now, so if you haven't go and quickly do that now. This next step is the easiest of all, simply click both of the SWFs you've downloaded (if it says choose a program to open the file with navigate to the path where AS33 Sorcerer installed and click the executable) other wise, AS3 Sorcerer will open up next simply click the highlighted button in the image below to save the entire SWF files into one file.</p><p></p><p><img src="http://i.imgur.com/9uqo9yB.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>Assuming you've done that to both SWFs, you'll have<strong> 4</strong> files now - also keep the file names AS33 Sorcerer gives you for those files, as it's just easier to determine what is what with the '_scripts' prefix. We're ready for the more challenging step now!</p><p></p><p><strong>Woo, we have 4 files - almost there!</strong></p><p>Open up both text documents (if they didn't automatically open already) into your preferred text editor, or (please for this tutorial) use Notepad++ as I'm using it, so the screenshots may help you a little.</p><p></p><p>So we have both files open, but we have to keep switching back and forth, urgh - wouldn't it just be easier to view them both at the same time? Yup. Right click on one of the file tabs and choose "Move to other view" as shown below.</p><p></p><p><img src="http://i.imgur.com/2YJhtWW.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>Bingo! Now we can get down to the nitty gritty. But first, I'll show you what we discussed above, about finding the headers (packet IDs, packets, headers - whatever you want to address them as) which are all in the same class. So as said before there are two ways of doing this, I'll just show you one as I've explained them above.</p><p></p><p>I almost forgot to mention, make sure you know which SWF is what (old & new) I generally put the new one to the other view (on the right hand side), I suggest you do the same.</p><p></p><p>Right, using the old (current) SWF window, hit CTRL + F on your keyboard and type in '[4000]' and hit enter. I found two results, you may have only found one.</p><p></p><p><img src="http://i.imgur.com/37FyhkY.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>And that's it really, we've found the class. I'm not going to explain further here, I just wanted to show you a picture of what you should be finding, perhaps I'll edit this area in the future to explain what I kinda want to say about this area (to help you identify event & composer easier).</p><p></p><p>Right, so we're at the class and are pretty much set to update our first header. This is where it gets a little complicated for a lot of people, as we need to find a header ID (again; packet, packet ID, whatever you've heard it addresses as before) from our server.</p><p></p><p>So, let us start off with updating a client/event header, for this example I'll be using one of the first few that are used.</p><p>[PHP]public const int InitCryptoMessageEvent = 1582;[/PHP]</p><p></p><p>Right, first things first - let us search '[1582]' in the old/current SWF text file (you're not going to be able to search this, as you'll most likely be on a different revision, so pick a header (client/event) and search for it.</p><p></p><p>Okay, I've found it and have one result:</p><p>[PHP]_-4g0[1582] = _-4xr;[/PHP]</p><p>So what does this mean? The header 1582 is in one of the two <em>hashmaps </em>and the value/identifier is '_-4xr' (an obfuscated value). So we can use this to help us (again, yours will be different - just go with the flow). Search for 'new _-4xr' but remember to have strict search settings, such as "Match case" as there could be another value which is "_-4Xr" and we may update to the wrong value due to not searching for the correct case.</p><p></p><p><img src="http://i.imgur.com/XcgKd4K.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>So we've found it in our current SWF, but now how do we go about finding it in the other SWF? The new one. Simple! It's all about comparing the code and the area. So, what can we compare? Well, for me if I scroll up a tiny bit I can see a string, which will most likely have the same output in the other SWF, maybe it'll work? (Picture below)</p><p></p><p><em>Area of the searchable strings.</em></p><p><img src="http://i.imgur.com/KFSGetO.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>Okay, so hopefully you can spot it instantly. Just inside of the try-catch, where the ErrorReportStorage reports an error, we can use some of that string, <strong>SOME</strong>.</p><p></p><p><em>Our searchable string.</em></p><p><img src="http://i.imgur.com/Jmk3BOk.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>So we can use the above searchable string in the new SWF, and we should find it very easily. So let us copy & paste that line into the other window/area and search.</p><p><img src="http://i.imgur.com/ZBI1nKb.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>Success! If you're picking this up fast then great, you should be able to spot the header from memory right there, if not - don't give up, you'll pick it up as time goes on. But to confirm, where is it? Let's compare both windows to see if we can spot it.</p><p></p><p><img src="http://i.imgur.com/utuyajG.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></p><p></p><p>Do you see it yet? Notice the red highlighted area - that is our current SWF, on the right is the newest SWF. The header value is '_-4cV' bingo! Now lets find it, hit up CTRL + F and search for '= _-4cV;' (or the the equivalent for you).</p><p></p><p>[PHP]_-0Oa[470] = _-4cV;[/PHP]</p><p></p><p>Bingo! The header ID is 470. It's honestly this simple. however this is only for client packet IDs, I've started you off with client header IDs as they're the easiest. With outgoing/server packet IDs you have to go right into the function to compare. We'll work on this shortly.</p></blockquote><p></p>
[QUOTE="Sledmore, post: 325774, member: 591"] So I thought its time to make my own tutorial, I'm aware there is more out there somewhere but meh here we go. [B]NOTE: [/B]This tutorial doesn't yet cover outgoing/server header IDs, as I noticed I made the thread kinda large. So I'll cover that after some replies etc. [B]Table of contents:[/B] [LIST] [*]Requirements [*]Basic things to know. [*]Don't get confused. [*]What do we need to know? [*]We're ready, let's get started. [*]Preparing files. [*]Working on updating a client packet. [/LIST] [B]Requirements[/B] [LIST] [*][URL='https://ilikerainbows.co.uk/torrent/7858642/AS3_Sorcerer_v1.40_Incl_Keygen_MAZE']AS3 Sorcerer[/URL] [*][URL='http://notepad-plus-plus.org/download/v6.7.4.html']Notepad++[/URL] (or some other IDE, I just prefer Notepad++ for this) [/LIST] [B]Basic things to know before we begin[/B] The class we're working on is named HabboMessages. This name could change in future releases, if it does then.. how do we find it again? But also, how do we find it to start with? 1. We'll need to find it each time we want to update our headers, the main thing to remember is that there is a static header with the numeric value of '4000'. So we can simply search for it - both header types (event & composer) are in [I]hashmaps[/I]. We can hit CTRL + F (on Windows), and search for [4000] and we'll find it. We may find it twice - but don't worry, there are ways to determine which is which. We'll discuss this soon. 2. Very simple, use the class name! Hit CTRL + F (on Windows), and search for "public class HabboMessages" and bam, we're there. [B]Don't get confused![/B] A lot of people address the packet IDs with a different name, or variation. They generally all mean the same thing. When you see people discuss; headers, packets, header ids, packet ids - they generally all mean the [B]same [/B]thing. [B]A packet structure isn't a header/packet ID however[/B]. [B]What else do we need before we begin?[/B] We need to know what we're updating from and what we're updating to. We will start with[B] 2 [/B]files and end up with [B]4[/B]. We require two SWFs, our current SWF and the SWF we're going to update to. Try to avoid naming your SWF "Habbo.swf", "Old.swf" or "New.swf", try to keep the revision name there or keep them in a folder named after the SWFs revision (E.g; [B]RELEASE63-201502160844-186836974[/B]). [B]We're ready, let's begin.[/B] First up, make a new folder (to be nice and organized) named "Updating" in that folder put your current SWF, in this example I'll be using [B]RELEASE63-201502160844-186836974[/B] as my current SWF (what I am using right now), next we need to get the SWF we'd like to update to - in this example I'll be using [B]RELEASE63-201502191834-235884845[/B]. But how do we find this SWF? Easiest way is to navigator to Habbos client variables file, found [URL='http://habbo.com/gamedata/external_variables']here[/URL]. Hit CTRL + F to find "flash.client.url=" and the value should be (right now, it'll change soon) "[URL='http:////habboo-a.akamaihd.net/gordon/RELEASE63-201502191834-235884845/'][B]//habboo-a.akamaihd.net/gordon/RELEASE63-201502191834-235884845/[/B][/URL]" navigator to that URL in your browser and simply add the file name - which has always been "Habbo.SWF", and hit CTRL + S to save it in the "Updating" folder. Remember what I said about naming it, if you're unsure what the revision is then in this case it's really simple to find out, it's the folder after /gordon/ in the URL. [B]Alright, we have 2 files - next![/B] You should have already installed AS3 Sorcerer and Notepad++ by now, so if you haven't go and quickly do that now. This next step is the easiest of all, simply click both of the SWFs you've downloaded (if it says choose a program to open the file with navigate to the path where AS33 Sorcerer installed and click the executable) other wise, AS3 Sorcerer will open up next simply click the highlighted button in the image below to save the entire SWF files into one file. [IMG]http://i.imgur.com/9uqo9yB.png[/IMG] Assuming you've done that to both SWFs, you'll have[B] 4[/B] files now - also keep the file names AS33 Sorcerer gives you for those files, as it's just easier to determine what is what with the '_scripts' prefix. We're ready for the more challenging step now! [B]Woo, we have 4 files - almost there![/B] Open up both text documents (if they didn't automatically open already) into your preferred text editor, or (please for this tutorial) use Notepad++ as I'm using it, so the screenshots may help you a little. So we have both files open, but we have to keep switching back and forth, urgh - wouldn't it just be easier to view them both at the same time? Yup. Right click on one of the file tabs and choose "Move to other view" as shown below. [IMG]http://i.imgur.com/2YJhtWW.png[/IMG] Bingo! Now we can get down to the nitty gritty. But first, I'll show you what we discussed above, about finding the headers (packet IDs, packets, headers - whatever you want to address them as) which are all in the same class. So as said before there are two ways of doing this, I'll just show you one as I've explained them above. I almost forgot to mention, make sure you know which SWF is what (old & new) I generally put the new one to the other view (on the right hand side), I suggest you do the same. Right, using the old (current) SWF window, hit CTRL + F on your keyboard and type in '[4000]' and hit enter. I found two results, you may have only found one. [IMG]http://i.imgur.com/37FyhkY.png[/IMG] And that's it really, we've found the class. I'm not going to explain further here, I just wanted to show you a picture of what you should be finding, perhaps I'll edit this area in the future to explain what I kinda want to say about this area (to help you identify event & composer easier). Right, so we're at the class and are pretty much set to update our first header. This is where it gets a little complicated for a lot of people, as we need to find a header ID (again; packet, packet ID, whatever you've heard it addresses as before) from our server. So, let us start off with updating a client/event header, for this example I'll be using one of the first few that are used. [PHP]public const int InitCryptoMessageEvent = 1582;[/PHP] Right, first things first - let us search '[1582]' in the old/current SWF text file (you're not going to be able to search this, as you'll most likely be on a different revision, so pick a header (client/event) and search for it. Okay, I've found it and have one result: [PHP]_-4g0[1582] = _-4xr;[/PHP] So what does this mean? The header 1582 is in one of the two [I]hashmaps [/I]and the value/identifier is '_-4xr' (an obfuscated value). So we can use this to help us (again, yours will be different - just go with the flow). Search for 'new _-4xr' but remember to have strict search settings, such as "Match case" as there could be another value which is "_-4Xr" and we may update to the wrong value due to not searching for the correct case. [IMG]http://i.imgur.com/XcgKd4K.png[/IMG] So we've found it in our current SWF, but now how do we go about finding it in the other SWF? The new one. Simple! It's all about comparing the code and the area. So, what can we compare? Well, for me if I scroll up a tiny bit I can see a string, which will most likely have the same output in the other SWF, maybe it'll work? (Picture below) [I]Area of the searchable strings.[/I] [IMG]http://i.imgur.com/KFSGetO.png[/IMG] Okay, so hopefully you can spot it instantly. Just inside of the try-catch, where the ErrorReportStorage reports an error, we can use some of that string, [B]SOME[/B]. [I]Our searchable string.[/I] [IMG]http://i.imgur.com/Jmk3BOk.png[/IMG] So we can use the above searchable string in the new SWF, and we should find it very easily. So let us copy & paste that line into the other window/area and search. [IMG]http://i.imgur.com/ZBI1nKb.png[/IMG] Success! If you're picking this up fast then great, you should be able to spot the header from memory right there, if not - don't give up, you'll pick it up as time goes on. But to confirm, where is it? Let's compare both windows to see if we can spot it. [IMG]http://i.imgur.com/utuyajG.png[/IMG] Do you see it yet? Notice the red highlighted area - that is our current SWF, on the right is the newest SWF. The header value is '_-4cV' bingo! Now lets find it, hit up CTRL + F and search for '= _-4cV;' (or the the equivalent for you). [PHP]_-0Oa[470] = _-4cV;[/PHP] Bingo! The header ID is 470. It's honestly this simple. however this is only for client packet IDs, I've started you off with client header IDs as they're the easiest. With outgoing/server packet IDs you have to go right into the function to compare. We'll work on this shortly. [/QUOTE]
Insert quotes…
Verification
Post reply
Forums
Server Development
Habbo Retros
Habbo Tutorials
Updating header/packet IDs. (Not yet complete - Client only).
Top