|
You last visited: Today at 15:26
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.
02/25/2013, 15:44
|
#1
|
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 ...
|
|
|
02/25/2013, 16:21
|
#2
|
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
|
|
|
02/25/2013, 16:41
|
#3
|
elite*gold: 0
Join Date: Aug 2007
Posts: 1,525
Received Thanks: 230
|
Awesome
|
|
|
02/26/2013, 03:12
|
#4
|
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.
|
|
|
02/26/2013, 14:01
|
#5
|
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.
|
|
|
02/26/2013, 20:11
|
#6
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
Quote:
Originally Posted by abdoumatrix
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 ...
|
|
|
02/26/2013, 21:11
|
#7
|
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.
|
|
|
02/26/2013, 21:14
|
#8
|
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
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
|
|
|
02/26/2013, 21:34
|
#9
|
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.
|
|
|
02/26/2013, 21:42
|
#10
|
elite*gold: 0
Join Date: Mar 2010
Posts: 475
Received Thanks: 15
|
Quote:
Originally Posted by Super Aids
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();
}
}
|
|
|
02/26/2013, 22:18
|
#11
|
elite*gold: 0
Join Date: Jul 2008
Posts: 874
Received Thanks: 239
|
Quote:
Originally Posted by abdeen
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
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
|
|
|
02/26/2013, 22:38
|
#12
|
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
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.
|
|
|
02/26/2013, 22:55
|
#13
|
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?
|
|
|
02/27/2013, 00:07
|
#14
|
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 ?
|
|
|
02/27/2013, 14:59
|
#15
|
elite*gold: 0
Join Date: Jul 2008
Posts: 874
Received Thanks: 239
|
Quote:
Originally Posted by Super Aids
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
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
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
|
|
|
 |
|
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.
|
|