Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Flash sockets

Skilled Illusionist
Joined
Apr 6, 2007
Messages
384
Reaction score
2
OK. This will be fun.

I am currently botting/proxying/(whatever you want to call it) a flash game and for the past few weeks have been searching for methods of decoding the packets. I've come across plenty of AMF/RTMP/etc apps that claim to be able to process flash communication. Unfortunately to make use of them would require gutting those apps just to get the useful code. So far... not so successful.

On to the question!

Does anyone have extensive flash socket communication knowledge, a c++ library for processing AMF0+3, any other language library that'd work with c++, or any information that might help me develop my own (aside from giving a link to an already made one that I'd have to gut).

I've searched for c++ libs/code everywhere but all I seem to find are old ones that no longer exist or apps that would require a lot of effort to put to use.


I have managed to set my proxy to route the data to a ghetto flash app I made and have it return the values into something I can read, but that's slow, inefficient, and not conducive to my plans. Reason being I have about 500mb of data to process at any given time that is in AMF format and having flash decode and send back just isn't fast enough.

Any help would be appreciated.
 
Last edited:
Joined
Jun 8, 2007
Messages
1,985
Reaction score
490
500mb? Is it just me or does that sound like a huge transfer? In web terms it's enormous! Maybe simple it down and flash won't be so slow with it.. It should be more like 500kb.....
 
Skilled Illusionist
Joined
Apr 6, 2007
Messages
384
Reaction score
2
500mb? Is it just me or does that sound like a huge transfer? In web terms it's enormous! Maybe simple it down and flash won't be so slow with it.. It should be more like 500kb.....

Ok I'll explain what I'm doing to the point. If you've ever heard of the game Evony, (wow what a scam) it's flash.

There's a really ghetto/cheap site evonydata.com that (not sure how they get their data) stores infrequently updated (limited) server data. My plans are to beat them out and have a better system. Right now I'm sitting on top of 500mb of raw server data of every server.. but limited methods to process it. My little flash app doesn't cut it and I don't think php would be the ideal method either. I'm looking to extend it to allow on demand server updating like right now I can call the proxybot to update any server and it'll dump that server's info within 30mins to an hour based on which server. I'd prefer to be able to process it on the spot instead of having to save it like I do now.

My last method was as I received the data I dumped it to the flash app that returned it back. Made grabbing data take about 5 hours per server as opposed to the 30m-1h it takes now. I'm able to grab data from an unlimited amount of servers at a time (allowing me to get updates for each one multiple times daily) but need a way to keep up in processing :(
 
Joined
Jun 8, 2007
Messages
1,985
Reaction score
490
30m-1h isn't that long for transferring 500mb of data between servers via the internet. All I can suggest is making the update packages smaller. For an installation package, or a completely revised version, I can almost see images and that adding up to 500mb. If you're transferring a bunch of files that are already on the both servers, then there's no point. What is the data in the packets for, anyway?
 
Last edited:
Skilled Illusionist
Joined
Apr 6, 2007
Messages
384
Reaction score
2
It's not installation packages or anything lol. The bot is recording map data as in coordinates of everything in game. I'd like this setup to be able to have live updating, but to do so I need a way to process them.

---------- Post added at 06:26 AM ---------- Previous post was at 05:42 AM ----------

So I searched through some of the older projects I found online and took a closer look at one of the C# ones. Apparently it had a secret project I didn't notice and has a command line parser for single packets (which works on my stuff). So if I can do what I need with this, then I'll be fine. But now I've hit another roadblock.. C# :(
 
Skilled Illusionist
Joined
Apr 6, 2007
Messages
384
Reaction score
2
And it is done. I just made my proxy managed and used MC++ to load the C# lib and parse it through there. Kinda messy, but at least it works. Simpler than I thought it'd be too.

Code:
	MemoryStream^ memStream = gcnew MemoryStream( 30000 );
	array<unsigned char> ^ packet = gcnew array<unsigned char>(30000);
	converttonet(packet, (uchar*)buff, size);
	memStream->Write(packet, 0, size);

	memStream->Seek(0, SeekOrigin::Begin);
	Amf3Parser ^ parser = gcnew Amf3Parser(memStream);
	Amf3Object ^ obj = (Amf3Object^)parser->ReadNextObject();
	
	Console::WriteLine(obj["cmd"]);
 
Initiate Mage
Joined
Dec 29, 2009
Messages
1
Reaction score
0
You could take a look to this project:

 
Skilled Illusionist
Joined
Apr 6, 2007
Messages
384
Reaction score
2
You could take a look to this project:


Already have. I tried to implement it but like almost every other project, it isn't something you can just "include" and it works unless I missed something.

I got the C# lib working with my c++ though. Managed C++ is kinda fun only because it's something new and interacting with C# dlls opens some possibilities, but it's so terribly messy and I'm not very used to it so I don't think I'll be making a habit of using MC++ lol.

For anyone curious about doing something similar, I actually used to do this.
 
Back
Top