Re: White screen fix - New versions
Thanks for this post, I'm sure most people already knew this, but for those that didn't it's really helpful. : -)
Quote:
Originally Posted by
Arachis
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.
That or you just remove all the "pushbyte, multiply" and replace with the same as last time.
The cat and mouse game continues.
Hi Dom : -)
Re: White screen fix - New versions
I have a good fix for those who needs it with some explaination.
The code
Code:
if (k.time >= 1452556800000)
Actually translates into AS3 bytecode:
Code:
getlocal 11
getproperty QName(PackageNamespace(""), "time")
pushdouble 1452556800000
ifnge L650
Where it will get the time property and add it to the stack. Then it'll push the double 1452556800000 to the stack. It'll check if the first item in the stack (the time) is not greater or equal to the second item (1452556800000). If it isn't greater or equal to, it'll go to L650. This is what L650 does:
returnvoid behaves the same as return in C#/Java/C/C++ etc..., it'll stop the script without returning an actual value. In this case, nothing is built (the loader I mean) and so you get the white screen, however, it doesn't terminate the rest of the SWF so it'll do other stuff. But the whole layout is gone as it's never built.
If you already got a white screen, the easiest fix is th change 'ifnge' to 'ifge'. This means that it will terminate when the current time is lower than a certain time and otherwise it'll continue. The ABC would be translated to:
Code:
if (k.time <= 1452556800000)
So this is the complete reversed way. But of course, this isn't the way to go. This way you'll have to wait until you get a white screen.
Because you're checking on the high double, there's a chance it will go to L650. But if you use this code, it should always work (at least, as far as I know):
Code:
pushdouble 0
ifge L650
I don't know how all the time comparison works but this code will be translated into:
It should fix your SWF. Happy retro making!
The whole (as far as I know) documentation about AS3 bytecode you can read in this PDF: https://www.adobe.com/content/dam/Ad...m2overview.pdf.
Re: White screen fix - New versions
Quote:
Originally Posted by
Arachis
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.
I was cracking PRODUCTION-201601121016-572931594 but the client left black. Do you know what this thing is doing? I think they added something else but I don't understand how to patch it. What do I need exactly to do? I was using sulkadasm for cracking. @Sledmore
Re: White screen fix - New versions
Quote:
Originally Posted by
streamhotel
I was cracking PRODUCTION-201601121016-572931594 but the client left black. Do you know what this thing is doing? I think they added something else but I don't understand how to patch it. What do I need exactly to do? I was using sulkadasm doe cracking. @
Sledmore
They actually did change something, didn't noticed until you brought it up. The method "isValidHabboDomain" in "Habbo" is no longer static, and it's name is now getting changed("_-wv" in this case). I'm not exactly sure how Sulkadasm is cleansing that method, but if that method returns false, it causes the black screen thingy.
Fixing that in HabBit right now, just like Shorty said: "The cat and mouse game continues."
Re: White screen fix - New versions
Quote:
Originally Posted by
Arachis
They actually did change something, didn't noticed until you brought it up. The method "isValidHabboDomain" in "Habbo" is no longer static, and it's name is now getting changed("_-wv" in this case). I'm not exactly sure how Sulkadasm is cleansing that method, but if that method returns false, it causes the black screen thingy.
Fixing that in HabBit right now, just like Shorty said: "The cat and mouse game continues."
I wish Habbo would just come up with something hard for a change, it's not challenging anymore :-(
Cheers,
Glaceon.
Re: White screen fix - New versions
Hey,
Was updating to the latest SWF and noticed a few things (some things that you guys pointed out, like the isValidHabboDomain now having an obfuscated name per release, though this didn't seem to give me a problem).
And also their timestamp check seems to give a black screen now, but allows you to connect.
Also, I typically use @BurakDev's cracker, but I had an issue where it removed some code the SWF requires (giving me a VerifyError), it happened when it was replacing the RSAKeys.
Some of you probably know this, but I didn't know where to even look as I didn't expect this to cause me an issue, but I'll share anyway incase it helps.
The new check is...
PHP Code:
if (k.time >= (((((((((((((((10 * 10) * 2) * 2) + ((6 * 5) * 2)) + 7) * 9) * 3) * 24) * 60) * 2) * 2) * 5) * ((10 * 10) * 10)) * 2) * 2))
Just simply do the same old, remove it all from WindowContext, looks like this:
PHP Code:
pushbyte 10
dup
multiply
pushbyte 2
multiply
pushbyte 2
multiply
pushbyte 6
pushbyte 5
multiply
pushbyte 2
multiply
add
pushbyte 7
add
pushbyte 9
multiply
pushbyte 3
multiply
pushbyte 24
multiply
pushbyte 60
multiply
pushbyte 2
multiply
pushbyte 2
multiply
pushbyte 5
multiply
pushbyte 10
dup
multiply
pushbyte 10
multiply
multiply
pushbyte 2
multiply
pushbyte 2
multiply
And replace it with:
PHP Code:
pushdouble 9999999999999
Cheers.
Re: White screen fix - New versions
@Sledmore you sir are a legend ;d Good sharing!
Cheers,
Glaceon.
Re: White screen fix - New versions
@Sledmore Wait, my SWF cracker still work ? :w00t:
I will update it to 2.0 soon !
Re: White screen fix - New versions
Quote:
Originally Posted by
BurakDev
@
Sledmore Wait, my SWF cracker still work ? :w00t:
I will update it to 2.0 soon !
Yeah, :P I've been using it for months. You did a good job with it. ^^
Looking forward to the next version.