Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Conquer Online 2 > CO2 Private Server
You last visited: Today at 15:26

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



creating a new Conquer loader [ Any version ] using C#

Discussion on creating a new Conquer loader [ Any version ] using C# within the CO2 Private Server forum part of the Conquer Online 2 category.

Reply
 
Old   #1
 
abdeen's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
creating a new Conquer loader [ Any version ] using C#

Hello Elitepvpers members

i am Requesting a simple guide of creating a new Conquer loader [ Any version ] using C#

or just showing me the begin point what i`ll need to make the loader ... and if there a simple or something like that ..

thanks anyway ...
abdeen is offline  
Thanks
1 User
Old 02/25/2013, 16:21   #2
 
abdoumatrix's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 874
Received Thanks: 239
try geting source code by decypting any loader u have with reflector


and study its code and know how to one

that 's what i do to do mine
abdoumatrix is offline  
Thanks
2 Users
Old 02/25/2013, 16:41   #3
 
shadowman123's Avatar
 
elite*gold: 0
Join Date: Aug 2007
Posts: 1,525
Received Thanks: 230
Awesome
shadowman123 is offline  
Thanks
1 User
Old 02/26/2013, 03:12   #4
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
Too bad the reflector won't work if he referres to ConquerloaderV5, because it's not in .NET, but seriously just look up the Process class.
Super Aids is offline  
Thanks
1 User
Old 02/26/2013, 14:01   #5
 
_DreadNought_'s Avatar
 
elite*gold: 28
Join Date: Jun 2010
Posts: 2,226
Received Thanks: 868
ConquerLoaderV5 isn't .net because for most it's easier to hook the connect function in C++.

Personally, I've done it in both and they're just as easy as eachother.
_DreadNought_ is offline  
Thanks
2 Users
Old 02/26/2013, 20:11   #6
 
abdeen's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
Quote:
Originally Posted by abdoumatrix View Post
try geting source code by decypting any loader u have with reflector


and study its code and know how to one

that 's what i do to do mine

thanks guys ... i will take a look into this ...

I've tried .net Reflector with my loader and i got this message ...

Code:
'C:\Conquer Online 2.0\CoLoader.exe' is not a .NET module.
so i want i .net loader ...
abdeen is offline  
Old 02/26/2013, 21:11   #7
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
The loader was made in .NET obviously. Instead of trying to steal others sources to make your own, why not learn how to actual program and then do one yourself?

Everything you need as resources is already out there, even the hooking.
Super Aids is offline  
Thanks
1 User
Old 02/26/2013, 21:14   #8
 
abdeen's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
here is a pic from my server using my first Loader

how i can fix this ?



Quote:
Originally Posted by Super Aids View Post
The loader was made in .NET obviously. Instead of trying to steal others sources to make your own, why not learn how to actual program and then do one yourself?

Everything you need as resources is already out there, even the hooking.
i am not stealing i am just learning how i can do this ... and i`ve done with errors
abdeen is offline  
Old 02/26/2013, 21:34   #9
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
I don't think that's a loader problem, but a problem with your packets.
Super Aids is offline  
Thanks
1 User
Old 02/26/2013, 21:42   #10
 
abdeen's Avatar
 
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
Quote:
Originally Posted by Super Aids View Post
I don't think that's a loader problem, but a problem with your packets.

here is .cs files which i am using for the loader ...

HTML Code:
public static class WINAPI
    {
        // Methods
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern int CloseHandle(IntPtr hObject);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttribute, IntPtr dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr GetModuleHandle(string lpModuleName);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr OpenProcess(uint dwDesiredAccess, int bInheritHandle, uint dwProcessId);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint flAllocationType, uint flProtect);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern int WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, out IntPtr lpNumberOfBytesWritten);

        // Nested Types
        public static class VAE_Enums
        {
            // Nested Types
            public enum AllocationType
            {
                MEM_COMMIT = 0x1000,
                MEM_RESERVE = 0x2000,
                MEM_RESET = 0x80000
            }

            public enum ProtectionConstants
            {
                PAGE_EXECUTE = 0x10,
                PAGE_EXECUTE_READ = 0x20,
                PAGE_EXECUTE_READWRITE = 0x40,
                PAGE_EXECUTE_WRITECOPY = 0x80,
                PAGE_NOACCESS = 1
            }
        }
    }

HTML Code:
public static class donttryitathomeion
    {
        // Methods
        //private static byte[] CalcBytes(string sToConvert);
        //private static bool CRT(Process pToBedonttryitathomeed, string sDllPath, out string sError, out IntPtr hwnd);
        //public static bool donttryitathome(Process pToBedonttryitathomeed, string sDllPath, out string sError);
        private static byte[] CalcBytes(string sToConvert)
        {
            return Encoding.ASCII.GetBytes(sToConvert);
        }

        private static bool CRT(Process pToBedonttryitathomeed, string sDllPath, out string sError, out IntPtr hwnd)
        {
            sError = string.Empty;
            IntPtr hProcess = WINAPI.OpenProcess(0x43a, 1, (uint)pToBedonttryitathomeed.Id);
            hwnd = hProcess;
            if (hProcess == IntPtr.Zero)
            {
                sError = "Unable to attatch to process.\n";
                sError = sError + "Error code: " + Marshal.GetLastWin32Error();
                return false;
            }
            IntPtr procAddress = WINAPI.GetProcAddress(WINAPI.GetModuleHandle("kernel32.dll"), "LoadLibraryA");
            if (procAddress == IntPtr.Zero)
            {
                sError = "Unable to find address of \"LoadLibraryA\".\n";
                sError = sError + "Error code: " + Marshal.GetLastWin32Error();
                return false;
            }
            IntPtr lpBaseAddress = WINAPI.VirtualAllocEx(hProcess, IntPtr.Zero, (IntPtr)sDllPath.Length, 0x3000, 0x40);
            if ((lpBaseAddress == IntPtr.Zero) && (lpBaseAddress == IntPtr.Zero))
            {
                sError = "Unable to allocate memory to target process.\n";
                sError = sError + "Error code: " + Marshal.GetLastWin32Error();
                return false;
            }
            byte[] buffer = CalcBytes(sDllPath);
            IntPtr zero = IntPtr.Zero;
            WINAPI.WriteProcessMemory(hProcess, lpBaseAddress, buffer, (uint)buffer.Length, out zero);
            if (Marshal.GetLastWin32Error() != 0)
            {
                sError = "Unable to write memory to process.";
                sError = sError + "Error code: " + Marshal.GetLastWin32Error();
                return false;
            }
            if (WINAPI.CreateRemoteThread(hProcess, IntPtr.Zero, IntPtr.Zero, procAddress, lpBaseAddress, 0, IntPtr.Zero) == IntPtr.Zero)
            {
                sError = "Unable to load dll into memory.";
                sError = sError + "Error code: " + Marshal.GetLastWin32Error();
                return false;
            }
            return true;
        }
        public static bool donttryitathome(Process pToBedonttryitathomeed, string sDllPath, out string sError)
        {
            IntPtr zero = IntPtr.Zero;
            if (!CRT(pToBedonttryitathomeed, sDllPath, out sError, out zero))
            {
                if (zero != IntPtr.Zero)
                {
                    WINAPI.CloseHandle(zero);
                }
                return false;
            }
            int num = Marshal.GetLastWin32Error();
            return true;
        }



        // Nested Types
        private static class WINAPI
        {
            // Methods
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern int CloseHandle(IntPtr hObject);
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttribute, IntPtr dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern IntPtr GetModuleHandle(string lpModuleName);
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern IntPtr OpenProcess(uint dwDesiredAccess, int bInheritHandle, uint dwProcessId);
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, IntPtr dwSize, uint flAllocationType, uint flProtect);
            [DllImport("kernel32.dll", SetLastError = true)]
            public static extern int WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] buffer, uint size, out IntPtr lpNumberOfBytesWritten);

            // Nested Types
            public static class VAE_Enums
            {
                // Nested Types
                public enum AllocationType
                {
                    MEM_COMMIT = 0x1000,
                    MEM_RESERVE = 0x2000,
                    MEM_RESET = 0x80000
                }

                public enum ProtectionConstants
                {
                    PAGE_EXECUTE = 0x10,
                    PAGE_EXECUTE_READ = 0x20,
                    PAGE_EXECUTE_READWRITE = 0x40,
                    PAGE_EXECUTE_WRITECOPY = 0x80,
                    PAGE_NOACCESS = 1
                }
            }
        }
    }

HTML Code:
    internal static class Program
    {
        // Methods
        [STAThread]
        private static void Main()
        {
            Process pToBedonttryitathomeed = Process.Start("Conquer.exe", " BLACKNULL");
            string sError = "";
            int num = 0;
            bool flag = true;
            do
            {
                num++;
                if (num == 20)
                {
                    break;
                }
                flag = donttryitathomeion.donttryitathome(pToBedonttryitathomeed, "LoaderHook", out sError);
                Thread.Sleep(0x3e8);
            }
            while (!flag && sError.Contains("126"));
            if (!flag)
            {
                MessageBox.Show(sError);
            }
            Application.Exit();
        }
    }
abdeen is offline  
Old 02/26/2013, 22:18   #11
 
abdoumatrix's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 874
Received Thanks: 239
Quote:
Originally Posted by abdeen View Post
here is a pic from my server using my first Loader

how i can fix this ?





i am not stealing i am just learning how i can do this ... and i`ve done with errors
this is 5672+ patch right?
use conquerloader injector better it solve thos problem

Quote:
Originally Posted by Super Aids View Post
The loader was made in .NET obviously. Instead of trying to steal others sources to make your own, why not learn how to actual program and then do one yourself?

Everything you need as resources is already out there, even the hooking.
using reflector isn't bad ,it help me alot in understanding how it work

then i try to make mine and if i failed i just change the copyrights
abdoumatrix is offline  
Old 02/26/2013, 22:38   #12
 
Super Aids's Avatar
 
elite*gold: 0
Join Date: Dec 2012
Posts: 1,761
Received Thanks: 950
And a correction to my post. I meant "Wasn't".

Quote:
Originally Posted by abdoumatrix View Post
this is 5672+ patch right?
use conquerloader injector better it solve thos problem



using reflector isn't bad ,it help me alot in understanding how it work

then i try to make mine and if i failed i just change the copyrights
Made me dislike you.
Super Aids is offline  
Thanks
3 Users
Old 02/26/2013, 22:55   #13
 
Lateralus's Avatar
 
elite*gold: 0
Join Date: May 2005
Posts: 1,892
Received Thanks: 920
Sorry, I believe it's the other way around for 99% of the community. First step is to change the copyrights/steal others' work and claim as yours, if that fails, beg someone for it, if that fails, beg someone to crack it for you, if that fails, beg someone to do it for you, if that fails, give up or attempt it and give up later because you didn't learn the basics. Gnome saiyan?
Lateralus is offline  
Thanks
5 Users
Old 02/27/2013, 00:07   #14
 
shadowman123's Avatar
 
elite*gold: 0
Join Date: Aug 2007
Posts: 1,525
Received Thanks: 230
thats Right ... we shouldnt give ourselves copyright of things that we havent done if so thats called theft

@abdomatrix what conquerinjector do u use ?
shadowman123 is offline  
Old 02/27/2013, 14:59   #15
 
abdoumatrix's Avatar
 
elite*gold: 0
Join Date: Jul 2008
Posts: 874
Received Thanks: 239
Quote:
Originally Posted by Super Aids View Post
And a correction to my post. I meant "Wasn't".



Made me dislike you.
PHP Code:
   The Following 2 Users Say Thank You to Super Aids For This Useful Post:       
shadowman123 (Today), |xabi| (Yesterday
One dislike me and 2 thanks him for that

i mean that not every one use reflector to just change the copyrights

don't dislike me please.

but sometimes people do like he say
Quote:
Originally Posted by Lateralus View Post
Sorry, I believe it's the other way around for 99% of the community. First step is to change the copyrights/steal others' work and claim as yours, if that fails, beg someone for it, if that fails, beg someone to crack it for you, if that fails, beg someone to do it for you, if that fails, give up or attempt it and give up later because you didn't learn the basics. Gnome saiyan?
100% True

Quote:
Originally Posted by shadowman123 View Post
thats Right ... we shouldnt give ourselves copyright of things that we havent done if so thats called theft

@abdomatrix what conquerinjector do u use ?
Ahmed Zero 's One

that is the one that i tried to figure out how it work
and tried first to copy the same codes and tries to add more freatures in it
abdoumatrix is offline  
Reply


Similar Threads Similar Threads
[Guide] Creating a Simple Loader with Injected DLL for Silkroad
02/02/2016 - SRO Coding Corner - 37 Replies
This next article in my series is a very important one for anyone wanting to get started with client modifications or understanding the client itself. This is the base article that will be used for all my future articles that explain various Silkroad development concepts. Like my previous article, there is nothing terribly exciting with this one as we have to get through the necessary boring stuff first before we can have any real fun. Unfortunately, this article is very heavy text wise and...
Creating Unprotected Conquer exes to use with Binary servers.
07/17/2013 - CO2 Guides & Templates - 16 Replies
Here are a list of Blowfish Keys that are current for some binary servers. along with any other modifications to the exe. Step1. Grab yourself a unprotected 5065 or 5095 Conquer.exe Step2. Update the blowfish key in the exe with a hex editor. With one of the following. ClientPrefix=TQClient
Understanding the loader Conquer Loader 5.2?
10/17/2011 - CO2 Programming - 14 Replies
I wonder how the Conquer loader 5.2 works? he add in the IP Conquer.exe? if possible I wanted to know how! I used OllyDbg in Conquer.exe addreses and looked for but not found anything interesting
[Request] A GOOD guide on creating a 5065/5095 private conquer server
02/04/2010 - CO2 Private Server - 3 Replies
Firstly, I want to create my own Conquer Online private server. I am asking for a good guide that any of you know of. Secondly, After searching through about 3 forums without finding a single helpful guide for around 4 hours.. I am starting to get a bit pissed off. Going through page, after page, after page to find endless requests on topics that I don't care about. Then when you finally come to a guide the links are dead or it is very difficult to understand and not in English on another...



All times are GMT +1. The time now is 15:27.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.