First off I'd like to thank Hybird, Andy and tao4229 for helping me along the way with any questions I asked. Also a big thanks to Korvacs' [Only registered and activated users can see links. Click Here To Register...] which has helped in a number of ways.
Anyway to my main point, ever since jProxy was shutdown I've been working (lazily) on my own proxy with the goal of creating something like jProxy which includes an API for anyone to be able to create plugins, in addition to all packet structures saved in separate library for the purpose of it being editable by any person so it would work on private servers too rather than just tq's own servers. Currently I'm done with most of the main code and API, both in C#, but I'm planning to re-write the main thing in native code. I also apologize for the uncreative name :p
That's it for now and stay tuned for more updates.
First Video Update:
Removed cause it sucks so bad
Second Video Update:
Third Video Update:
So all plugins are going to be class libraries obviously, so here's how it's gonna work.
In your main class in the project you must have a "Main" public static void method, no arguments at all, that will be the method called once the plugin is loaded, it should be something like
Then we have two optional methods, ClientToServer and ServerToClient, these also have to public static bools and should contain two arguments, an IntPtr and a byte array, these two methods will basically be called every time a packet is sent or received, the IntPtr is a pointer to the native client instance and is useless for now until I finish the API, and the methods should look like this
Same with ServerToClient, another thing I forgot to mention, return true to let the packet pass through and false to block it from being sent.
Also another thing you should do in the Main method is that you make sure it does not contain blocking code or else it will block the rest of the plugins from loading and the rest of the native code from running. Compile the project and copy the DLL to the gProxy directory.
Adding the plugin is easy, open up Plugins.xml in any text editor and under the gPacketLogger plugin add another one identical to it, set the name whatever the you want, set the File to the name of the file and Class set it as your library's Namespace.Class
so if your library looks something like this
your Plugins.xml should look something like
Sign up page is up, sign up here [Only registered and activated users can see links. Click Here To Register...] and all approved testers should PM me their usernames so I can set them as authorized to use the proxy.
BEFORE YOU SIGNUP READ WHATS BELOW
Anyway to my main point, ever since jProxy was shutdown I've been working (lazily) on my own proxy with the goal of creating something like jProxy which includes an API for anyone to be able to create plugins, in addition to all packet structures saved in separate library for the purpose of it being editable by any person so it would work on private servers too rather than just tq's own servers. Currently I'm done with most of the main code and API, both in C#, but I'm planning to re-write the main thing in native code. I also apologize for the uncreative name :p
That's it for now and stay tuned for more updates.
First Video Update:
Removed cause it sucks so bad
Second Video Update:
|
|
Third Video Update:
|
|
Plugin Developing:Quote:
So I decided to work a little during my finals and now I'm done with sending over packets from the native proxy to the .NET plugin manager,tomorrow if I got time after I'm done studying, I'll work on the plugin manager so it can load plugins and send packets to them. After that, I'll create my authentication server so I can send it over to some developers.(All of that is done)
Any C#/VB.NET developer with some knowledge about conquer packets (basically can make use of packets) interested in trying this out can post in this thread.
So all plugins are going to be class libraries obviously, so here's how it's gonna work.
In your main class in the project you must have a "Main" public static void method, no arguments at all, that will be the method called once the plugin is loaded, it should be something like
Code:
public static void Main()
{
MessageBox.Show("Plugin Loaded!");
}
Code:
public static bool ClientToServer(IntPtr ClientInstance, byte[] Packet)
{
ushort Type = BitConverter.ToUInt16(Packet, 2);
MessageBox.Show("Packet sent from client " + ClientInstance + " to server, type " + Type);
return true;
}
Also another thing you should do in the Main method is that you make sure it does not contain blocking code or else it will block the rest of the plugins from loading and the rest of the native code from running. Compile the project and copy the DLL to the gProxy directory.
Adding the plugin is easy, open up Plugins.xml in any text editor and under the gPacketLogger plugin add another one identical to it, set the name whatever the you want, set the File to the name of the file and Class set it as your library's Namespace.Class
so if your library looks something like this
Code:
namespace Gabrola
{
class Aimbot
{
public static void Main(){ .... }
}
}
Code:
<?xml version="1.0" encoding="utf-8" ?>
<Plugins>
<Plugin Name="PacketLogger">
<File>gPacketLogger.dll</File>
<Class>gPacketLogger.PacketLogger</Class>
</Plugin>
<Plugin Name="Aimbot">
<File>gAimBot.dll</File>
<Class>Gabrola.Aimbot</Class>
</Plugin>
</Plugins>
BEFORE YOU SIGNUP READ WHATS BELOW
Quote:
This testing stage is for .NET developers only with knowledge in conquer packets, please do not PM me about this anymore.
If you are willing to test this (which means testing out the plugins system and create your own plugins), create an account and PM me on elitepvpers so I can also invite you to our discussion group.
Gabrola.