ResExtractor - Quickly update your xml resources
This was a quick project i made today, it started as an attempt to find out if i could decompile swf files with C#. I managed to find a library called SwfDotNet and it got my hopes up, but after looking through the library source (and seeing it hasnt been updated in years) i found out it wasnt designed for swf's over version 9 (rotmg is version 15). I wasnt able to find any other libraries online that could do what i wanted, so i decided to just cut my losses and make a resource extractor using SwfDotNet library.
This program has a few differences from the previously released PZUpdater by pixelzerg. PZUpdater relies 100% on RABCDasm and runs the client through both rabcdasm's "abcextractor" and "rabcdasm". I was able to add some quick modifications to the SwfDotNet library that allowed me to extract the Objects.xml and Tiles.xml in less then 5 seconds without relying on rabcdasm. But to extract the packets.xml i do have to reply on just the rabcdasm.exe program (since SwfDotNet is outdated). The results are, as far as i can tell, slightly faster when extracting all resources, and much much much faster when only extracting the objects and tiles resources.
To use the program:
1st - Either drag and drop the client swf onto ResExtractor OR open ResExtractor and type in the full path to the client swf
2nd - The program will ask if you want to extract all the resources or just the objects and tiles. Press "1" or "2", then hit Enter.
3rd - wait for the program to finish. It will close automatically when it is done and you should see the xml resources in the same directory as ResExtractor.
Note: you do not need to have rabcdasm on your computer to use this program. If you choose option 1 to extract all resources, the program will check if the rabcdasm program exists in the same directory and if it doesnt it will create it from a resource in its memory.
Scans:
https://virusscan.jotti.org/en-US/fi...job/nadn6p0uhf
https://www.virustotal.com/en/file/a...is/1484327254/
If there are any errors let me know and ill see what i can do to fix it, but im not planning to spend any more time on this project unless absolutely necessary. If you want to play with the source at all then you can download the source.zip and see how it was made. I didnt include the source of the SwfDotNet library that i edited (just the dll) because the project folder was 40mb+ for some reason.
source.zip Scans:
https://virusscan.jotti.org/en-US/fi...job/v6r7w7dyef
https://www.virustotal.com/en/file/1...is/1483763056/
Ive created an updated version of this due to an issue i found. It looks like the GroundTypes (tiles.xml) are now spread out across multiple files just like the objects.xml. Back when i created this, there was only 1 GroundTypes file in the client, so it would just grab the first one it found and call tiles.xml good. But ive been noticing that the last few clients ive extracted from that there were missing tile types in the tiles.xml.
The new version extracts the GroundTypes (tiles.xml) just like it does for the objects.xml. I tested it out and found my tiles.xml file was ~1000 line larger.
So run this the same way as always, nothing new about anything else. The only change is it now grabs all of the GroundTypes it finds.
Scans:
https://www.virustotal.com/en/file/f...is/1492633022/
https://virusscan.jotti.org/en-US/fi...job/nns4s5pjuk
@059 @Ahl can you add this to the first post and remove the older downloads so only this attachment can be downloaded? Thanks!
This program has a few differences from the previously released PZUpdater by pixelzerg. PZUpdater relies 100% on RABCDasm and runs the client through both rabcdasm's "abcextractor" and "rabcdasm". I was able to add some quick modifications to the SwfDotNet library that allowed me to extract the Objects.xml and Tiles.xml in less then 5 seconds without relying on rabcdasm. But to extract the packets.xml i do have to reply on just the rabcdasm.exe program (since SwfDotNet is outdated). The results are, as far as i can tell, slightly faster when extracting all resources, and much much much faster when only extracting the objects and tiles resources.
To use the program:
1st - Either drag and drop the client swf onto ResExtractor OR open ResExtractor and type in the full path to the client swf
2nd - The program will ask if you want to extract all the resources or just the objects and tiles. Press "1" or "2", then hit Enter.
3rd - wait for the program to finish. It will close automatically when it is done and you should see the xml resources in the same directory as ResExtractor.
Note: you do not need to have rabcdasm on your computer to use this program. If you choose option 1 to extract all resources, the program will check if the rabcdasm program exists in the same directory and if it doesnt it will create it from a resource in its memory.
Scans:
https://virusscan.jotti.org/en-US/fi...job/nadn6p0uhf
https://www.virustotal.com/en/file/a...is/1484327254/
If there are any errors let me know and ill see what i can do to fix it, but im not planning to spend any more time on this project unless absolutely necessary. If you want to play with the source at all then you can download the source.zip and see how it was made. I didnt include the source of the SwfDotNet library that i edited (just the dll) because the project folder was 40mb+ for some reason.
source.zip Scans:
https://virusscan.jotti.org/en-US/fi...job/v6r7w7dyef
https://www.virustotal.com/en/file/1...is/1483763056/
Ive created an updated version of this due to an issue i found. It looks like the GroundTypes (tiles.xml) are now spread out across multiple files just like the objects.xml. Back when i created this, there was only 1 GroundTypes file in the client, so it would just grab the first one it found and call tiles.xml good. But ive been noticing that the last few clients ive extracted from that there were missing tile types in the tiles.xml.
The new version extracts the GroundTypes (tiles.xml) just like it does for the objects.xml. I tested it out and found my tiles.xml file was ~1000 line larger.
So run this the same way as always, nothing new about anything else. The only change is it now grabs all of the GroundTypes it finds.
Scans:
https://www.virustotal.com/en/file/f...is/1492633022/
https://virusscan.jotti.org/en-US/fi...job/nns4s5pjuk
@059 @Ahl can you add this to the first post and remove the older downloads so only this attachment can be downloaded? Thanks!



