As it's much easier for me to read ActionScript3 than ActionscriptByteCode (What you get from RABCDasm) I decided I'd decompile it to understand some of the functions i wanted to modify.
I had to remove the following files as the decompiler crashed on them, it took a bit of work finding them one at a time, making a list and then exporting everything else but those as AS3, but it's done.
How to use:
Browse to the files you'd like to see (It has the same structure as when disassembled by RABCDasm, but it looks much cleaner and is easier to understand) or Use AstroGrep to search through the folders for your findings.
Here's a preview of \client\Action\_-0Ph\UseBuyPotionCommand in AS3.
Virus Scans:
https://www.virustotal.com/en/file/d...is/1395456086/
https://virusscan.jotti.org/en/scanre...89133fc848a6f0
I think you would find FFDEC very useful. It allows you to export all of the Classes as .AS files just like you are doing now. It's quite a useful tool
While the as3 dump looks clearer, judging by the snip you gave most of the code is hogwash as the decompiler used doesn't account for the obfuscation in the client (which is why some classes will crash the decompiler). Just take a second to read the output and you'll realize that something isn't quite right.
Be careful, stray too far from the pack and you'll get lost.
(NaN +1) -1
Legit
It's not meant to be used to recompile AS3, it's meant to understand the structure of certain classes. I can't explain exactly what it's doing with NaN and i know it's a bit counter intuitive, but I've NEVER had the structure of a game be wrong before, and the reason I know that is because I make my own AoB memory edits for other flash games. First look at the structure for reference, then you have a much clearer idea of what part of the raw ABC you need to use/modify.
I can't easily understand the structure of several conditional statements just by looking at what RABCDasm shows me, but I can look at the AS3 interpretation and use it as a reference to know when an if statement finishes / starts etc. Maybe there's an easier way of doing it?
Code:public function UseBuyPotionCommand() { //27 _as3_pushfalse //26 _as3_pushtrue //2b _as3_swap //10 06 00 00 _as3_jump offset: 6 //c4 _as3_negate_i //28 _as3_pushnan //2b _as3_swap //1c _as3_pushwith //91 _as3_increment //c1 _as3_decrement_i //d5 _as3_setlocal <1> //d6 _as3_setlocal <2> //d0 _as3_getlocal <0> //30 _as3_pushscope //d2 _as3_getlocal <2> //12 12 00 00 _as3_iffalse offset: 18 //d0 _as3_getlocal <0> //60 ac 03 _as3_getlex _-gA::_-pa //66 a2 03 _as3_getproperty _-1JU //68 ec 60 _as3_initproperty *::_-0G4 //d1 _as3_getlocal <1> //11 03 00 00 _as3_iftrue offset: 3 //d0 _as3_getlocal <0> //49 00 _as3_constructsuper (param count:0) //47 _as3_returnvoid }// end function0x28 is the actionscript bytecode for pushnan, and the full function in actionscript bytecode can be found by searching the memory for it once the game is loaded. I had to double check, because I'm not seeing what's not quite right with it.Code:27 26 2b 10 06 00 00 c4 28 2b 1c 91 c1 d5 d6 d0 30 d2 12 12 00 00 d0 60 ac 03 66 a2 03 68 ec 60 d1 11 03 00 00 d0 49 00 47
https://www.anotherbigide*****m/javasw...tructions.html
Edit 2: I'm a bit lost now. I looked at the function through AS3 Sorcerer and it looks like this;
How can it be so accurate for ABC, and show the structure used in ABC, but not really showing the AS3. I haven't slept in 24 hours, so maybe I'm confusing myself, but I'm not getting how the AoB is right, and yet, now I KNOW you were right Nilly. lol
Last edited by fuzzayboy; 03-22-2014 at 09:03 AM. Reason: Added ABC and AoB for the whole function.