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!

publicLaunch v1

Experienced Elementalist
Joined
Mar 23, 2009
Messages
239
Reaction score
17
publicLaunch is an idea I had today while I was bored.

Program.cs
Code:
/////////////////////////////////////////////////////////////////
// GunzDev.com -- New Gunz developing site! - HIRING CODERS -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// [2009-09-21] - OutLine for publicLaunch
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Developer: purpleCRAYON
// Language: C#
/////////////////////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;


namespace publicLaunch
{
    class Program
    {
        static void Main(string[] args)
        {
            string directorycheck = System.IO.Directory.GetCurrentDirectory();
            string properdirectory = @"C:\Documents and Settings\Dan\Desktop\publicLaunch\publicLaunch\bin\Debug"; // directory of your client
            if (directorycheck == properdirectory)
            {
                Console.WriteLine("Directory is correct.");
                Console.WriteLine("Coded by purpleCRAYON -- www.gunzdev.com");
                string s = "0";
                string answer = ""; // PUT CRC32 HERE [ALL OF THEM IN ORDER]
                int crc321 = 0;
                try
                {
                    crc321 = int.Parse(s);
                }
                catch (Exception err)
                {
                    Console.WriteLine(err.Message);
                }
                Console.WriteLine("Running Tests on your files checking for authenticity...");

                Crc32 crc32 = new Crc32();
                String hash = String.Empty;
                using (FileStream fs = File.Open("runnable.exe", FileMode.Open))
                    foreach (byte b in crc32.ComputeHash(fs)) hash += b.ToString("x2").ToLower();


                Crc32 crc322 = new Crc32();
                String hash2 = String.Empty;
                using (FileStream fs1 = File.Open("system.mrs", FileMode.Open))
                    foreach (byte b1 in crc322.ComputeHash(fs1)) hash2 += b1.ToString("x2").ToLower();


                Crc32 crc3222 = new Crc32();
                String hash3 = String.Empty;
                using (FileStream fs2 = File.Open(@"model/man.mrs", FileMode.Open))
                    foreach (byte b2 in crc3222.ComputeHash(fs2)) hash3 += b2.ToString("x2").ToLower();

                Crc32 crc32222 = new Crc32();
                String hash4 = String.Empty;
                using (FileStream fs3 = File.Open(@"model/woman.mrs", FileMode.Open))
                    foreach (byte b3 in crc3222.ComputeHash(fs3)) hash4 += b3.ToString("x2").ToLower();
                string x = (crc321.ToString() + hash + hash2 + hash3 + hash4);
                if (x == answer)
                {
                    System.Diagnostics.Process.Start("runnable.exe"); // RUNNABLE NAME HERE
                }
                else
                {
                    string runnable = ""; // CRC32 OF RUNNABLE
                    string system = ""; // CRC32 OF SYSTEM.MRS
                    string man = ""; // CRC32 OF MAN.MRS
                    string woman = ""; // CRC32 OF WOMAN.MRS
                    if (runnable == hash)
                    {
                        if (system == hash2)
                        {
                            if (man == hash3)
                            {
                                if (woman == hash4)
                                {
                                }
                                else
                                {
                                    Console.WriteLine("Updating Woman.mrs...");
                                    WebClient manDownload = new WebClient();
                                    manDownload.DownloadFileAsync(new Uri("site.com/woman.mrs"), @"model/woman.mrs"); // -UPLOAD WOMAN.MRS SOMEWHERE FOR DIRECT DOWNLOAD-
                                }
                            }
                            else
                            {
                                Console.WriteLine("Updating Man.mrs...");
                                WebClient manDownload = new WebClient();
                                manDownload.DownloadFileAsync(new Uri("site.com/man.mrs"), @"model/man.mrs"); // -UPLOAD MAN.MRS SOMEWHERE FOR DIRECT DOWNLOAD-
                            }
                        }
                        else
                        {
                            Console.WriteLine("Updating System.mrs...");
                            WebClient systemDownload = new WebClient();
                            systemDownload.DownloadFileAsync(new Uri("site.com/system.mrs"), @"system.mrs"); // -UPLOAD SYSTEM.MRS SOMEWHERE FOR DIRECT DOWNLOAD-
                    
                        }
                    }
                    else
                    {
                        Console.WriteLine("Updating Runnable.exe...");
                        WebClient runnableDownload = new WebClient();
                        runnableDownload.DownloadFileAsync(new Uri("site.com/runnable.exe"), @"runnable.exe"); // -UPLOAD RUNNABLE.EXE SOMEWHERE FOR DIRECT DOWNLOAD-
                    }

                }

                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("Please move this file to the proper directory:");
                Console.WriteLine(properdirectory);
                Console.ReadLine();
            }
        }
    }
}

// gunzdev.com
// purpleCRAYON

CRC32.cs
Code:
using System;
using System.Security.Cryptography;

public class Crc32 : HashAlgorithm
{
    public const UInt32 DefaultPolynomial = 0xedb88320;
    public const UInt32 DefaultSeed = 0xffffffff;

    private UInt32 hash;
    private UInt32 seed;
    private UInt32[] table;
    private static UInt32[] defaultTable;

    public Crc32()
    {
        table = InitializeTable(DefaultPolynomial);
        seed = DefaultSeed;
        Initialize();
    }

    public Crc32(UInt32 polynomial, UInt32 seed)
    {
        table = InitializeTable(polynomial);
        this.seed = seed;
        Initialize();
    }

    public override void Initialize()
    {
        hash = seed;
    }

    protected override void HashCore(byte[] buffer, int start, int length)
    {
        hash = CalculateHash(table, hash, buffer, start, length);
    }

    protected override byte[] HashFinal()
    {
        byte[] hashBuffer = UInt32ToBigEndianBytes(~hash);
        this.HashValue = hashBuffer;
        return hashBuffer;
    }

    public override int HashSize
    {
        get { return 32; }
    }

    public static UInt32 Compute(byte[] buffer)
    {
        return ~CalculateHash(InitializeTable(DefaultPolynomial), DefaultSeed, buffer, 0, buffer.Length);
    }

    public static UInt32 Compute(UInt32 seed, byte[] buffer)
    {
        return ~CalculateHash(InitializeTable(DefaultPolynomial), seed, buffer, 0, buffer.Length);
    }

    public static UInt32 Compute(UInt32 polynomial, UInt32 seed, byte[] buffer)
    {
        return ~CalculateHash(InitializeTable(polynomial), seed, buffer, 0, buffer.Length);
    }

    private static UInt32[] InitializeTable(UInt32 polynomial)
    {
        if (polynomial == DefaultPolynomial && defaultTable != null)
            return defaultTable;

        UInt32[] createTable = new UInt32[256];
        for (int i = 0; i < 256; i++)
        {
            UInt32 entry = (UInt32)i;
            for (int j = 0; j < 8; j++)
                if ((entry & 1) == 1)
                    entry = (entry >> 1) ^ polynomial;
                else
                    entry = entry >> 1;
            createTable[i] = entry;
        }

        if (polynomial == DefaultPolynomial)
            defaultTable = createTable;

        return createTable;
    }

    private static UInt32 CalculateHash(UInt32[] table, UInt32 seed, byte[] buffer, int start, int size)
    {
        UInt32 crc = seed;
        for (int i = start; i < size; i++)
            unchecked
            {
                crc = (crc >> 8) ^ table[buffer[i] ^ crc & 0xff];
            }
        return crc;
    }

    private byte[] UInt32ToBigEndianBytes(UInt32 x)
    {
        return new byte[] {
			(byte)((x >> 24) & 0xff),
			(byte)((x >> 16) & 0xff),
			(byte)((x >> 8) & 0xff),
			(byte)(x & 0xff)
		};
    }
}

Thank you article for the class for CRC32.

The V.I.P version is going to be coded later tonight/tonight most likely. It will be released in V.I.P section and will include:
- Backdoor AntiHack [Runs in backround] [Thanks Vengeance/Erby for idea. <3]
- Hidden from task manager. [Thank Zak for finding a snippet]
- More Custom Features!
- GUI Most Likely.


Thanks.

Download Project File:


Note: Exact copy paste from my site, some of it might not apply to you guys like VIP version.
 
Joined
Sep 10, 2007
Messages
970
Reaction score
815
Have fun:

Code:
using System;
using System.IO;
using System.Security.Cryptography;

namespace Envy
{
    class MD5Hash
    {
        public static string Calculate(string sFile)
        {
            if (!File.Exists(sFile))
                return "File Not Found";
            
            byte[] bFile = File.ReadAllBytes(sFile);
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] bOut = md5.ComputeHash(bFile);
            return BitConverter.ToString(bOut).Replace("-","").ToLower();
            
        }
    }
}
 
Experienced Elementalist
Joined
Mar 23, 2009
Messages
239
Reaction score
17
Have fun:

Code:
using System;
using System.IO;
using System.Security.Cryptography;

namespace Envy
{
    class MD5Hash
    {
        public static string Calculate(string sFile)
        {
            if (!File.Exists(sFile))
                return "File Not Found";
            
            byte[] bFile = File.ReadAllBytes(sFile);
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] bOut = md5.ComputeHash(bFile);
            return BitConverter.ToString(bOut).Replace("-","").ToLower();
            
        }
    }
}

*Fondles balls*
 
Experienced Elementalist
Joined
Jun 17, 2009
Messages
214
Reaction score
7
better then your face?

jk

thanks for releasing, kinda.....
 

Guy

Divine Celestial
Joined
Apr 4, 2009
Messages
898
Reaction score
157
Five minute job while I was waiting for laundry to dry. :O:

You keep siting "5 minute job", "5 minute job" - if it's a 5-minute job, then don't Ducking release it. A newbie's 5 minute job can be the equivalent of an experienced developers 30-second write-up.
 
Experienced Elementalist
Joined
Mar 23, 2009
Messages
239
Reaction score
17
You keep siting "5 minute job", "5 minute job" - if it's a 5-minute job, then don't Ducking release it. A newbie's 5 minute job can be the equivalent of an experienced developers 30-second write-up.

I released it because I wanted too, why must you cry over it? Once again, Vi complains that somebody else is trying to help people, he is criticizing my work and my attempts at helping new members.

You really need to be more mature.

Thanks.
:rolleyes:
 
Back
Top