ابو حمزه9
2020-02-28, 06:24 AM
بسم الله الرحمن الرحيم
طبعاً هاشكر
محمد حسين او محمد الساحر
لانو هو السبب في اننا نوصل
لسورس دة أساساً
وبحتي على الهابيدة اللى بعتو
السورس متفيرس وقالو دي النسخة
الاصلية وشوية هبد كدة مش مفهوم
:harhar1:
هنعمل كلاس جديد
ونسمية
Protaction.cs
وترزع فية دة وانت مستريح ذي الخواجة :D
using C_Socket;
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace AntiHack
{
public class Socket
{
public void init()
{
SocketEvents sockEvents = new SocketEvents();
sockEvents.OnConnection = new ConnectionEvent(Handle_Connection);
sockEvents.OnDisconnection = new ConnectionEvent(Handle_Disconnection);
sockEvents.OnReceive = new BufferEvent(Handle_Receive);
Server server = new Server(sockEvents);
int port = 6319;
server.Start("127.0.0.1", port);
Console.WriteLine("Protection start on port " + port);
System.Threading.Thread t = new System.Threading.Thread(() =>
{
while (true)
{
if (clients.Count > 0)
{
foreach (var sClient in clients)
{
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicEffect.ini:3d8b9b5a1a0fbd4cd22a2b594869c0afa4 327564" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicType.dat:811589835cb818375eb024283348d6df5189 9917" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:Env_DX8/Conquer.exe:8d733130a6f15a3331e9cda7a6d31025bffd88 7f" + "<eof>"));
}
}
System.Threading.Thread.Sleep(15000);
}
});
t.Start();
}
public static List<Client> clients = new List<Client>();
private bool Handle_Receive(Client sClient, int Size, byte[] Packet)
{
string mess = Encoding.Default.GetString(Packet);
var data = mess.Split(':');
if (data.Length < 2)
{
sClient.Disconnect();
}
switch (data[0].ToUpper())
{
case "OK":
{
var uid = uint.Parse(data[1]);
if (uid == 0)
return true;
if (COServer.Kernel.GamePool.ContainsKey(uid))
{
var client = COServer.Kernel.GamePool[uid];
client.LastClientOK = DateTime.Now;
sClient.Send(ASCIIEncoding.Default.GetBytes("OK:ON" + "<eof>"));
}
else
{
sClient.Send(ASCIIEncoding.Default.GetBytes("OK:OFF" + "<eof>"));
}
break;
}
case "FILE":
{
var Name = data[1];
sClient.HackerPlayer = true;
sClient.HackName = " using File " + Name;
Console.WriteLine("Found a FILE :" + sClient.HackName);
sClient.Send(ASCIIEncoding.Default.GetBytes("KILL:OFF" + "<eof>"));
break;
}
case "PROG":
{
var Name = data[1];
if (Name == "officeclicktorun.exe") return false;
else
{
sClient.HackerPlayer = true;
sClient.HackName = " using Program " + Name;
//Console.WriteLine("found a PROG :" + sClient.HackName);
}
break;
}
case "TIT":
{
sClient.HackerPlayer = true;
var Name = data[1];
sClient.HackName = " using Program " + Name;
//Console.WriteLine("found a TIT :" + sClient.HackName);
break;
}
case "SP":
{
sClient.HackerPlayer = true;
sClient.HackName = " using Speed Hack";
//Console.WriteLine("found a SP :" + sClient.HackName);
sClient.Send(ASCIIEncoding.Default.GetBytes("KILL:OFF" + "<eof>"));
break;
}
case "CL":
{
sClient.HackerPlayer = true;
sClient.HackName = " using Clicker";
//Console.WriteLine("found a clicker :" + sClient.HackName);
sClient.Send(ASCIIEncoding.Default.GetBytes("KILL:OFF" + "<eof>"));
break;
}
}
return true;
}
private bool Handle_Disconnection(Client sClient)
{
if (clients.Contains(sClient))
{
clients.Remove(sClient);
}
return true;
}
private bool Handle_Connection(Client sClient)
{
if (!clients.Contains(sClient))
{
clients.Add(sClient);
}
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicEffect.ini:3d8b9b5a1a0fbd4cd22a2b594869c0afa4 327564" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicType.dat:811589835cb818375eb024283348d6df5189 9917" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:Env_DX8/Conquer.exe:8d733130a6f15a3331e9cda7a6d31025bffd88 7f" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("PROG:aimbot~cheat~speed~hack~tasker~artmoney~auto~ macro~evolution~knup~medo_o~windowstools~magictype ~magiceffect~supway~F8E0A3885481E91333212D7B413047 69~666A5EC4B9BCBF382DA87E4904353F14~mihwak~C318888 2E6BF739D02DA3CB9C9755AED" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("TIT:aimbot~cheat~speed~hack~tasker~artmoney~auto~m acro~evolution~knup~medo_o~windowstools~magictype~ magiceffect~supway~F8E0A3885481E91333212D7B4130476 9~666A5EC4B9BCBF382DA87E4904353F14~mihwak~C3188882 E6BF739D02DA3CB9C9755AED" + "<eof>"));
return true;
}
}
}
namespace C_Socket
{
// State object for receiving data from remote device.
public class Server
{
/// <summary>
/// The socket associated with the server.
/// </summary>
private Socket serverSocket;
/// <summary>
/// The socket events associated with the server.
/// </summary>
private SocketEvents socketEvents;
/// <summary>
/// Creates a new socket server.
/// </summary>
/// <param name="socketEvents">The events associated with the server. Put null for nothing.</param>
public Server(SocketEvents socketEvents)
{
if (socketEvents == null)
this.socketEvents = new SocketEvents();
else
this.socketEvents = socketEvents;
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
/// <summary>
/// Starts the server.
/// </summary>
/// <param name="ip">The IP of the server.</param>
/// <param name="port">The port of the server.</param>
public void Start(string ip, int port)
{
serverSocket.Bind(new IPEndPoint(IPAddress.Any, port));
serverSocket.Listen(500);
Accept();
}
/// <summary>
/// Starts to accept connections.
/// </summary>
private void Accept()
{
serverSocket.BeginAccept(new AsyncCallback(Accept_Callback), null);
}
/// <summary>
/// The callback from Accept()
/// </summary>
/// <param name="asyncResult">The async result.</param>
private void Accept_Callback(IAsyncResult asyncResult)
{
try
{
Socket accepted = serverSocket.EndAccept(asyncResult);
if (accepted.Connected)
{
Client sClient = new Client(accepted, socketEvents);
if (socketEvents.OnConnection.Invoke(sClient))
{
sClient.Alive = true;
sClient.Receive();
}
}
}
catch { }
Accept();
}
}
public class Client
{
/// <summary>
/// The socket associated with the client.
/// </summary>
private Socket clientSocket;
/// <summary>
/// The socket events associated with the server.
/// </summary>
private SocketEvents socketEvents;
/// <summary>
/// The buffer holding all bytes received.
/// </summary>
private byte[] dataHolder;
/// <summary>
/// An object which is the owner of the client.
/// </summary>
public bool Alive { get; set; }
private object send_lock;
public Client(Socket acceptedsocket, SocketEvents socketEvents)
{
clientSocket = acceptedsocket;
this.socketEvents = socketEvents;
System.Threading.Interlocked.CompareExchange(ref send_lock, new object(), null);
}
internal void Receive()
{
try
{
if (!Connected)
{
Disconnect("Not connected.");
return;
}
dataHolder = new byte[65535];
clientSocket.BeginReceive(dataHolder, 0, dataHolder.Length, SocketFlags.None, new AsyncCallback(Receive_Callback), null);
}
catch (Exception e)
{
Disconnect("Failed beginreceive. Exception: " + e.ToString());
}
}
private void Receive_Callback(IAsyncResult asyncResult)
{
try
{
if (!clientSocket.Connected)
{
Disconnect("Not connected.");
return;
}
SocketError err;
int rSize = clientSocket.EndReceive(asyncResult, out err);
if (err != SocketError.Success)
{
Disconnect("Failed receive. (99% regular DC) Socket Error: " + err.ToString());
return;
}
if (rSize < 4)
{
Disconnect("Invalid Packet Header. (99% regular DC) Size: " + rSize);
return;
}
byte[] rBuffer = new byte[rSize];
Buffer.BlockCopy(dataHolder, 0, rBuffer, 0, rSize);
if (!alreadyDisconnected)
{
socketEvents.OnReceive.Invoke(this, rSize, rBuffer);
}
}
catch (Exception e)
{
Disconnect(e.ToString());
}
Receive();
}
public bool Connected
{
get
{
if (clientSocket == null)
return false;
return clientSocket.Connected;
}
}
public void Disconnect(string reason)
{
if (alreadyDisconnected)
return;
alreadyDisconnected = true;
dcReason = reason;
Console.WriteLine(reason);
try
{
clientSocket.Disconnect(false);
clientSocket.Shutdown(SocketShutdown.Both);
}
catch { }
socketEvents.OnDisconnection.Invoke(this);
}
public void Disconnect()
{
if (alreadyDisconnected)
return;
alreadyDisconnected = true;
try
{
clientSocket.Disconnect(false);
clientSocket.Shutdown(SocketShutdown.Both);
}
catch { }
socketEvents.OnDisconnection.Invoke(this);
}
private bool alreadyDisconnected = false;
/// <summary>
/// Gets a boolean defining whether the client is already disconnected or not.
/// </summary>
/// <summary>
/// The disconnect reason.
/// </summary>
private string dcReason;
/// <summary>
/// Gets the disconnect reason.
/// </summary>
public bool HackerPlayer { get; internal set; }
public string HackName { get; internal set; }
public void Send(byte[] Buffer)
{
if (Buffer.Length > 65535)
{
Disconnect("Too big packet...");
return;
}
lock (send_lock)
{
try
{
if (clientSocket.Connected)
{
clientSocket.Send(Buffer);
}
else
Disconnect("Not Connected.");
}
catch (SocketException se)
{
Disconnect(string.Format("Failed to send packet... Error: {0}", se.SocketErrorCode.ToString()));
}
}
}
/// <summary>
/// The callback from Send().
/// </summary>
/// <param name="asyncResult">The async result.</param>
}
public delegate bool ConnectionEvent(Client sClient);
/// <summary>
/// A delegate associated with socket-buffer events.
/// </summary>
public delegate bool BufferEvent(Client sClient, int Size, byte[] Packet);
/// <summary>
/// Events called through sockets.
/// </summary>
public class SocketEvents
{
/// <summary>
/// An event raised when a client is connected.
/// </summary>
public ConnectionEvent OnConnection = new ConnectionEvent(empty_conn);
/// <summary>
/// Empty method for the connection events.
/// </summary>
/// <param name="sClient">The socket client.</param>
/// <returns>Returns true always.</returns>
static bool empty_conn(Client sClient) { return true; }
/// <summary>
/// An event raised when a client is disconnecting.
/// </summary>
public ConnectionEvent OnDisconnection = new ConnectionEvent(empty_conn);
/// <summary>
/// An event raised when a client has send data to the server.
/// </summary>
public BufferEvent OnReceive = new BufferEvent(empty_buff);
/// <summary>
/// Empty method for the buffer events.
/// </summary>
/// <param name="sClient">The socket client.</param>
/// <param name="packet">The data packet.</param>
/// <returns>Returns true always.</returns>
static bool empty_buff(Client sClient, int Size, byte[] packet) { return true; }
}
}
أتقل دة لسة اللى جاي تقيل
أشرب شوية شاي عبال ماتقرة الموضوع
:(
نبدء في الاضافة العادية
هاتروح على Program.cs
أبحث عن
.CreateTournaments();
وتحتية أو فوقية ضيف دة
new AntiHack.Socket().init();
تمام كدة خلصنا السكوت
الحماية اللى فية عشان الموضوع دة
عامل ذي البالوظة وموال لا ينتهي
:D
هاتفتح
LoaderEncryption.cs
وأرمي فية دة
using System.Text;
namespace COServer.Cryptography
{
public class LoaderEncryption
{
private static byte[] Key =
{
4 ,
5 ,
1 ,
3 ,
66 ,
7 ,
77 ,
44 ,
100 ,
228 ,
21 ,
254 ,
234 ,
212 ,
114 ,
141 ,
214 ,
12 ,
55 ,
99 ,
100 ,
7 ,
98 ,
187 ,
190 ,
77 ,
65 ,
55 ,
44 ,
43 ,
21 ,
99
}; // idb
private static byte[] Key2 =
{
6,
4,
1,
7,
2,
33,
77,
66,
65,
44,
21,
254,
43,
212,
90,
44,
214,
12,
56,
99,
67,
7,
87,
99,
0,
77,
43,
11,
44,
22,
21,
99
}; // idb
public static void Encrypt(byte[] arr)
{
int length = Key.Length;
for (int i = 0; i < arr.Length; i++)
{
arr[i] ^= Key[i % length];
arr[i] ^= Key[(i + 1) % length];
}
}
public static void Decrypt(byte[] arr)
{
var len = Encoding.Default.GetString(arr).Replace("\0", "").Length;
for (int i = 0; i < len; ++i)
{
arr[i] ^= Key2[88 * i & 0x1F];
arr[i] ^= Key[32 * i & 0x1C];
}
}
}
}
هاتروح على
Authentication.cs
وأرمي فية دي وانت مستريح
using System;
using System.IO;
using System.Text;
namespace COServer.Network.AuthPackets
{
public class Authentication : Interfaces.IPacket
{
public string Username;
public string Password;
public string Server;
public Authentication()
{
}
#region Desearialize Bigboss Loader
public void Deserialize(byte[] buffer)
{
if (buffer.Length == 312)
{
ushort length = BitConverter.ToUInt16(buffer, 0);
if (length == 312)
{
ushort type = BitConverter.ToUInt16(buffer, 2);
byte[] temp = new byte[16];
if (type == 1636)
{
MemoryStream MS = new MemoryStream(buffer);
BinaryReader BR = new BinaryReader(MS);
BR.ReadUInt16();
BR.ReadUInt16();
Username = Encoding.Default.GetString(BR.ReadBytes(32));
Username = Username.Replace("\0", "");
//BR.ReadBytes(36);
BR.ReadBytes(37);
byte[] PasswordArray = BR.ReadBytes(32);
Password = Encoding.Default.GetString(PasswordArray);
COServer.Cryptography.LoaderEncryption.Decrypt(Pas swordArray);
Password = Encoding.Default.GetString(PasswordArray);
Password = Password.Replace("\0", "");
BR.ReadBytes(31);
Server = Encoding.Default.GetString(BR.ReadBytes(16));
Server = Server.Replace("\0", "");
BR.Close();
MS.Close();
}
}
}
}
#endregion
#region Desearilze normal csv3
/*public void Deserialize(byte[] buffer)
{
if (buffer.Length == 312)
{
ushort length = BitConverter.ToUInt16(buffer, 0);
if (length == 312)
{
ushort type = BitConverter.ToUInt16(buffer, 2);
byte[] temp = new byte[16];
if (type == 1542)
{
MemoryStream MS = new MemoryStream(buffer);
BinaryReader BR = new BinaryReader(MS);
BR.ReadUInt16();
BR.ReadUInt16();
Username = Encoding.Default.GetString(BR.ReadBytes(32));
Username = Username.Replace("\0", "");
BR.ReadBytes(36);
Password = Encoding.Default.GetString(BR.ReadBytes(32));
Password = Password.Replace("\0", "");
BR.ReadBytes(32);
Server = Encoding.Default.GetString(BR.ReadBytes(32));
Server = Server.Replace("\0", "");
BR.Close();
MS.Close();
}
}
}
}*/
#endregion
public byte[] ToArray()
{
throw new NotImplementedException();
}
public void Send(Client.GameState client)
{
throw new NotImplementedException();
}
}
}
أفتح بقة يا عم الناس
Constants.cs
أبحث عن
public const string
بص عشان تبقي فاهم عشان
دة سر أضافة اللودر مظبوت معاك
لو لاقيت الكود بالشكل دة
public const string
ServerKey = "TQServer",
DMapsPath = "database\\",
DataHolderPath = "database\\",
PortalsPath = "database\\Portals.ini",
ShopsPath = "database\\shops\\Shop.dat",
ExchangeShopsPath = "database\\shops\\exchange_shop_goods.txt",
MonstersPath = "database\\Monsters.txt",
rune_levexp = "database\\rune_levexp.txt",
hairface_storage_type = "database\\hairface_storage_type.txt",
ItemBaseInfosPath = "database\\itemtype.txt",
ItemBaseInfosPath2 = "database\\ItemtypeSub.txt",
RevivePoints = "database\\RevivePoints.ini",
ItemPlusInfosPath = "database\\ItemsPlus.ini",
QuizShow = "database\\Slayer\\QuizShow.txt",
EShopsPath = "database\\shops\\emoneyshop.ini",
HonorShopPath = "database\\shops\\HonorShop.ini",
WelcomeMessages = "database\\WelcomeMessages.txt",
EShopsV2Path = "database\\shops\\emoneyshopV2.ini",
UnhandledExceptionsPath = "database\\exceptions\\",
RaceShopPath = "database\\shops\\SlayerPointhop.ini",
RewardPath = "database\\Slayer\\operating_prize.txt",
ChampionShopPath = "database\\shops\\GoldenLeagueShop.ini";
هاتيحي عند أخر سطر اللى هوة دة
ChampionShopPath = "database\\shops\\GoldenLeagueShop.ini";
انا لحد دلوقتي بدي مثال
كلو على حسب السورس اللى
انت شغال بية هاتيجي على أخر
سطر ذي ماقولت وتضيف تتحتية الكود دة
static byte[] Key = new byte[] { 66, 50, 50, 97, 113, 110, 122, 98, 52, 49, 99, 117, 77, 101, 109, 97 }; //Jheisson
//static byte[] Key = new byte[] { 66, 50, 50, 98, 113, 110, 102, 98, 52, 49, 99, 117, 77, 101, 109, 97 }; //Luis
public static string GameCryptographyKey = Encoding.Default.GetString(Key);
لا لسة مخلصناش :(
أفتح GameState.cs
أبحث عن
GameState(ClientWrapper socket)
بدله بدة
public GameState(ClientWrapper socket)
{
Fake = socket == null;
if (Fake) socket = new ClientWrapper() { Alive = true };
Queue = new ConcurrentPacketQueue();
PacketFilter = new PacketFilter() { { 10010, 10 }, { 10005, 7 }, { 2064, 4 }, { 2032, 3 }, { 1027, 2 } };
Attackable = false;
Action = 0;
_socket = socket;
Cryptography = new GameCryptography(System.Text.Encoding.Default.GetB ytes(Constants.GameCryptographyKey));
DHKeyExchange = new Network.GamePackets.DHKeyExchange.ServerKeyExchang e();
ChiPowers = new List<ChiPowerStructure>();
Retretead_ChiPowers = new List<ChiPowerStructure>();
}
طيب انا جالي أيرور ياعم الحجم
اعمل أية هاقول بس يارب ماتكوت كوباية
الشاي اللى عند خلصت :D
الخلاصة كلها فى هنا فى الكود دة
Cryptography = new GameCryptography(System.Text.Encoding.Default.GetB ytes(Constants.GameCryptographyKey));
لو ملاتهوش في الفويد ضيفة وانتهي الموضوع
بكدة أكون خلصت السورسات العادية Programe.cs
الجزي التاني من الشرح على السورسات الServer.Cs
ذي سورس Slayer
أفتح Server.cs
أبحث عن
Thread.CreateTournaments();
تحية أو فوقيه مش هاترقث
ضيف الكودة دة
new AntiHack.Socket().init();
كدة عشان نشغل سكوت اللودر في القنصل
هيولك أن السوكت أشتغل على بورت 6319
بالشكل دة
Protection start on port 6319
لو ماجتش اتاكد من الاضافة كاملة
بكدة نكون خلصنا الاضافة بتاعت اللودر
جاي وقت التحميل
أولاً دة ملف .dll لازم يكون في
السورس عشان اللودر يشتغل معاك
وبتعمل حاجة أسمها Add Reference
ولازم تضيف الملفات دي
عفواً لايمكن عرض الروابط في الإرشيف
ودة ملف تحميل اللودر على سورسات البروتو
عفواً لايمكن عرض الروابط في الإرشيف n_qjAqdIcURiXX4UO0BeHtg
طبعاً دة من رايوز عشان ولله انا قاعد مع واحد صاحبي قولت أنزل اللودر
نيجي بقة للتحميل السورس اللى طلع عين ماستر رايزو
عفواً لايمكن عرض الروابط في الإرشيف
(عفواً لايمكن عرض الروابط في الإرشيف)
ملف التاشفير أسمو
z.dbat
ودة شكلو
عفواً لايمكن عرض الروابط في الإرشيف
طبعاً مش هعمل ذي أيمن ومقولش أسامي الناس
لا ياباشا أحنا كلنا أخوات ولازم نقول أساني الناس
اللى تعب في الموضوع
الاساسي
Rayzo
و Mohamed X Black
وVirus7x
اللي هوز انا يعني
:D
والسلام عليكم ورحمة الله وبركاتة :o
طبعاً هاشكر
محمد حسين او محمد الساحر
لانو هو السبب في اننا نوصل
لسورس دة أساساً
وبحتي على الهابيدة اللى بعتو
السورس متفيرس وقالو دي النسخة
الاصلية وشوية هبد كدة مش مفهوم
:harhar1:
هنعمل كلاس جديد
ونسمية
Protaction.cs
وترزع فية دة وانت مستريح ذي الخواجة :D
using C_Socket;
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
namespace AntiHack
{
public class Socket
{
public void init()
{
SocketEvents sockEvents = new SocketEvents();
sockEvents.OnConnection = new ConnectionEvent(Handle_Connection);
sockEvents.OnDisconnection = new ConnectionEvent(Handle_Disconnection);
sockEvents.OnReceive = new BufferEvent(Handle_Receive);
Server server = new Server(sockEvents);
int port = 6319;
server.Start("127.0.0.1", port);
Console.WriteLine("Protection start on port " + port);
System.Threading.Thread t = new System.Threading.Thread(() =>
{
while (true)
{
if (clients.Count > 0)
{
foreach (var sClient in clients)
{
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicEffect.ini:3d8b9b5a1a0fbd4cd22a2b594869c0afa4 327564" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicType.dat:811589835cb818375eb024283348d6df5189 9917" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:Env_DX8/Conquer.exe:8d733130a6f15a3331e9cda7a6d31025bffd88 7f" + "<eof>"));
}
}
System.Threading.Thread.Sleep(15000);
}
});
t.Start();
}
public static List<Client> clients = new List<Client>();
private bool Handle_Receive(Client sClient, int Size, byte[] Packet)
{
string mess = Encoding.Default.GetString(Packet);
var data = mess.Split(':');
if (data.Length < 2)
{
sClient.Disconnect();
}
switch (data[0].ToUpper())
{
case "OK":
{
var uid = uint.Parse(data[1]);
if (uid == 0)
return true;
if (COServer.Kernel.GamePool.ContainsKey(uid))
{
var client = COServer.Kernel.GamePool[uid];
client.LastClientOK = DateTime.Now;
sClient.Send(ASCIIEncoding.Default.GetBytes("OK:ON" + "<eof>"));
}
else
{
sClient.Send(ASCIIEncoding.Default.GetBytes("OK:OFF" + "<eof>"));
}
break;
}
case "FILE":
{
var Name = data[1];
sClient.HackerPlayer = true;
sClient.HackName = " using File " + Name;
Console.WriteLine("Found a FILE :" + sClient.HackName);
sClient.Send(ASCIIEncoding.Default.GetBytes("KILL:OFF" + "<eof>"));
break;
}
case "PROG":
{
var Name = data[1];
if (Name == "officeclicktorun.exe") return false;
else
{
sClient.HackerPlayer = true;
sClient.HackName = " using Program " + Name;
//Console.WriteLine("found a PROG :" + sClient.HackName);
}
break;
}
case "TIT":
{
sClient.HackerPlayer = true;
var Name = data[1];
sClient.HackName = " using Program " + Name;
//Console.WriteLine("found a TIT :" + sClient.HackName);
break;
}
case "SP":
{
sClient.HackerPlayer = true;
sClient.HackName = " using Speed Hack";
//Console.WriteLine("found a SP :" + sClient.HackName);
sClient.Send(ASCIIEncoding.Default.GetBytes("KILL:OFF" + "<eof>"));
break;
}
case "CL":
{
sClient.HackerPlayer = true;
sClient.HackName = " using Clicker";
//Console.WriteLine("found a clicker :" + sClient.HackName);
sClient.Send(ASCIIEncoding.Default.GetBytes("KILL:OFF" + "<eof>"));
break;
}
}
return true;
}
private bool Handle_Disconnection(Client sClient)
{
if (clients.Contains(sClient))
{
clients.Remove(sClient);
}
return true;
}
private bool Handle_Connection(Client sClient)
{
if (!clients.Contains(sClient))
{
clients.Add(sClient);
}
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicEffect.ini:3d8b9b5a1a0fbd4cd22a2b594869c0afa4 327564" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:ini/MagicType.dat:811589835cb818375eb024283348d6df5189 9917" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("FILE:Env_DX8/Conquer.exe:8d733130a6f15a3331e9cda7a6d31025bffd88 7f" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("PROG:aimbot~cheat~speed~hack~tasker~artmoney~auto~ macro~evolution~knup~medo_o~windowstools~magictype ~magiceffect~supway~F8E0A3885481E91333212D7B413047 69~666A5EC4B9BCBF382DA87E4904353F14~mihwak~C318888 2E6BF739D02DA3CB9C9755AED" + "<eof>"));
sClient.Send(ASCIIEncoding.Default.GetBytes("TIT:aimbot~cheat~speed~hack~tasker~artmoney~auto~m acro~evolution~knup~medo_o~windowstools~magictype~ magiceffect~supway~F8E0A3885481E91333212D7B4130476 9~666A5EC4B9BCBF382DA87E4904353F14~mihwak~C3188882 E6BF739D02DA3CB9C9755AED" + "<eof>"));
return true;
}
}
}
namespace C_Socket
{
// State object for receiving data from remote device.
public class Server
{
/// <summary>
/// The socket associated with the server.
/// </summary>
private Socket serverSocket;
/// <summary>
/// The socket events associated with the server.
/// </summary>
private SocketEvents socketEvents;
/// <summary>
/// Creates a new socket server.
/// </summary>
/// <param name="socketEvents">The events associated with the server. Put null for nothing.</param>
public Server(SocketEvents socketEvents)
{
if (socketEvents == null)
this.socketEvents = new SocketEvents();
else
this.socketEvents = socketEvents;
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
/// <summary>
/// Starts the server.
/// </summary>
/// <param name="ip">The IP of the server.</param>
/// <param name="port">The port of the server.</param>
public void Start(string ip, int port)
{
serverSocket.Bind(new IPEndPoint(IPAddress.Any, port));
serverSocket.Listen(500);
Accept();
}
/// <summary>
/// Starts to accept connections.
/// </summary>
private void Accept()
{
serverSocket.BeginAccept(new AsyncCallback(Accept_Callback), null);
}
/// <summary>
/// The callback from Accept()
/// </summary>
/// <param name="asyncResult">The async result.</param>
private void Accept_Callback(IAsyncResult asyncResult)
{
try
{
Socket accepted = serverSocket.EndAccept(asyncResult);
if (accepted.Connected)
{
Client sClient = new Client(accepted, socketEvents);
if (socketEvents.OnConnection.Invoke(sClient))
{
sClient.Alive = true;
sClient.Receive();
}
}
}
catch { }
Accept();
}
}
public class Client
{
/// <summary>
/// The socket associated with the client.
/// </summary>
private Socket clientSocket;
/// <summary>
/// The socket events associated with the server.
/// </summary>
private SocketEvents socketEvents;
/// <summary>
/// The buffer holding all bytes received.
/// </summary>
private byte[] dataHolder;
/// <summary>
/// An object which is the owner of the client.
/// </summary>
public bool Alive { get; set; }
private object send_lock;
public Client(Socket acceptedsocket, SocketEvents socketEvents)
{
clientSocket = acceptedsocket;
this.socketEvents = socketEvents;
System.Threading.Interlocked.CompareExchange(ref send_lock, new object(), null);
}
internal void Receive()
{
try
{
if (!Connected)
{
Disconnect("Not connected.");
return;
}
dataHolder = new byte[65535];
clientSocket.BeginReceive(dataHolder, 0, dataHolder.Length, SocketFlags.None, new AsyncCallback(Receive_Callback), null);
}
catch (Exception e)
{
Disconnect("Failed beginreceive. Exception: " + e.ToString());
}
}
private void Receive_Callback(IAsyncResult asyncResult)
{
try
{
if (!clientSocket.Connected)
{
Disconnect("Not connected.");
return;
}
SocketError err;
int rSize = clientSocket.EndReceive(asyncResult, out err);
if (err != SocketError.Success)
{
Disconnect("Failed receive. (99% regular DC) Socket Error: " + err.ToString());
return;
}
if (rSize < 4)
{
Disconnect("Invalid Packet Header. (99% regular DC) Size: " + rSize);
return;
}
byte[] rBuffer = new byte[rSize];
Buffer.BlockCopy(dataHolder, 0, rBuffer, 0, rSize);
if (!alreadyDisconnected)
{
socketEvents.OnReceive.Invoke(this, rSize, rBuffer);
}
}
catch (Exception e)
{
Disconnect(e.ToString());
}
Receive();
}
public bool Connected
{
get
{
if (clientSocket == null)
return false;
return clientSocket.Connected;
}
}
public void Disconnect(string reason)
{
if (alreadyDisconnected)
return;
alreadyDisconnected = true;
dcReason = reason;
Console.WriteLine(reason);
try
{
clientSocket.Disconnect(false);
clientSocket.Shutdown(SocketShutdown.Both);
}
catch { }
socketEvents.OnDisconnection.Invoke(this);
}
public void Disconnect()
{
if (alreadyDisconnected)
return;
alreadyDisconnected = true;
try
{
clientSocket.Disconnect(false);
clientSocket.Shutdown(SocketShutdown.Both);
}
catch { }
socketEvents.OnDisconnection.Invoke(this);
}
private bool alreadyDisconnected = false;
/// <summary>
/// Gets a boolean defining whether the client is already disconnected or not.
/// </summary>
/// <summary>
/// The disconnect reason.
/// </summary>
private string dcReason;
/// <summary>
/// Gets the disconnect reason.
/// </summary>
public bool HackerPlayer { get; internal set; }
public string HackName { get; internal set; }
public void Send(byte[] Buffer)
{
if (Buffer.Length > 65535)
{
Disconnect("Too big packet...");
return;
}
lock (send_lock)
{
try
{
if (clientSocket.Connected)
{
clientSocket.Send(Buffer);
}
else
Disconnect("Not Connected.");
}
catch (SocketException se)
{
Disconnect(string.Format("Failed to send packet... Error: {0}", se.SocketErrorCode.ToString()));
}
}
}
/// <summary>
/// The callback from Send().
/// </summary>
/// <param name="asyncResult">The async result.</param>
}
public delegate bool ConnectionEvent(Client sClient);
/// <summary>
/// A delegate associated with socket-buffer events.
/// </summary>
public delegate bool BufferEvent(Client sClient, int Size, byte[] Packet);
/// <summary>
/// Events called through sockets.
/// </summary>
public class SocketEvents
{
/// <summary>
/// An event raised when a client is connected.
/// </summary>
public ConnectionEvent OnConnection = new ConnectionEvent(empty_conn);
/// <summary>
/// Empty method for the connection events.
/// </summary>
/// <param name="sClient">The socket client.</param>
/// <returns>Returns true always.</returns>
static bool empty_conn(Client sClient) { return true; }
/// <summary>
/// An event raised when a client is disconnecting.
/// </summary>
public ConnectionEvent OnDisconnection = new ConnectionEvent(empty_conn);
/// <summary>
/// An event raised when a client has send data to the server.
/// </summary>
public BufferEvent OnReceive = new BufferEvent(empty_buff);
/// <summary>
/// Empty method for the buffer events.
/// </summary>
/// <param name="sClient">The socket client.</param>
/// <param name="packet">The data packet.</param>
/// <returns>Returns true always.</returns>
static bool empty_buff(Client sClient, int Size, byte[] packet) { return true; }
}
}
أتقل دة لسة اللى جاي تقيل
أشرب شوية شاي عبال ماتقرة الموضوع
:(
نبدء في الاضافة العادية
هاتروح على Program.cs
أبحث عن
.CreateTournaments();
وتحتية أو فوقية ضيف دة
new AntiHack.Socket().init();
تمام كدة خلصنا السكوت
الحماية اللى فية عشان الموضوع دة
عامل ذي البالوظة وموال لا ينتهي
:D
هاتفتح
LoaderEncryption.cs
وأرمي فية دة
using System.Text;
namespace COServer.Cryptography
{
public class LoaderEncryption
{
private static byte[] Key =
{
4 ,
5 ,
1 ,
3 ,
66 ,
7 ,
77 ,
44 ,
100 ,
228 ,
21 ,
254 ,
234 ,
212 ,
114 ,
141 ,
214 ,
12 ,
55 ,
99 ,
100 ,
7 ,
98 ,
187 ,
190 ,
77 ,
65 ,
55 ,
44 ,
43 ,
21 ,
99
}; // idb
private static byte[] Key2 =
{
6,
4,
1,
7,
2,
33,
77,
66,
65,
44,
21,
254,
43,
212,
90,
44,
214,
12,
56,
99,
67,
7,
87,
99,
0,
77,
43,
11,
44,
22,
21,
99
}; // idb
public static void Encrypt(byte[] arr)
{
int length = Key.Length;
for (int i = 0; i < arr.Length; i++)
{
arr[i] ^= Key[i % length];
arr[i] ^= Key[(i + 1) % length];
}
}
public static void Decrypt(byte[] arr)
{
var len = Encoding.Default.GetString(arr).Replace("\0", "").Length;
for (int i = 0; i < len; ++i)
{
arr[i] ^= Key2[88 * i & 0x1F];
arr[i] ^= Key[32 * i & 0x1C];
}
}
}
}
هاتروح على
Authentication.cs
وأرمي فية دي وانت مستريح
using System;
using System.IO;
using System.Text;
namespace COServer.Network.AuthPackets
{
public class Authentication : Interfaces.IPacket
{
public string Username;
public string Password;
public string Server;
public Authentication()
{
}
#region Desearialize Bigboss Loader
public void Deserialize(byte[] buffer)
{
if (buffer.Length == 312)
{
ushort length = BitConverter.ToUInt16(buffer, 0);
if (length == 312)
{
ushort type = BitConverter.ToUInt16(buffer, 2);
byte[] temp = new byte[16];
if (type == 1636)
{
MemoryStream MS = new MemoryStream(buffer);
BinaryReader BR = new BinaryReader(MS);
BR.ReadUInt16();
BR.ReadUInt16();
Username = Encoding.Default.GetString(BR.ReadBytes(32));
Username = Username.Replace("\0", "");
//BR.ReadBytes(36);
BR.ReadBytes(37);
byte[] PasswordArray = BR.ReadBytes(32);
Password = Encoding.Default.GetString(PasswordArray);
COServer.Cryptography.LoaderEncryption.Decrypt(Pas swordArray);
Password = Encoding.Default.GetString(PasswordArray);
Password = Password.Replace("\0", "");
BR.ReadBytes(31);
Server = Encoding.Default.GetString(BR.ReadBytes(16));
Server = Server.Replace("\0", "");
BR.Close();
MS.Close();
}
}
}
}
#endregion
#region Desearilze normal csv3
/*public void Deserialize(byte[] buffer)
{
if (buffer.Length == 312)
{
ushort length = BitConverter.ToUInt16(buffer, 0);
if (length == 312)
{
ushort type = BitConverter.ToUInt16(buffer, 2);
byte[] temp = new byte[16];
if (type == 1542)
{
MemoryStream MS = new MemoryStream(buffer);
BinaryReader BR = new BinaryReader(MS);
BR.ReadUInt16();
BR.ReadUInt16();
Username = Encoding.Default.GetString(BR.ReadBytes(32));
Username = Username.Replace("\0", "");
BR.ReadBytes(36);
Password = Encoding.Default.GetString(BR.ReadBytes(32));
Password = Password.Replace("\0", "");
BR.ReadBytes(32);
Server = Encoding.Default.GetString(BR.ReadBytes(32));
Server = Server.Replace("\0", "");
BR.Close();
MS.Close();
}
}
}
}*/
#endregion
public byte[] ToArray()
{
throw new NotImplementedException();
}
public void Send(Client.GameState client)
{
throw new NotImplementedException();
}
}
}
أفتح بقة يا عم الناس
Constants.cs
أبحث عن
public const string
بص عشان تبقي فاهم عشان
دة سر أضافة اللودر مظبوت معاك
لو لاقيت الكود بالشكل دة
public const string
ServerKey = "TQServer",
DMapsPath = "database\\",
DataHolderPath = "database\\",
PortalsPath = "database\\Portals.ini",
ShopsPath = "database\\shops\\Shop.dat",
ExchangeShopsPath = "database\\shops\\exchange_shop_goods.txt",
MonstersPath = "database\\Monsters.txt",
rune_levexp = "database\\rune_levexp.txt",
hairface_storage_type = "database\\hairface_storage_type.txt",
ItemBaseInfosPath = "database\\itemtype.txt",
ItemBaseInfosPath2 = "database\\ItemtypeSub.txt",
RevivePoints = "database\\RevivePoints.ini",
ItemPlusInfosPath = "database\\ItemsPlus.ini",
QuizShow = "database\\Slayer\\QuizShow.txt",
EShopsPath = "database\\shops\\emoneyshop.ini",
HonorShopPath = "database\\shops\\HonorShop.ini",
WelcomeMessages = "database\\WelcomeMessages.txt",
EShopsV2Path = "database\\shops\\emoneyshopV2.ini",
UnhandledExceptionsPath = "database\\exceptions\\",
RaceShopPath = "database\\shops\\SlayerPointhop.ini",
RewardPath = "database\\Slayer\\operating_prize.txt",
ChampionShopPath = "database\\shops\\GoldenLeagueShop.ini";
هاتيحي عند أخر سطر اللى هوة دة
ChampionShopPath = "database\\shops\\GoldenLeagueShop.ini";
انا لحد دلوقتي بدي مثال
كلو على حسب السورس اللى
انت شغال بية هاتيجي على أخر
سطر ذي ماقولت وتضيف تتحتية الكود دة
static byte[] Key = new byte[] { 66, 50, 50, 97, 113, 110, 122, 98, 52, 49, 99, 117, 77, 101, 109, 97 }; //Jheisson
//static byte[] Key = new byte[] { 66, 50, 50, 98, 113, 110, 102, 98, 52, 49, 99, 117, 77, 101, 109, 97 }; //Luis
public static string GameCryptographyKey = Encoding.Default.GetString(Key);
لا لسة مخلصناش :(
أفتح GameState.cs
أبحث عن
GameState(ClientWrapper socket)
بدله بدة
public GameState(ClientWrapper socket)
{
Fake = socket == null;
if (Fake) socket = new ClientWrapper() { Alive = true };
Queue = new ConcurrentPacketQueue();
PacketFilter = new PacketFilter() { { 10010, 10 }, { 10005, 7 }, { 2064, 4 }, { 2032, 3 }, { 1027, 2 } };
Attackable = false;
Action = 0;
_socket = socket;
Cryptography = new GameCryptography(System.Text.Encoding.Default.GetB ytes(Constants.GameCryptographyKey));
DHKeyExchange = new Network.GamePackets.DHKeyExchange.ServerKeyExchang e();
ChiPowers = new List<ChiPowerStructure>();
Retretead_ChiPowers = new List<ChiPowerStructure>();
}
طيب انا جالي أيرور ياعم الحجم
اعمل أية هاقول بس يارب ماتكوت كوباية
الشاي اللى عند خلصت :D
الخلاصة كلها فى هنا فى الكود دة
Cryptography = new GameCryptography(System.Text.Encoding.Default.GetB ytes(Constants.GameCryptographyKey));
لو ملاتهوش في الفويد ضيفة وانتهي الموضوع
بكدة أكون خلصت السورسات العادية Programe.cs
الجزي التاني من الشرح على السورسات الServer.Cs
ذي سورس Slayer
أفتح Server.cs
أبحث عن
Thread.CreateTournaments();
تحية أو فوقيه مش هاترقث
ضيف الكودة دة
new AntiHack.Socket().init();
كدة عشان نشغل سكوت اللودر في القنصل
هيولك أن السوكت أشتغل على بورت 6319
بالشكل دة
Protection start on port 6319
لو ماجتش اتاكد من الاضافة كاملة
بكدة نكون خلصنا الاضافة بتاعت اللودر
جاي وقت التحميل
أولاً دة ملف .dll لازم يكون في
السورس عشان اللودر يشتغل معاك
وبتعمل حاجة أسمها Add Reference
ولازم تضيف الملفات دي
عفواً لايمكن عرض الروابط في الإرشيف
ودة ملف تحميل اللودر على سورسات البروتو
عفواً لايمكن عرض الروابط في الإرشيف n_qjAqdIcURiXX4UO0BeHtg
طبعاً دة من رايوز عشان ولله انا قاعد مع واحد صاحبي قولت أنزل اللودر
نيجي بقة للتحميل السورس اللى طلع عين ماستر رايزو
عفواً لايمكن عرض الروابط في الإرشيف
(عفواً لايمكن عرض الروابط في الإرشيف)
ملف التاشفير أسمو
z.dbat
ودة شكلو
عفواً لايمكن عرض الروابط في الإرشيف
طبعاً مش هعمل ذي أيمن ومقولش أسامي الناس
لا ياباشا أحنا كلنا أخوات ولازم نقول أساني الناس
اللى تعب في الموضوع
الاساسي
Rayzo
و Mohamed X Black
وVirus7x
اللي هوز انا يعني
:D
والسلام عليكم ورحمة الله وبركاتة :o