Your having enough of crackers, reverse engineers ? With LiteCode you can host your code remotely at a server where no cracker can touch it
Your source code will become even more private then ever with more protection and no source code obfuscation required

Features

  • Using the SSP protocol for having a scalable server and having the traffic Encrypted/Compressed http://ssp.codeplex.com/
  • Host your code where no cracker can ever touch it to get your software cracked
  • You don't need a lot of knowledge about networking how to send packets and such thats all being done in the background
  • Shared Classes is a new technique to remotely call methods in the client or server to make it easy for the end-user to understand what is going on in the code
  • Shared Classes
  • System classes (underconstruction) currently there is, Graphics, Cursor
  • Delegates (callback methods), Example is below
  • Supports Properties, overloaded methods
  • Call methods over the UDP Protocol using the Attribute "UdpMethod"
  • The NoWait attribute will not wait till the other side completed the method and does not wait till the packet is being sent
  • The PacketQueue attribute will use the PacketQueue from SSP, could increase performance

Underconstruction

  • "out" keyword
  • "param" keyword

Code example of a shared class - Server Sided

class TestClass : ITest
{
    private string Password;
    public TestClass()
    {
        this.Password = "VerySecretPassword";
    }

    [RemoteExecution]
    public string CallMe()
    {
        return "Hello World";
    }
}

A dummy class is being created in the background used to inject code but that's not important
Code is being injected in the dummy class so that you're able to call method's at the server/client side
The code from the server/client side will never leave or being sent to the server/client side
The most important part here is that the server contains all the sensitive information and the client does not
The injected code in the dummy class will only say to the server/client, call this method for me and if you can return the result
This way both sides can never inject each other with possible malicious code

Delegate example

1. You are at the server side and you call a method TestDelegate and you give your private method as delegate
2. When TestDelegate method is being called in client side the client is able to call the delegate which will go back to the server and call your private method

this way you can just call BeginInvoke methods which require a callback method or BeginSend/BeginReceive from the Socket class

Example code - Server Side:
    LiteServer server = new LiteServer(539);
    server.onClientConnect += (Client client) =>
    {
    ITest test = client.GetSharedClass<ITest>("test", typeof(TestClass));
    string ret = test.TestDelegate(":O", (string val) =>
    {
    return "some value...";
    });
    Console.WriteLine(ret);
    }

Example code - Client Side:
  [RemoteExecution]
  public string TestDelegate(string SomeValue, TestDel CallMe)
  {
    return "Value from server side: " + CallMe("some string from Client Side :)");
  }

output at server side:
Value from server side: some value...

I/O Example - Creating and Writing to a file

So this example will show you how to create a file at the remote machine and writing something to it
And then at the end we simply close the file

            LiteServer server = new LiteServer(539);
            server.onClientConnect += (Client client) =>
            {
                //create the FileStream
                IFileStream fs = client.GetSharedClass<IFileStream>(typeof(Lite_FileStream), "C:\\test.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
                //write some text to it
                fs.Write(ASCIIEncoding.ASCII.GetBytes("Well it works :)"), 0, 16);
                //close the file
                fs.Close();
            };

See how simple that was, just a few lines of code

Last edited Nov 21, 2012 at 1:37 AM by DragonHunter, version 25