 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
LtO Advanced Cheater
Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Mon Nov 05, 2018 1:43 am Post subject: As3 code stays identical, but Bytecode changed? |
|
|
I got confused with codes, in a flash game where I'm looking for solutions...
So the flash codes in the newer version of this game still look about identical to the original, but the Bytecode contains a lot more hex than the bytecode of the original. The flashcodes used to look different too in the newer versions, but this was before I used de-obfuscation feature in FFDEC, which then showed the flashcode as still being identical. Here is an example:
Flashcode (shows identical in both versions):
| Code: | public function Clear() : void
{
var _loc1_:* = null;
var _loc2_:int = 0;
var _loc3_:* = null;
var _loc4_:* = null;
var _loc5_:* = null;
if(this.mChatWindow)
{
this.mChatWindow.chat_txt.text = "";
this.mChatWindow.chatInput_txt.text = "";
this.mChatWindow.chatInput_txt.setSelection(0,0);
this.UpdateScroll();
if(this.mChatBuffer != null && this.mChatBuffer.length > 0)
{
_loc1_ = this.mChatBuffer.slice(0,this.mChatBuffer.length - 1).split("|");
_loc2_ = 0;
for each(_loc3_ in _loc1_)
{
_loc4_ = _loc3_.split("~");
_loc5_ = _loc4_[0];
if(_loc4_[0].indexOf("GameSupport") != -1 || _loc4_[0].indexOf("Game Support") != -1)
{
if(_loc4_[0].charAt(0) == 1)
{
_loc2_ = NetBase.kCriticalSupportMessageId;
}
else
{
_loc2_ = NetBase.kSupportMessageId;
}
_loc5_ = "Game Support";
}
else
{
_loc2_ = 0;
}
this.OnMessage(_loc2_,_loc5_,Entities.decodeEntities(String(_loc4_[1]).replace("&","&")));
}
}
}
} |
The bytecoce in the original version (when no obfuscation was used yet):
| Code: | trait method Qname(PackageNamespace(""),"Clear")
dispid 0
method
name null
returns Qname(PackageNamespace(""),"void")
body
maxstack 7
localcount 8
initscopedepth 4
maxscopedepth 5
code
; d0
getlocal_0
; 30
pushscope
; 20
pushnull
; 80 0b
coerce Qname(PackageNamespace(""),"Array")
; d5
setlocal_1
; 24 00
pushbyte 0
; d6
setlocal_2
; 20
pushnull
; 85
coerce_s
; d7
setlocal_3
; 20
pushnull
; 80 0b
coerce Qname(PackageNamespace(""),"Array")
; 63 04
setlocal 4
; 20
pushnull
; 85
coerce_s
; 63 05
setlocal 5
; d0
getlocal_0
; 66 d5 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatWindow")
; 12 1f 01 00
iffalse ofs013c
; d0
getlocal_0
; 66 d5 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatWindow")
; 66 d5 5a
getproperty Multiname("chat_txt",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c 01
pushstring ""
; 61 d6 5a
setproperty Multiname("text",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; d0
getlocal_0
; 66 d5 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatWindow")
; 66 d7 5a
getproperty Multiname("chatInput_txt",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c 01
pushstring ""
; 61 d6 5a
setproperty Multiname("text",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; d0
getlocal_0
; 66 d5 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatWindow")
; 66 d7 5a
getproperty Multiname("chatInput_txt",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 24 00
pushbyte 0
; 2a
dup
; 4f d8 5a 02
callpropvoid Multiname("setSelection",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 2
; d0
getlocal_0
; 4f d0 22 00
callpropvoid Qname(PrivateNamespace(null,"93"),"UpdateScroll") 0
; d0
getlocal_0
; 66 bf 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatBuffer")
; 20
pushnull
; ab
equals
; 96
not
; 2a
dup
; 12 0b 00 00
iffalse ofs005f
; 29
pop
; d0
getlocal_0
; 66 bf 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatBuffer")
; 66 a5 22
getproperty Qname(PackageNamespace(""),"length")
; 24 00
pushbyte 0
; af
greaterthan
; 12 d9 00 00
ofs005f:iffalse ofs013c
; d0
getlocal_0
; 66 bf 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatBuffer")
; 24 00
pushbyte 0
; d0
getlocal_0
; 66 bf 22
getproperty Qname(PrivateNamespace(null,"93"),"mChatBuffer")
; 66 a5 22
getproperty Qname(PackageNamespace(""),"length")
; 93
decrement
; 46 a4 4c 02
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"slice") 2
; 2c d1 46
pushstring "|"
; 46 ad 4c 01
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"split") 1
; 80 0b
coerce Qname(PackageNamespace(""),"Array")
; d5
setlocal_1
; 24 00
pushbyte 0
; d6
setlocal_2
; 24 00
pushbyte 0
; 63 06
setlocal 6
; d1
getlocal_1
; 82
coerce_a
; 63 07
setlocal 7
; 10 a3 00 00
jump ofs0131
; 09
ofs008e:label
; 62 07
getlocal 7
; 62 06
getlocal 6
; 23
nextvalue
; 85
coerce_s
; d7
setlocal_3
; d3
getlocal_3
; 2c c9 5a
pushstring "~"
; 46 ad 4c 01
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"split") 1
; 80 0b
coerce Qname(PackageNamespace(""),"Array")
; 2a
dup
; 63 04
setlocal 4
; 24 00
pushbyte 0
; 66 d9 5a
getproperty MultinameL([PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 85
coerce_s
; 63 05
setlocal 5
; 62 04
getlocal 4
; 24 00
pushbyte 0
; 66 d9 5a
getproperty MultinameL([PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c ca 5a
pushstring "GameSupport"
; 46 da 5a 01
callproperty Multiname("indexOf",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 1
; 24 ff
pushbyte -1
; ab
equals
; 96
not
; 2a
dup
; 11 13 00 00
iftrue ofs00d5
; 29
pop
; 62 04
getlocal 4
; 24 00
pushbyte 0
; 66 d9 5a
getproperty MultinameL([PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c de 46
pushstring "Game Support"
; 46 da 5a 01
callproperty Multiname("indexOf",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 1
; 24 ff
pushbyte -1
; ab
equals
; 96
not
; 12 30 00 00
ofs00d5:iffalse ofs0109
; 62 04
getlocal 4
; 24 00
pushbyte 0
; 66 d9 5a
getproperty MultinameL([PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 24 00
pushbyte 0
; 46 db 5a 01
callproperty Multiname("charAt",[PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 1
; 24 01
pushbyte 1
; 14 0c 00 00
ifne ofs00f8
; 60 fd 04
getlex Qname(PackageNamespace(""),"NetBase")
; 66 90 41
getproperty Qname(PackageNamespace(""),"kCriticalSupportMessageId")
; 73
convert_i
; d6
setlocal_2
; 10 08 00 00
jump ofs0100
; 60 fd 04
ofs00f8:getlex Qname(PackageNamespace(""),"NetBase")
; 66 91 41
getproperty Qname(PackageNamespace(""),"kSupportMessageId")
; 73
convert_i
; d6
setlocal_2
; 2c de 46
ofs0100:pushstring "Game Support"
; 63 05
setlocal 5
; 10 03 00 00
jump ofs010c
; 24 00
ofs0109:pushbyte 0
; d6
setlocal_2
; d0
ofs010c:getlocal_0
; d2
getlocal_2
; 62 05
getlocal 5
; 60 86 15
getlex Qname(PackageNamespace("it.gotoandplay.smartfoxserver.util"),"Entities")
; 5d 01
findpropstrict Qname(PackageNamespace(""),"String")
; 62 04
getlocal 4
; 24 01
pushbyte 1
; 66 d9 5a
getproperty MultinameL([PrivateNamespace(null,"93"),PackageNamespace(""),PrivateNamespace(null,"358"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 46 01 01
callproperty Qname(PackageNamespace(""),"String") 1
; 2c e3 42
pushstring "&"
; 2c cb 5a
pushstring "&"
; 46 8a 4d 02
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"replace") 2
; 46 fa 44 01
callproperty Qname(PackageNamespace(""),"decodeEntities") 1
; 4f c1 22 03
callpropvoid Qname(PrivateNamespace(null,"93"),"OnMessage") 3
; 32 07 06
ofs0131:hasnext2 7 6
; 11 56 ff ff
iftrue ofs008e
; 08 07
kill 7
; 08 06
kill 6
; 47
ofs013c:returnvoid
end ; code
end ; body
end ; method
end ; trait |
And now the Bytecode in the newer version:
| Code: | trait method Qname(PackageNamespace(""),"Clear")
dispid 0
method
name null
returns Qname(PackageNamespace(""),"void")
body
maxstack 11
localcount 10
initscopedepth 4
maxscopedepth 5
code
; 27
pushfalse
; 26
pushtrue
; 63 08
setlocal 8
; 40 9d 3e
newfunction 7965
; 29
pop
; 10 0d 00 00
jump ofs0019
; 08 06
kill 6
; d0
getlocal_0
; c2 05
inclocal_i 5
; b3
istypelate
; 62 07
getlocal 7
; d7
setlocal_3
; ae
lessequals
; 92 07
inclocal 7
; 21
pushundefined
; 63 09
ofs0019:setlocal 9
; d0
getlocal_0
; 30
pushscope
; 20
pushnull
; 80 04
coerce Qname(PackageNamespace(""),"Array")
; d5
setlocal_1
; 24 00
pushbyte 0
; 62 09
getlocal 9
; 12 10 00 00
iffalse ofs0039
; 24 51
pushbyte 81
; c5
add_i
; c4
negate_i
; 24 74
pushbyte 116
; c7
multiply_i
; 24 63
pushbyte 99
; c5
add_i
; 24 5e
pushbyte 94
; c5
add_i
; 24 61
pushbyte 97
; c5
add_i
; d6
ofs0039:setlocal_2
; 20
pushnull
; 85
coerce_s
; d7
setlocal_3
; 20
pushnull
; 80 04
coerce Qname(PackageNamespace(""),"Array")
; 63 04
setlocal 4
; 20
pushnull
; 85
coerce_s
; 63 05
setlocal 5
; 62 08
getlocal 8
; 96
not
; 11 d7 00 00
iftrue ofs0124
; d0
getlocal_0
; 66 d6 01
getproperty Qname(PrivateNamespace("*","36"),"mChatWindow")
; 12 93 03 00
iffalse ofs03e8
; 62 09
getlocal 9
; 96
not
; 12 22 01 00
iffalse ofs017e
; d0
getlocal_0
; 66 d6 01
getproperty Qname(PrivateNamespace("*","36"),"mChatWindow")
; 66 d2 03
getproperty Multiname("chat_txt",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c 01
pushstring ""
; 61 e3 0f
setproperty Multiname("text",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 62 08
getlocal 8
; 12 b6 00 00
iffalse ofs0124
; 62 08
getlocal 8
; 11 49 00 00
iftrue ofs00bd
; 62 06
getlocal 6
; d3
getlocal_3
; d3
getlocal_3
; 08 06
kill 6
; 08 03
kill 3
; 08 03
kill 3
; d7
setlocal_3
; d7
setlocal_3
; 63 06
setlocal 6
; 09
ofs0082:label
; d0
getlocal_0
; 66 d6 01
getproperty Qname(PrivateNamespace("*","36"),"mChatWindow")
; 66 f7 08
getproperty Multiname("chatInput_txt",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 24 00
pushbyte 0
; 62 09
getlocal 9
; 12 07 00 00
iffalse ofs0099
; 24 41
pushbyte 65
; c6
subtract_i
; c0
increment_i
; 24 5e
pushbyte 94
; c6
subtract_i
; 2a
ofs0099:dup
; 4f b8 50 02
callpropvoid Multiname("setSelection",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 2
; 62 09
getlocal 9
; 96
not
; 12 7f 00 00
iffalse ofs0124
; 62 08
getlocal 8
; 11 39 00 00
iftrue ofs00e4
; 62 07
getlocal 7
; 62 04
getlocal 4
; 62 07
getlocal 7
; 08 07
kill 7
; 08 04
kill 4
; 08 07
kill 7
; 63 07
setlocal 7
; 63 04
setlocal 4
; 63 07
setlocal 7
; d0
ofs00bd:getlocal_0
; 66 d6 01
getproperty Qname(PrivateNamespace("*","36"),"mChatWindow")
; 66 f7 08
getproperty Multiname("chatInput_txt",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c 01
pushstring ""
; 61 e3 0f
setproperty Multiname("text",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 62 08
getlocal 8
; 96
not
; 11 ae 00 00
iftrue ofs017e
; 62 09
getlocal 9
; 12 ac ff ff
iffalse ofs0082
; 62 08
getlocal 8
; d1
getlocal_1
; d2
getlocal_2
; 08 08
kill 8
; 08 01
kill 1
; 08 02
kill 2
; d6
setlocal_2
; d5
setlocal_1
; 63 08
setlocal 8
; d0
ofs00e4:getlocal_0
; 4f 8a 40 00
callpropvoid Qname(PrivateNamespace("*","36"),"UpdateScroll") 0
; 62 09
getlocal 9
; 11 35 00 00
iftrue ofs0124
; 62 08
getlocal 8
; 11 00 00 00
iftrue ofs00f5
; d0
ofs00f5:getlocal_0
; 66 af 1b
getproperty Qname(PrivateNamespace("*","36"),"mChatBuffer")
; 62 09
getlocal 9
; 11 52 00 00
iftrue ofs0151
; 20
pushnull
; ab
equals
; 62 08
getlocal 8
; 96
not
; 11 3b 00 00
iftrue ofs0143
; 96
not
; 62 09
getlocal 9
; 96
not
; 12 33 00 00
iffalse ofs0143
; 2a
dup
; 12 2e 00 00
iffalse ofs0143
; 62 09
getlocal 9
; 96
not
; 12 27 00 00
iffalse ofs0143
; 29
pop
; 62 09
getlocal 9
; 96
not
; 12 29 00 00
iffalse ofs014d
; d0
ofs0124:getlocal_0
; 66 af 1b
getproperty Qname(PrivateNamespace("*","36"),"mChatBuffer")
; 62 09
getlocal 9
; 96
not
; 12 22 00 00
iffalse ofs0151
; 66 0b
getproperty Qname(PackageNamespace(""),"length")
; 24 00
pushbyte 0
; 62 08
getlocal 8
; 11 09 00 00
iftrue ofs0142
; 24 51
pushbyte 81
; c7
multiply_i
; 24 45
pushbyte 69
; c7
multiply_i
; 24 01
pushbyte 1
; c7
multiply_i
; af
ofs0142:greaterthan
; 12 a1 02 00
ofs0143:iffalse ofs03e8
; 62 08
getlocal 8
; 12 4f 00 00
iffalse ofs019c
; d0
ofs014d:getlocal_0
; 66 af 1b
getproperty Qname(PrivateNamespace("*","36"),"mChatBuffer")
; 24 00
ofs0151:pushbyte 0
; 62 08
getlocal 8
; 11 09 00 00
iftrue ofs0162
; c0
increment_i
; c4
negate_i
; 24 1a
pushbyte 26
; c6
subtract_i
; 24 43
pushbyte 67
; c5
add_i
; c0
increment_i
; d0
ofs0162:getlocal_0
; 66 af 1b
getproperty Qname(PrivateNamespace("*","36"),"mChatBuffer")
; 66 0b
getproperty Qname(PackageNamespace(""),"length")
; 93
decrement
; 46 bb 04 02
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"slice") 2
; 2c c9 63
pushstring "|"
; 46 e7 01 01
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"split") 1
; 80 04
coerce Qname(PackageNamespace(""),"Array")
; d5
setlocal_1
; 62 09
getlocal 9
; 96
not
; 12 1e 00 00
iffalse ofs019c
; 24 00
ofs017e:pushbyte 0
; 62 09
getlocal 9
; 12 08 00 00
iffalse ofs018e
; c4
negate_i
; 24 3d
pushbyte 61
; c5
add_i
; 24 17
pushbyte 23
; c5
add_i
; c1
decrement_i
; 62 08
ofs018e:getlocal 8
; 96
not
; 11 19 00 00
iftrue ofs01ae
; d6
setlocal_2
; 62 08
getlocal 8
; 12 4c 02 00
iffalse ofs03e8
; 24 00
ofs019c:pushbyte 0
; 62 09
getlocal 9
; 12 0a 00 00
iffalse ofs01ae
; c0
increment_i
; 24 53
pushbyte 83
; c6
subtract_i
; c1
decrement_i
; c1
decrement_i
; 24 26
pushbyte 38
; c5
add_i
; c1
decrement_i
; 63 06
ofs01ae:setlocal 6
; 62 08
getlocal 8
; 12 30 02 00
iffalse ofs03e6
; d1
getlocal_1
; 82
coerce_a
; 63 07
setlocal 7
; 62 08
getlocal 8
; 12 24 02 00
iffalse ofs03e4
; 10 19 02 00
jump ofs03dd
; 09
ofs01c4:label
; 62 07
getlocal 7
; 62 06
getlocal 6
; 23
nextvalue
; 10 0e 00 00
jump ofs01dc
; 2b
swap
; 62 08
getlocal 8
; 2b
swap
; 92 08
inclocal 8
; 1d
popscope
; 92 07
inclocal 7
; 92 08
inclocal 8
; c2 02
inclocal_i 2
; 70
convert_s
; 85
ofs01dc:coerce_s
; 62 08
getlocal 8
; 96
not
; 11 45 00 00
iftrue ofs0229
; d7
setlocal_3
; 62 08
getlocal 8
; 12 8f 01 00
iffalse ofs037a
; d3
getlocal_3
; 62 08
getlocal 8
; 96
not
; 11 36 00 00
iftrue ofs0229
; 2c cb 63
pushstring "~"
; 46 e7 01 01
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"split") 1
; 80 04
coerce Qname(PackageNamespace(""),"Array")
; 62 08
getlocal 8
; 12 0a 00 00
iffalse ofs020c
; 2a
dup
; 63 04
setlocal 4
; 62 09
getlocal 9
; 96
not
; 12 2d 00 00
iffalse ofs0239
; 24 00
ofs020c:pushbyte 0
; 62 08
getlocal 8
; 11 0a 00 00
iftrue ofs021e
; 24 6c
pushbyte 108
; c7
multiply_i
; 24 21
pushbyte 33
; c7
multiply_i
; 24 02
pushbyte 2
; c6
subtract_i
; c4
negate_i
; 62 09
ofs021e:getlocal 9
; 96
not
; 12 d4 00 00
iffalse ofs02f9
; 66 f1 06
getproperty MultinameL([PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 85
coerce_s
; 63 05
ofs0229:setlocal 5
; 62 09
getlocal 9
; 11 03 01 00
iftrue ofs0334
; 62 04
getlocal 4
; 62 09
getlocal 9
; 11 a7 00 00
iftrue ofs02e0
; 24 00
ofs0239:pushbyte 0
; 62 08
getlocal 8
; 11 0a 00 00
iftrue ofs024b
; c4
negate_i
; 24 64
pushbyte 100
; c6
subtract_i
; 24 19
pushbyte 25
; c6
subtract_i
; 24 1d
pushbyte 29
; c6
subtract_i
; 62 08
ofs024b:getlocal 8
; 12 a8 00 00
iffalse ofs02f9
; 66 f1 06
getproperty MultinameL([PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c fd 3b
pushstring "GameSupport"
; 46 87 51 01
callproperty Multiname("indexOf",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 1
; 24 ff
pushbyte -1
; 62 09
getlocal 9
; 12 0a 00 00
iffalse ofs026d
; 24 35
pushbyte 53
; c6
subtract_i
; 24 4d
pushbyte 77
; c5
add_i
; c4
negate_i
; 24 32
pushbyte 50
; c7
multiply_i
; ab
ofs026d:equals
; 62 09
getlocal 9
; 11 60 00 00
iftrue ofs02d4
; 96
not
; 62 08
getlocal 8
; 12 0b 00 00
iffalse ofs0286
; 2a
dup
; 11 54 00 00
iftrue ofs02d4
; 62 09
getlocal 9
; 11 4e 00 00
iftrue ofs02d4
; 29
ofs0286:pop
; 62 09
getlocal 9
; 96
not
; 12 a6 00 00
iffalse ofs0334
; 62 04
getlocal 4
; 62 08
getlocal 8
; 96
not
; 11 49 00 00
iftrue ofs02e0
; 24 00
pushbyte 0
; 62 09
getlocal 9
; 12 09 00 00
iffalse ofs02a8
; 24 23
pushbyte 35
; c6
subtract_i
; c1
decrement_i
; 24 41
pushbyte 65
; c7
multiply_i
; c0
increment_i
; c1
decrement_i
; 62 09
ofs02a8:getlocal 9
; 96
not
; 12 4a 00 00
iffalse ofs02f9
; 66 f1 06
getproperty MultinameL([PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 2c fa 3b
pushstring "Game Support"
; 46 87 51 01
callproperty Multiname("indexOf",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 1
; 24 ff
pushbyte -1
; 62 09
getlocal 9
; 12 0a 00 00
iffalse ofs02cb
; c1
decrement_i
; 24 16
pushbyte 22
; c7
multiply_i
; 24 4e
pushbyte 78
; c5
add_i
; 24 01
pushbyte 1
; c7
multiply_i
; ab
ofs02cb:equals
; 62 08
getlocal 8
; 96
not
; 11 01 00 00
iftrue ofs02d4
; 96
not
; 12 a6 00 00
ofs02d4:iffalse ofs037e
; 62 08
getlocal 8
; 12 72 00 00
iffalse ofs0350
; 62 04
getlocal 4
; 24 00
ofs02e0:pushbyte 0
; 62 08
getlocal 8
; 11 11 00 00
iftrue ofs02f9
; 24 3e
pushbyte 62
; c6
subtract_i
; 24 4d
pushbyte 77
; c6
subtract_i
; 24 0a
pushbyte 10
; c7
multiply_i
; 24 27
pushbyte 39
; c6
subtract_i
; 24 72
pushbyte 114
; c5
add_i
; c1
decrement_i
; c4
negate_i
; 66 f1 06
ofs02f9:getproperty MultinameL([PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 24 00
pushbyte 0
; 62 08
getlocal 8
; 11 08 00 00
iftrue ofs030c
; c1
decrement_i
; 24 4c
pushbyte 76
; c6
subtract_i
; 24 77
pushbyte 119
; c5
add_i
; c0
increment_i
; 46 ed 4a 01
ofs030c:callproperty Multiname("charAt",[PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")]) 1
; 24 01
pushbyte 1
; 62 08
getlocal 8
; 11 11 00 00
iftrue ofs0329
; 24 42
pushbyte 66
; c7
multiply_i
; 24 6e
pushbyte 110
; c5
add_i
; 24 4c
pushbyte 76
; c5
add_i
; c1
decrement_i
; 24 13
pushbyte 19
; c7
multiply_i
; c1
decrement_i
; 24 1d
pushbyte 29
; c5
add_i
; 14 27 00 00
ofs0329:ifne ofs0354
; 62 08
getlocal 8
; 96
not
; 11 1c 00 00
iftrue ofs0350
; 60 ec 05
ofs0334:getlex Qname(PackageNamespace(""),"NetBase")
; 66 ac 18
getproperty Qname(PackageNamespace(""),"kCriticalSupportMessageId")
; 62 08
getlocal 8
; 96
not
; 11 08 00 00
iftrue ofs0349
; 73
convert_i
; 62 08
getlocal 8
; 96
not
; 11 17 00 00
iftrue ofs0360
; d6
ofs0349:setlocal_2
; 62 09
getlocal 9
; 11 8d 00 00
iftrue ofs03dd
; 10 1a 00 00
ofs0350:jump ofs036e
; 60 ec 05
ofs0354:getlex Qname(PackageNamespace(""),"NetBase")
; 66 f4 16
getproperty Qname(PackageNamespace(""),"kSupportMessageId")
; 62 09
getlocal 9
; 11 2c 00 00
iftrue ofs038c
; 73
ofs0360:convert_i
; 62 09
getlocal 9
; 11 25 00 00
iftrue ofs038c
; d6
setlocal_2
; 62 08
getlocal 8
; 12 0c 00 00
iffalse ofs037a
; 2c fa 3b
ofs036e:pushstring "Game Support"
; 63 05
setlocal 5
; 62 08
getlocal 8
; 96
not
; 11 63 00 00
iftrue ofs03dd
; 10 15 00 00
ofs037a:jump ofs0393
; 24 00
ofs037e:pushbyte 0
; 62 08
getlocal 8
; 11 06 00 00
iftrue ofs038c
; 24 20
pushbyte 32
; c6
subtract_i
; c1
decrement_i
; c0
increment_i
; c4
negate_i
; d6
ofs038c:setlocal_2
; 62 08
getlocal 8
; 12 4a 00 00
iffalse ofs03dd
; d0
ofs0393:getlocal_0
; 10 0e 00 00
jump ofs03a6
; 07
dxnslate
; 92 02
inclocal 2
; 94 03
declocal 3
; 08 02
kill 2
; c3 06
declocal_i 6
; 1c
pushwith
; 92 05
inclocal 5
; a9
bitor
; aa
bitxor
; d2
ofs03a6:getlocal_2
; 62 05
getlocal 5
; 60 8a 0d
getlex Qname(PackageNamespace("it.gotoandplay.smartfoxserver.util"),"Entities")
; 5d 03
findpropstrict Qname(PackageNamespace(""),"String")
; 62 04
getlocal 4
; 24 01
pushbyte 1
; 62 08
getlocal 8
; 11 0d 00 00
iftrue ofs03c5
; 24 60
pushbyte 96
; c5
add_i
; 24 4a
pushbyte 74
; c5
add_i
; 24 0a
pushbyte 10
; c6
subtract_i
; c1
decrement_i
; 24 0b
pushbyte 11
; c6
subtract_i
; 66 f1 06
ofs03c5:getproperty MultinameL([PrivateNamespace("*","36"),PackageNamespace(""),PrivateNamespace("*","92"),PackageInternalNs(""),Namespace("http://adobe.com/AS3/2006/builtin"),ProtectedNamespace("Chat"),StaticProtectedNs("Chat"),StaticProtectedNs("Object")])
; 46 03 01
callproperty Qname(PackageNamespace(""),"String") 1
; 2c 8d 23
pushstring "&"
; 2c 8e 23
pushstring "&"
; 46 f1 1f 02
callproperty Qname(Namespace("http://adobe.com/AS3/2006/builtin"),"replace") 2
; 46 f2 1a 01
callproperty Qname(PackageNamespace(""),"decodeEntities") 1
; 4f f7 37 03
callpropvoid Qname(PrivateNamespace("*","36"),"OnMessage") 3
; 32 07 06
ofs03dd:hasnext2 7 6
; 11 e0 fd ff
iftrue ofs01c4
; 08 07
ofs03e4:kill 7
; 08 06
ofs03e6:kill 6
; 47
ofs03e8:returnvoid
; 47
returnvoid
end ; code
end ; body
end ; method
end ; trait
|
I compared some of those parts of the code side to side and it seems to be some kind of loops and checks it does.
I'm sure someone understands better what this is than me though?
Thanks
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4724
|
Posted: Mon Nov 05, 2018 8:38 am Post subject: |
|
|
That's just basic actionscript bytecode (ABC) obfuscation; there's nothing special about it. You can still read and understand what the code is doing. If anything, the extra space sometimes makes modifying obfuscated ABC easier than modifying optimized code (once you get used to reading it).
FFDec used to produce artifacts when deobfuscating ABC. Turning off automatic deobfuscation and reading the decompiled code as it is might be easier. However, I haven't used it in a while, so maybe it's gotten better.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
LtO Advanced Cheater
Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Mon Nov 05, 2018 9:29 am Post subject: |
|
|
| ParkourPenguin wrote: | That's just basic actionscript bytecode (ABC) obfuscation; there's nothing special about it. You can still read and understand what the code is doing. If anything, the extra space sometimes makes modifying obfuscated ABC easier than modifying optimized code (once you get used to reading it).
FFDec used to produce artifacts when deobfuscating ABC. Turning off automatic deobfuscation and reading the decompiled code as it is might be easier. However, I haven't used it in a while, so maybe it's gotten better. |
Ok, well the bytecode always shows, it's just not the flashcode that is shown when I would turn off deobfuscation... Some of the codes in those extra bytecodes just didn't make sense to me, like random number calculations, and it's also weird since it's a bunch of extra code and loops while the Flash code itself still looks identical as with the original with much less bytecode.
However the reason why I'm trying to find out these things is something I've been trying for a long time isn't working, and I assumed it would be because of the difference with that code, since it's something that used to work with the old version (of which the codes still seem identical)...?
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4724
|
Posted: Mon Nov 05, 2018 10:05 am Post subject: |
|
|
I don't know what you're trying to ask. If the bytecode changed because of an update, then update your hack. It's the same general process as when you first made the hack.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
LtO Advanced Cheater
Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Tue Nov 06, 2018 7:34 am Post subject: |
|
|
| ParkourPenguin wrote: | | I don't know what you're trying to ask. If the bytecode changed because of an update, then update your hack. It's the same general process as when you first made the hack. |
Thanks, now I read the code again and I have a better understanding of it, seems like I just gotta keep 'local 10' true and 'local 11' false, and it will go through the loops, and do just the same as in the original code. It's not all clear yet to me but I'm wondering now with this part of the code, where a newfunction seems to be assigned to 'local 11', if that would make it true or false? In this code: | Code: |
; 27
pushfalse
; 26
pushtrue
; 63 0a
setlocal 10
; 40 a0 3e
newfunction 7968
; 29
pop
; 10 0e 00 00
jump ofs001a
; ae
lessequals
; c2 05
inclocal_i 5
; c2 08
inclocal_i 8
; 75
convert_d
; 30
pushscope
; 94 08
declocal 8
; 94 03
declocal 3
; ab
equals
; 92 07
inclocal 7
; 63 0b
ofs001a:setlocal 11
|
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4724
|
Posted: Tue Nov 06, 2018 8:39 am Post subject: |
|
|
There's a "pop" instruction immediately following that. It's irrelevant; local 11 is false (the value first pushed onto the stack in the code).
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
LtO Advanced Cheater
Reputation: 0
Joined: 09 Mar 2015 Posts: 71
|
Posted: Wed Nov 07, 2018 8:45 am Post subject: |
|
|
| ParkourPenguin wrote: | | There's a "pop" instruction immediately following that. It's irrelevant; local 11 is false (the value first pushed onto the stack in the code). |
Thanks, Now I understand the code good, and it seems these loops aren't doing much, except for the code would not work if those local 10 & 11 weren't true and false, but as you can see I assume they will always be that value...
I'm stuck again on what I'm looking for so I'll give some more info in the hope someone can help me.
It is a function in the code to post different messages as 'Game Support', with a certain parameter and if you logon with the credentials (which I have). Where this used to work, Now something in the code makes it just remove the message when you post it. And as I said, and showed the code still looks about the same, only a bunch of those IFs added but it goes thru all of those. I've looked through all the codes concerning this function and found nothing that helps me. I thought if they wanted to remove it, all the code wouldn't be there anymore, I just don't know why it does not work anymore. When I enter my messages now it takes the message but chatbox stays empty, as if something clears it. How could I find out what causes this? I was thinking of some kind of debug method maybe who gives a reason why it isn't showing up... Again I hit my limits of knowledge or expierence I guess, so any help is greatly welcome
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
|
|