This is a little bit obfuscated but if you know pointer-arithmetics then this is not hard.
The numbers you see in the array are integers. Integers are 4 byte big in the AVM. Every integer holds a String of 4 bytes.
That means that the String representation of the first array _local_3 is "sh.utils::Timer/tick()" which was the function of the Golem before my refactoring (some months ago) and the second one is "ExternalInterf" which means ExternalInterface -> the API I am using to communicate with the C++ part of the Golem.
Code:
var _local_3:Array = [1471336, 779449449, 1819490874, 1416195429, 1915712617, 1667967017]; var _local_4:int = _local_3.length; var _local_5:ByteArray = new ByteArray(); var _local_6:int; while (_local_6 < _local_4) { _local_5.writeInt(_local_3[_local_6]); _local_6++; }; _local_5.writeInt(0); _local_5.position = 0; _SafeStr_10798 = _local_5.readUTF(); _local_5.clear(); _local_3 = [1131896, 1952805486, 1634486638, 1952805478]; _local_6 = 0; while (_local_6 < _local_4) { _local_5.writeInt(_local_3[_local_6]); _local_6++; }; _SafeStr_10799 = _local_5.readUTF();
Code:
_local_6 = new Error().getStackTrace(); if (_local_6){ if (((_SafeStr_311.endsWith(_local_6, _SafeStr_10798)) || (_SafeStr_311.contains(_local_6, _SafeStr_10799)))){ _SafeStr_10803 = 0x800000; }; };
The variable "_SafeStr_10803" then holds the "Golem-Identifier" which the client sends to the DO server.
I am disappointed that I didn't see it earlier. The reason is that I always assumed that BP would never implement something to just catch my bot but yeah they are doing that.
For us as a community, that is a very good thing. Now we know their limited capabilities of recognition of a Bot like the Golem.
I'm telling you this, because it doesn't make a difference since I'm sure that BP now already knows that I bypassed it.
This is the one and only time that I'm posting something like that. I won't talk about future code changes but you can be sure that I'm tracking these already.
-> Now, the Golem is safe.
Once BP pushes a new Darkorbit client update, my tools are going to track new changes and the Golem stays offline till everything is once again bypassed and secure.
Link: