White screen fix - New versions
So Habbo decided to include yet another code in their SWF.
The code is the following:
Code:
if (_local_11.time >= 1452556800000){
_local_12 = [99, 111, 110, 110, 101, 99, 116, 105, 111, 110, 46, 105, 110, 102, 111, 46, 104, 111, 115, 116];
_local_13 = [[118, 97, 114, 111, 107, 101, 46, 110, 101, 116], [104, 97, 98, 98, 111, 46, 99, 111, 109]];
_local_15 = new ByteArray();
_local_15.writeShort(_local_12.length);
_local_16 = 0;
while (_local_16 < _local_12.length) {
_local_15.writeByte(_local_12[_local_16]);
_local_16++;
};
_local_15.position = 0;
_local_14 = _local_15.readUTF();
_local_17 = stage.loaderInfo.parameters[_local_14];
if (_local_17 == null){
return;
};
_local_18 = false;
_local_16 = 0;
while (_local_16 < _local_13.length) {
_local_19 = _local_13[_local_16];
_local_20 = new ByteArray();
_local_20.writeShort(_local_19.length);
_local_21 = 0;
while (_local_21 < _local_19.length) {
_local_20.writeByte(_local_19[_local_21]);
_local_21++;
};
_local_20.position = 0;
if (_local_17.indexOf(_local_20.readUTF()) >= 0){
if (_local_16 == 0){
_local_18 = true;
break;
};
_local_23 = new ByteArray();
_local_24 = [103, 97, 109, 101, 45];
_local_23.writeShort(_local_24.length);
_local_25 = 0;
while (_local_25 < _local_24.length) {
_local_23.writeByte(_local_24[_local_25]);
_local_25++;
};
_local_23.position = 0;
_local_22 = _local_23.readUTF();
_local_26 = [[100, 101], [100, 107], [101, 115], [102, 105], [102, 114], [105, 116], [110, 108], [110, 111], [115, 101], [117, 115], [98, 114], [116, 114], [115, 49], [115, 50], [115, 49, 45, 116, 101, 115, 116]];
_local_27 = 0;
while (_local_27 < _local_26.length) {
_local_28 = new ByteArray();
_local_29 = _local_26[_local_27];
_local_28.writeShort(_local_29.length);
_local_30 = 0;
while (_local_30 < _local_29.length) {
_local_28.writeByte(_local_29[_local_30]);
_local_30++;
};
_local_28.position = 0;
if (_local_17.indexOf((_local_22 + _local_28.readUTF())) >= 0){
_local_18 = true;
break;
};
_local_27++;
};
};
_local_16++;
};
if (!_local_18){
_local_31 = new Sprite();
(this._SafeStr_13508.getDisplayObject() as Sprite).addChild(_local_31);
_local_31.graphics.beginFill(0xFFFFFF);
_local_31.graphics.drawRect(0, 0, (_arg_9.width * 50), (_arg_9.height * 50));
_local_31.graphics.endFill();
};
};
What this does basically is check if the date is higher than Tue, 12 Jan 2016 00:00:00 GMT and then makes the screen white, to what I assume it is another anti retro server tactic.
If has a way too easy fix. Find 1452556800000 using RABCDasm and change it to a higher number. I myself put 9452556800000 since that day will never come.
The following steps are:
- Using the command line prompt input the following code:
Code:
abcexport Habbo.swf
rabcdasm Habbo-2.abc
swfdecompress Habbo.swf
- After this using a text search software (you can use notepad++ in the tab "Search in files"), look for the string 1452556800000
- Change it to your desired date
- Recompile the SWF file using the following
Code:
rabcasm Habbo-2/Habbo-2.main.asasm
abcreplace Habbo.swf 2 Habbo-2/Habbo-2.main.abc
Don't forget to compress the SWF file if you would to do so after this.
Thats it, please remember to clear your cache files and/or use a different file name.
What do you think that Sulake implemented this method? I think it is very smart of them and yet very dumb since its way to
Re: White screen fix - New versions
Doesnt work here, even when i changed the number... can you help me?
Re: White screen fix - New versions
Thank you for the fix, no more white client screen + works like a charm.
Their new method was smart IMO but it can be fixable lol..
Re: White screen fix - New versions
Instead of changing the data you can also change the ifnge to ifge. Note that this only works if the data has already been passed.
- - - Updated - - -
Quote:
Originally Posted by
JerryCool
Thank you for the fix, no more white client screen + works like a charm.
Their new method was smart IMO but it can be fixable lol..
Its not smart, its stupid.
The only way for them to prevent this is if they wrote their own client in C++ or something. But even then.
Re: White screen fix - New versions
Quote:
Originally Posted by
The General
Instead of changing the data you can also change the ifnge to ifge. Note that this only works if the data has already been passed.
- - - Updated - - -
Its not smart, its stupid.
The only way for them to prevent this is if they wrote their own client in C++ or something. But even then.
Thank you for the fast fix!
Re: White screen fix - New versions
Yeah this is a stupid attempt for trying to stop retro hotels with using Habbo's swf but failing everytime. Better they stop with their hopeless attempts because if they still using SWF it would everytime patched, just a matter of time to find out.
Re: White screen fix - New versions
Not sure what they do with it though but:
_local_12 = [99, 111, 110, 110, 101, 99, 116, 105, 111, 110, 46, 105, 110, 102, 111, 46, 104, 111, 115, 116];
Is connection.info.host which they then request from the variables.
Tried wiresharking. Maybe they forward this data to their servers? If so we should remove the whole block of code. Locally but nothing came up.
Re: White screen fix - New versions
Another option is keep your emulator (The SWF build) uptodate
Re: White screen fix - New versions
SWF could get off this and put this fix because I could not find the exact number: http://178.33.115.100/swfhelandia/gordon/PRODUCTION-201511031204-354454376/Crackedx.swf even if the folder is otherwise RELEASE .swf and last January but I snapshot white
Re: White screen fix - New versions
Pseudocode for the check:
PHP Code:
if (timenow >= expiretime)
{
if(host.contains("varoke.net")
{
// client is allowed to load
}
else if(host.contains("habbo.com"))
{
if(host.contains("game-xx")) // xx being de,dk,es,fi,fr,it,nl,no,se,us,br,tr,s1,s2, or s1-test
{
// client is allowed to load
}
}
// a white layer gets drawn over the client
}
So it's basically a new domain check, and there's no sign of the info being sent anywhere.
Re: White screen fix - New versions
Quote:
Originally Posted by
AWA
Pseudocode for the check:
PHP Code:
if (timenow >= expiretime)
{
if(host.contains("varoke.net")
{
// client is allowed to load
}
else if(host.contains("habbo.com"))
{
if(host.contains("game-xx")) // xx being de,dk,es,fi,fr,it,nl,no,se,us,br,tr,s1,s2, or s1-test
{
// client is allowed to load
}
}
// a white layer gets drawn over the client
}
So it's basically a new domain check, and there's no sign of the info being sent anywhere.
I was too lazy to decode all the bytes.
Re: White screen fix - New versions
Requesting to @anthony93260 Add this on SulkaDasm.
I already changed my Habbo.swf with this.
Sulake is going more worse.
Re: White screen fix - New versions
Quote:
Originally Posted by
ovflowd
Requesting to @
anthony93260 Add this on SulkaDasm.
I already changed my Habbo.swf with this.
Sulake is going more worse.
Already did two months ago or something but never got a reply.
Re: White screen fix - New versions
Ping @Arachis to add this on HabBit.
And ping @BurakDev to add this on BurakSwfCracker 2.0 :sleep:
Re: White screen fix - New versions
Quote:
Originally Posted by
BurakDev
Ping @
Arachis to add this on HabBit.
And ping @
BurakDev to add this on BurakSwfCracker 2.0 :sleep:
Arachis already added that, before tis thread being created.
But idk when i use his swf cracker, the emulator receive no one connection/socket, nothing.
Re: White screen fix - New versions
"_ local_18 = false;" set it to "true" and will not occur the white screen. (Using the RABCDasm, I'm not going to demonstrate how, let alone say what search, you have a structure at the very beginning of the discussion, and should know the least how to change a true/false value in source a action script.
Re: White screen fix - New versions
Quote:
Originally Posted by
trylix
"_ local_18 = false;" set it to "true" and will not occur the white screen. (Using the RABCDasm, I'm not going to demonstrate how, let alone say what search, you have a structure at the very beginning of the discussion, and should know the least how to change a true/false value in source a action script.
Thanks for the fix. But knowing how to change something in AS doesn't mean you can change it in ABC bytecode. You have to set some 'pushboolean' or whatever (I know there is pushstring and some other push***** instructions, don't know about pushboolean) to the opposite value.
Cheers,
Glaceon.
Re: White screen fix - New versions
Quote:
Originally Posted by
ovflowd
Arachis already added that, before tis thread being created.
But idk when i use his swf cracker, the emulator receive no one connection/socket, nothing.
Whaaaat, is anyone else having problems with HabBit.
Quote:
Originally Posted by
trylix
"_ local_18 = false;" set it to "true" and will not occur the white screen. (Using the RABCDasm, I'm not going to demonstrate how, let alone say what search, you have a structure at the very beginning of the discussion, and should know the least how to change a true/false value in source a action script.
I just have it change the time stamp to the largest possible double value:
http://i.imgur.com/dVnd1HV.png
https://github.com/ArachisH/Sulakore...HFlash.cs#L123
Re: White screen fix - New versions
Quote:
Originally Posted by
Arachis
Yep, i have also that problem...
Wanted to try your utility, so downloaded the same PRODUCTION as Plus Habboons one from Habbo, cracked it, but it didnt receive connections.
It worked with the Habbo.swf that came inside the SWF pack from Sledmore, so its something in your utility i think.
Re: White screen fix - New versions
Quote:
Originally Posted by
Multify
Yep, i have also that problem...
Wanted to try your utility, so downloaded the same PRODUCTION as Plus Habboons one from Habbo, cracked it, but it didnt receive connections.
It worked with the Habbo.swf that came inside the SWF pack from Sledmore, so its something in your utility i think.
Oh man, I always thought it was working for you guys. Does anyone know what I'm doing wrong?
Re: White screen fix - New versions
After decompile the habbo.swf, look for the file "WindowContext.class.asasm" (look for it in the Habbo-2 folder), in his search for "Date" until I find something like: (Screenshot by Lightshot)
After that go down quietly (passing the file down, do not know how to explain, just go down quietly) to find that something like this: (Screenshot by Lightshot)
And ready! we found what we wanted, modify the "pushfalse" (Screenshot by Lightshot) to "pushtrue"
@Arachis, I don't know what program is this, I always use manual methods, but I can help you, as long as you give me the source of the program so I can analyze the changes he is making in the file
excuse the bad English, I am Brazilian.
Re: White screen fix - New versions
Quote:
Originally Posted by
Arachis
Oh man, I always thought it was working for you guys. Does anyone know what I'm doing wrong?
I didn't see your source code of Your SWF Cracker, i will do a check. But yeah, the SWF doesn't make any socket connections.
- - - Updated - - -
Quote:
Originally Posted by
Arachis
Observation why DateTime is a float in your snippet, i remember that is a fully integer.
Re: White screen fix - New versions
why all have problem with this, i use an 2016 production habbo swf and i dont got this problem?
Re: White screen fix - New versions
Quote:
Originally Posted by
HotelMaker
why all have problem with this, i use an 2016 production habbo swf and i dont got this problem?
Because 2016 is later then the date coded in the SWF.
Re: White screen fix - New versions
Quote:
Originally Posted by
ovflowd
I didn't see your source code of Your SWF Cracker, i will do a check. But yeah, the SWF doesn't make any socket connections.
- - - Updated - - -
Observation why DateTime is a float in your snippet, i remember that is a fully integer.
The original instruction is(or was): pushdouble 1452556800000, so I just replaced the value with the largest double.
They changed something, check out the newest client build(PRODUCTION-201601121016-572931594):
It's dumb though, because you can just replace the two top instructions that call: local11.time, and replace it with 0/-1:
Fortunately, JPexs was kind enough to remove the "unreachable" code when viewing the AS representation.