Revolution Emulator [C#, R63B, Encryption Cracked, DAO, Fluent NHibernate, Lua Plugin, Mono]

Status
Not open for further replies.

Zak

Posting Freak
Mar 12, 2011
848
453
So that's my conclusion on cracking the shuffling headers.

Using the Get and Set.

There may be other ways as Dominic did it in Java. And as you know Java does not have Get and Set.
 

Heaplink

Developer & Designer
Nov 9, 2011
510
173
It's fine with the Update button IF it does not use more performance than normal, also that it doesn't "freeze" for a while to make the connection (of course you could so BackgroundWorker (Threading)) But if you find a solution for that, why not just do it when you start the emulator?

Also if you're using a GUI for the emulator, make sure you get as good performance, because rendering the graphic elements is a pain (worse with Aero/custom visual effects) and you will not have a great performance - this is why most emulators are made in CLI. Just a little hint :)
 
  • Like
Reactions: Zak

Zak

Posting Freak
Mar 12, 2011
848
453
It's fine with the Update button IF it does not use more performance than normal, also that it doesn't "freeze" for a while to make the connection (of course you could so BackgroundWorker (Threading)) But if you find a solution for that, why not just do it when you start the emulator?

Also if you're using a GUI for the emulator, make sure you get as good performance, because rendering the graphic elements is a pain (worse with Aero/custom visual effects) and you will not have a great performance - this is why most emulators are made in CLI. Just a little hint :)

The GUI itself is a extra option.

If you do not enable the GUI. The server itself will says

Code:
<<<<Shuffle Header Plugin>>>
//Check for updates
<<Checking Habbo build...>>
//Update found
<<New build found!>>
 
//If new build is not found, then it boots up.
 
//Start logging in.
<<Logging into Habbo client...>>
<<Logged in!>>
<<Looking for Header Shuffle updates...>>
<<209 Header id's updated!>>
 
<<Terminating Updater...>>
<<Terminating Completed.>>
 
<Booting RevEmu!>
 
//Serializers load here.

The performance won't get raped as the process will start at the beginning and then will be terminated.
 

Heaplink

Developer & Designer
Nov 9, 2011
510
173
Do you use arguments for the switch? It would be cool to have the CLI as default and you could start up the application with multiple arguments like:

Code:
revemu.exe [gui|database <string>]

So if you wanted the GUI you just make a shortcut of the application and type this in the run arguments:
Code:
revemu.exe -gui
And the database switch:
Code:
revemu.exe -database "phoenixdb"
or
Code:
revemu.exe -gui -database "revdb"

Just some thoughts. Really this could be helpful for other people who is testing their CMS systems or w/e and could have multiple shortcuts with their own settings via. arguments. And also for users who wan't to choose between GUI and CLI. More settings could be available as well.

Why is this better than a configuration file?
The idea is the way that people can customize/configurate the application without changing the configuration each time. Also if you should run multiple hotels with different systems. Instead of having two folders of the application, why not just put it into one?
 

Zak

Posting Freak
Mar 12, 2011
848
453
Do you use arguments for the switch? It would be cool to have the CLI as default and you could start up the application with multiple arguments like:

Code:
revemu.exe [gui|database <string>]

So if you wanted the GUI you just make a shortcut of the application and type this in the run arguments:
Code:
revemu.exe -gui
And the database switch:
Code:
revemu.exe -database "phoenixdb"
or
Code:
revemu.exe -gui -database "revdb"

Just some thoughts. Really this could be helpful for other people who is testing their CMS systems or w/e and could have multiple shortcuts with their own settings via. arguments. And also for users who wan't to choose between GUI and CLI. More settings could be available as well.

Why is this better than a configuration file?
The idea is the way that people can customize/configurate the application without changing the configuration each time. Also if you should run multiple hotels with different systems. Instead of having two folders of the application, why not just put it into one?

Great idea. Can be easily coded into a plugin.

Will do that. So once RevEmu is booted up. You can send commands.

revemu.exe -gui -refresh

"Rebooting RevEmu"

[Does not close the Program. Just clears all the console and reboots]
 

Heaplink

Developer & Designer
Nov 9, 2011
510
173
Exactly - also people could make there own plugins with arguments too (optional) (so that they can specify a plugin with name, description, author etc. etc.)
 

Quackster

a devbest user says what
Aug 22, 2010
1,765
1,245
So that's my conclusion on cracking the shuffling headers.

Using the Get and Set.

There may be other ways as Dominic did it in Java. And as you know Java does not have Get and Set.

Lies. Eclipse has a function where it can adds the getter and setter methods.

Code:
package test;

public class Environment {
         
          private static String string;

          public static string getString() {
              return string;
          {
          public static string setString(String newstring) {
              string = newstring;
          {
          public static void main(string[] args) {
              //Give some data to the string
              setString("test one");

              //Output the string
              System.out.println(getString());

              //Add different data to the string
              setString("test two");

              //Output the new string
              System.out.println(getString());
          {
}
 

Zak

Posting Freak
Mar 12, 2011
848
453
Why are you basing it from other databases such as uber or Phoenix? Their database structure is terrible.

Why not build a conversion tool or something like that for the users, rooms and furniture etc?

Sorry i missed out your post.

RevCMS itself does not have it's own structure it supports on database structures of common used Databases.

The goal of RevEmu is to reach big hotels and change the community itself.

Big hotel's won't reset there hotels for just a better structure.

RevEmu will have NOT have it's own structure because it's just as same as all the other database's.

If RevCMS considers a new structure. Then i will just apply a simple plugin to support it.

RevEmu can support any structure. I will be making a new feature on the console for making it support a feature.

revemu.exe -mysqlconnect -localhost -3306 -root -password -database

database: download /db

database: downloaded dump...

database: exit

revemu.exe -addsql -database

It already has a default path.

This command basically connects you to the database, downloads the dump. And then the Emulator add's the dump to it's server [Codes it] [Generates the files in .cs of each table and column]
 

Zak

Posting Freak
Mar 12, 2011
848
453
Code:
using RevEmu.rMessage;

namespace RevEmu.Messages.Composers
{
    class LoginPacket1 : IMessageRegister
    {
        public Sm RegisterSession()
        {
            //Packet Lenght: 37

            var message = new Sm(3872);

            message.AppendInt(2118213);
            message.AppendInt(1279607123);
            message.AppendInt(1161179949);
            message.AppendInt(842019122);
            message.AppendInt(808530227);
            message.AppendInt(809055031);
            message.AppendInt(758394932);
            message.AppendInt(89294110);

            return message;
        }
    }

    class LoginPacket2 : IMessageRegister
    {
        public Sm RegisterSession()
        {
            var message = new Sm(252);
            //Packet Lenght: 261

            message.AppendInt(16790886);
            message.AppendInt(1697801011);
            message.AppendInt(946025784);
            message.AppendInt(1630745653);
            message.AppendInt(1714501477);
            message.AppendInt(1697920304);
            message.AppendInt(1714566960);
            message.AppendInt(1630888757);
            message.AppendInt(1697853752);
            message.AppendInt(1698259298);
            message.AppendInt(1714708784);
            message.AppendInt(828650084);
            message.AppendInt(859125602);
            message.AppendInt(842413668);
            message.AppendInt(943011127);
            message.AppendInt(1680945460);
            message.AppendInt(1667327585);
            message.AppendInt(842228323);
            message.AppendInt(946024502);
            message.AppendInt(1698128227);
            message.AppendInt(1684103992);
            message.AppendInt(811807289);
            message.AppendInt(1698052408);
            message.AppendInt(842490982);
            message.AppendInt(895629364);
            message.AppendInt(1630614885);
            message.AppendInt(1714959923);
            message.AppendInt(1664574774);
            message.AppendInt(1684353593);
            message.AppendInt(1647338041);
            message.AppendInt(1681077347);
            message.AppendInt(895628130);
            message.AppendInt(1697867364);
            message.AppendInt(1664705844);
            message.AppendInt(892876089);
            message.AppendInt(828584246);
            message.AppendInt(825844278);
            message.AppendInt(1681339703);
            message.AppendInt(828519014);
            message.AppendInt(1631074099);
            message.AppendInt(963011171);
            message.AppendInt(862085989);
            message.AppendInt(1630560822);
            message.AppendInt(1714709604);
            message.AppendInt(1647850038);
            message.AppendInt(1700880690);
            message.AppendInt(1647655265);
            message.AppendInt(959734323);
            message.AppendInt(875914547);
            message.AppendInt(912601652);
            message.AppendInt(1664692529);
            message.AppendInt(1714697318);
            message.AppendInt(828597347);
            message.AppendInt(892745264);
            message.AppendInt(828651060);
            message.AppendInt(825569848);
            message.AppendInt(962672184);
            message.AppendInt(1714960225);
            message.AppendInt(1698116660);
            message.AppendInt(878784824);
            message.AppendInt(1714958647);
            message.AppendInt(1647927652);
            message.AppendInt(892417584);
            message.AppendInt(942946147);

            return message;
        }
    }

    class LoginPacket3 : IMessageRegister
    {
        public Sm RegisterSession()
        {
             //Packet Lenght: 23
            var message = new Sm(3025);
            message.AppendInt(1);
            message.AppendInt(65);
            message.AppendInt(1800);
            message.AppendInt(1);
            message.AppendInt(-1);
            return message;
        }
    }
}

Haha figured the new crypto out.

Also they use a new style for there packets now to disable being decoded.

Code:
_ªüÂä4ò£`ÆÒ²~¡Hæ¸???Sòó?WP?Ãeø T"?d2çiäÚQU`¿Î Len: 64706

Before it was all {0}{0}{0}shit here and more
 

Zak

Posting Freak
Mar 12, 2011
848
453
On RZ i just posted the structure parsed.

This is the actual structure coded.
 

Zak

Posting Freak
Mar 12, 2011
848
453
You want me to post a screenshot of a packet structure...

I know you mean this in-game. But this is just few of the login packets. Untill i finished every login packet then i can.
 

Sledmur

Web-Developer
Nov 29, 2011
459
98
Sorry if this is a repost but.

Could you post a list of pros and cons that your emulator will have to that compared of phoenix?
 

Zak

Posting Freak
Mar 12, 2011
848
453
Positive:
Multiple Database System.
Crypto Support.
Open Source!!!
Command Feature for the core.
Shuffling Header Support.
Updates Daily.
Own Update System For Packets.
Own Database Classes.
Best 2nd Packet Handler Around [IHI comes first]
Way better sockets.
Also unlike Phoenix Rev can run more efficient and produce less ram and cpu usage.

Negatives:
Not really sure, what is so good about Phoenix? Stable? Features? Rev's got it all plus more.
 
Status
Not open for further replies.

Users who are viewing this thread

Top