Tefa
2019-07-27, 09:18 PM
عفواً لايمكن عرض الروابط في الإرشيف
طبعا اللوردر حقوقه كلها لكروم من الصفر
ندخل فى الموضوع,
اللوردر دا مميزاته كـ التالى :
1- لا يمكن تشغيل سيرفرك الا بيه بعد تركيبه.
2- قتل البرامج التى سوف تضيفها اليه.
3- يمكنك تعديل على الاكواد فى السورس لتغير الحاله اذا استخدم شخص لورد اخر [ تبنيده او غيره من الاجرائات ].
ندخل على شرح التركيب
[ التحميل ]
عفواً لايمكن عرض الروابط في الإرشيف (عفواً لايمكن عرض الروابط في الإرشيف)
اولا هتحمل ملفات اللوردر
و تحطه فى الـكلينت على طول و توافق على الاستبدال
البورت و الهوست فى نفس الملف الى هنشرحه تحت
[ ملاحظه ] احذف هذا الملف [ csv3config.ini ] لو موجود عندك و اترك [ CSV3Hook.dll ]
ثانيا هنفتح ملف [ CorrMconf.ini ]
فى الملف يوجد قيمه بأسم [ Buf ] دى تحط فيها اى رقم من 1 الى 254 بس ابعد عن 144 لانها مش هتغير شئ لو بقت 144
من الاخر حط اى حاجه من 1 الى 254 بس بلاش 144 لانك مش هتعمل اى فرق و هيشتغل اى لوردر عادى جدا
فى الملف هتلافى القيمه [ AmountProg ] دى قيمتها هتغيرها على حسب الكلام الى هتقراه دلوقتى
تحت القيمه [ AmountProg ] هتحط القيم الى انتا عاوزها بنفس الشكل دا
Prog1=notepad.exe
Prog2=calc.exe
Prog3=cmc.exe
فى الحاله دى هنخلى قيمه [ AmountProg ] تبقى [ 3 ]
يمكنك الاضافه كما تريد حتى لو اضفت 1000000 اسم او قيمه ,
الفايده منهم هو ان الكلينت نفسه مش اللورد هو الى هيقتل البرامج دى الى انتا هتحطها
[ عمل اللوردر بتاعى بينتهى بتشغيل الـكلينت و يغلق نفسه الكلينت بعد كدا هيتكفل بكل حاجه قتل البرامج و اكتشاف ان اللعبه اتفتح باللورد بتاعنا ولا لا ] ( الخلاصه ان البرامج دى طول ما اللعبه شغاله مستحيل انهم يشتغلو الا بس لو اللعبه اتقفلت )
ننتقل للسورس بقى
فى السورسات الي فيها Server.cs
الملف [ Server.cs ]
ابحث عن [ AuthServer_OnClientReceive ] و بدله كلو بدا
static void AuthServer_OnClientReceive(byte[] buffer, int length, ClientWrapper arg3)
{
// CorrMLoader
bool IsCorrM = false;
int CorrM_BUF = 50;
if (buffer[4] == CorrM_BUF)
IsCorrM = true;
else
IsCorrM = false;
buffer[4] = 144;
var player = arg3.Connector as Client.AuthClient;
player.Cryptographer.Decrypt(buffer, length);
player.Queue.Enqueue(buffer, length);
while (player.Queue.CanDequeue())
{
byte[] packet = player.Queue.Dequeue();
ushort len = BitConverter.ToUInt16(packet, 0);
ushort id = BitConverter.ToUInt16(packet, 2);
if (len == 312)
{
player.Info = new Authentication();
player.Info.Deserialize(packet);
player.Account = new AccountTable(player.Info.Username);
msvcrt.msvcrt.srand(player.PasswordSeed);
if (!LoginBruteForce.AcceptJoin(arg3.IP))
{
Console.WriteLine("Client -> ", player.Info.Username, " was bloked Adrres ", arg3.IP, "!");
arg3.Disconnect();
break;
}
Database.ServerInfo Server = null;
Forward Fw = new Forward();
if (ServerData.Servers.TryGetValue("Horror-Co", out Server))
{
// CorrMLoader
if (IsCorrM)
{
// It's Running With CorrMLoader !! :)
if (!player.Account.exists)
{
Fw.Type = Forward.ForwardType.WrongAccount;
player.Send(Fw);
}
if (player.Account.Password == player.Info.Password && player.Account.exists)
{
Fw.Type = Forward.ForwardType.Ready;
}
else
{
LoginBruteForce.ClientRegistred(arg3.IP);
Fw.Type = Forward.ForwardType.InvalidInfo;
}
if (IPBan.IsBanned(arg3.IP) || player.Account.Banned)
{
Fw.Type = Forward.ForwardType.Banned;
player.Send(Fw);
return;
}
if (Fw.Type == Network.AuthPackets.Forward.ForwardType.Ready)
{
Client.GameState aClient;
if (Kernel.GamePool.TryGetValue(Fw.Identifier, out aClient))
{
Fw.Type = Forward.ForwardType.InvalidInfo;
aClient.Disconnect();
player.Send(Fw);
return;
}
Fw.Identifier = player.Account.GenerateKey();
Kernel.AwaitingPool[Fw.Identifier] = player.Account;
Fw.IP = GameIP;
Fw.Port = GamePort;
Console.WriteLine("{0} has logged on Server: {1}! IP:[{2}] Country:[{3}]", player.Info.Username, player.Info.Server, player.IP, Kernel.Lookup.lookupCountryName(player.IP));
}
player.Send(Fw);
}
else
{
// It's Not Running With CorrMLoader !! :(
Fw.Type = Forward.ForwardType.WrongAccount;
player.Send(Fw);
}
}
}
}
}
السورسات العاديه
فى ملف [ Program.cs ]
هنبدل الفويد دا [ AuthServer_OnClientReceive ] بـ دا
static void AuthServer_OnClientReceive(byte[] buffer, int length, ClientWrapper arg3)
{
// CorrMLoader
bool IsCorrM = false;
int CorrM_BUF = 50;
if (buffer[4] == CorrM_BUF)
IsCorrM = true;
else
IsCorrM = false;
buffer[4] = 144;
var player = arg3.Connector as Client.AuthClient;
player.Cryptographer.Decrypt(buffer, length);
player.Queue.Enqueue(buffer, length);
while (player.Queue.CanDequeue())
{
byte[] packet = player.Queue.Dequeue();
ushort len = BitConverter.ToUInt16(packet, 0);
ushort id = BitConverter.ToUInt16(packet, 2);
if (len == 312)
{
player.Info = new Authentication();
player.Info.Deserialize(packet);
player.Account = new AccountTable(player.Info.Username);
msvcrt.msvcrt.srand(player.PasswordSeed);
Forward Fw = new Forward();
// CorrMLoader
if (IsCorrM)
{
// It's Running With CorrMLoader !! :)
if (player.Account.Password == player.Info.Password && player.Account.exists)
Fw.Type = Forward.ForwardType.Ready;
else
Fw.Type = Forward.ForwardType.InvalidInfo;
if (IPBan.IsBanned(arg3.IP))
{
Fw.Type = Forward.ForwardType.Banned;
player.Send(Fw);
return;
}
{
if (Fw.Type == Network.AuthPackets.Forward.ForwardType.Ready)
{
Fw.Identifier = player.Account.GenerateKey();
Kernel.AwaitingPool[Fw.Identifier] = player.Account;
Fw.IP = GameIP;
Fw.Port = GamePort;
}
}
player.Send(Fw);
}
else
{
// It's Not Running With CorrMLoader !! :(
Fw.Type = Forward.ForwardType.InvalidInfo;
player.Send(Fw);
}
}
}
}
التغير هيكون فـ المتغير الى اسمه [ CorrM_BUF ] الرقم الى بيساويه لازم يكون هو نفس القيمه [ Buf ] الى فى ملف [ CorrMconf.ini ]
[ لازم يكونو شبه بعض و الا مش هيدخل الاكونت ابدا ]
الي هوه كود الي احنا ضفناه فوق سواء في program - server
if (buffer[4] == CorrM_BUF)
طبعا استخدام لوردر خاص بينا ليه فوايد بس طبعا كلنا عارفين انه مهما عملنا ممكن يتغير و بطرق كتير
طالما مش مرتبط بالسورس او بمعنى اصح السورس مش بيتحقق من اللوردر عشان كدا انا فكرت وبرمجته مخصوص للامر دا
,,
الشئ التانى :
( انا كاتب فى الكود تعليقات بدل على المكان الى فيه التحقق و اذا كان فعلا تم استخدام اللوردر بتاعنا ولا لا فـ بالتالى ممكن على اساس الشرط دا تبرمج حاجات كتير و افكار اكتر و مميزات ممكن تضيفها براحتك ]
,,
الشئ الثالث :
انا فعلا كنت ناوى احتفظ باللوردر دا لنفسى وللسيرفر الى ان شاء الله ناوى افتحه بس الصراحه انا استفدت منكم كتير و قولت انزل حاجه
كويسه تليق بالمنتدى و الرجاله الجميله الى فيه.
()
طبعا اللوردر حقوقه كلها لكروم من الصفر
ندخل فى الموضوع,
اللوردر دا مميزاته كـ التالى :
1- لا يمكن تشغيل سيرفرك الا بيه بعد تركيبه.
2- قتل البرامج التى سوف تضيفها اليه.
3- يمكنك تعديل على الاكواد فى السورس لتغير الحاله اذا استخدم شخص لورد اخر [ تبنيده او غيره من الاجرائات ].
ندخل على شرح التركيب
[ التحميل ]
عفواً لايمكن عرض الروابط في الإرشيف (عفواً لايمكن عرض الروابط في الإرشيف)
اولا هتحمل ملفات اللوردر
و تحطه فى الـكلينت على طول و توافق على الاستبدال
البورت و الهوست فى نفس الملف الى هنشرحه تحت
[ ملاحظه ] احذف هذا الملف [ csv3config.ini ] لو موجود عندك و اترك [ CSV3Hook.dll ]
ثانيا هنفتح ملف [ CorrMconf.ini ]
فى الملف يوجد قيمه بأسم [ Buf ] دى تحط فيها اى رقم من 1 الى 254 بس ابعد عن 144 لانها مش هتغير شئ لو بقت 144
من الاخر حط اى حاجه من 1 الى 254 بس بلاش 144 لانك مش هتعمل اى فرق و هيشتغل اى لوردر عادى جدا
فى الملف هتلافى القيمه [ AmountProg ] دى قيمتها هتغيرها على حسب الكلام الى هتقراه دلوقتى
تحت القيمه [ AmountProg ] هتحط القيم الى انتا عاوزها بنفس الشكل دا
Prog1=notepad.exe
Prog2=calc.exe
Prog3=cmc.exe
فى الحاله دى هنخلى قيمه [ AmountProg ] تبقى [ 3 ]
يمكنك الاضافه كما تريد حتى لو اضفت 1000000 اسم او قيمه ,
الفايده منهم هو ان الكلينت نفسه مش اللورد هو الى هيقتل البرامج دى الى انتا هتحطها
[ عمل اللوردر بتاعى بينتهى بتشغيل الـكلينت و يغلق نفسه الكلينت بعد كدا هيتكفل بكل حاجه قتل البرامج و اكتشاف ان اللعبه اتفتح باللورد بتاعنا ولا لا ] ( الخلاصه ان البرامج دى طول ما اللعبه شغاله مستحيل انهم يشتغلو الا بس لو اللعبه اتقفلت )
ننتقل للسورس بقى
فى السورسات الي فيها Server.cs
الملف [ Server.cs ]
ابحث عن [ AuthServer_OnClientReceive ] و بدله كلو بدا
static void AuthServer_OnClientReceive(byte[] buffer, int length, ClientWrapper arg3)
{
// CorrMLoader
bool IsCorrM = false;
int CorrM_BUF = 50;
if (buffer[4] == CorrM_BUF)
IsCorrM = true;
else
IsCorrM = false;
buffer[4] = 144;
var player = arg3.Connector as Client.AuthClient;
player.Cryptographer.Decrypt(buffer, length);
player.Queue.Enqueue(buffer, length);
while (player.Queue.CanDequeue())
{
byte[] packet = player.Queue.Dequeue();
ushort len = BitConverter.ToUInt16(packet, 0);
ushort id = BitConverter.ToUInt16(packet, 2);
if (len == 312)
{
player.Info = new Authentication();
player.Info.Deserialize(packet);
player.Account = new AccountTable(player.Info.Username);
msvcrt.msvcrt.srand(player.PasswordSeed);
if (!LoginBruteForce.AcceptJoin(arg3.IP))
{
Console.WriteLine("Client -> ", player.Info.Username, " was bloked Adrres ", arg3.IP, "!");
arg3.Disconnect();
break;
}
Database.ServerInfo Server = null;
Forward Fw = new Forward();
if (ServerData.Servers.TryGetValue("Horror-Co", out Server))
{
// CorrMLoader
if (IsCorrM)
{
// It's Running With CorrMLoader !! :)
if (!player.Account.exists)
{
Fw.Type = Forward.ForwardType.WrongAccount;
player.Send(Fw);
}
if (player.Account.Password == player.Info.Password && player.Account.exists)
{
Fw.Type = Forward.ForwardType.Ready;
}
else
{
LoginBruteForce.ClientRegistred(arg3.IP);
Fw.Type = Forward.ForwardType.InvalidInfo;
}
if (IPBan.IsBanned(arg3.IP) || player.Account.Banned)
{
Fw.Type = Forward.ForwardType.Banned;
player.Send(Fw);
return;
}
if (Fw.Type == Network.AuthPackets.Forward.ForwardType.Ready)
{
Client.GameState aClient;
if (Kernel.GamePool.TryGetValue(Fw.Identifier, out aClient))
{
Fw.Type = Forward.ForwardType.InvalidInfo;
aClient.Disconnect();
player.Send(Fw);
return;
}
Fw.Identifier = player.Account.GenerateKey();
Kernel.AwaitingPool[Fw.Identifier] = player.Account;
Fw.IP = GameIP;
Fw.Port = GamePort;
Console.WriteLine("{0} has logged on Server: {1}! IP:[{2}] Country:[{3}]", player.Info.Username, player.Info.Server, player.IP, Kernel.Lookup.lookupCountryName(player.IP));
}
player.Send(Fw);
}
else
{
// It's Not Running With CorrMLoader !! :(
Fw.Type = Forward.ForwardType.WrongAccount;
player.Send(Fw);
}
}
}
}
}
السورسات العاديه
فى ملف [ Program.cs ]
هنبدل الفويد دا [ AuthServer_OnClientReceive ] بـ دا
static void AuthServer_OnClientReceive(byte[] buffer, int length, ClientWrapper arg3)
{
// CorrMLoader
bool IsCorrM = false;
int CorrM_BUF = 50;
if (buffer[4] == CorrM_BUF)
IsCorrM = true;
else
IsCorrM = false;
buffer[4] = 144;
var player = arg3.Connector as Client.AuthClient;
player.Cryptographer.Decrypt(buffer, length);
player.Queue.Enqueue(buffer, length);
while (player.Queue.CanDequeue())
{
byte[] packet = player.Queue.Dequeue();
ushort len = BitConverter.ToUInt16(packet, 0);
ushort id = BitConverter.ToUInt16(packet, 2);
if (len == 312)
{
player.Info = new Authentication();
player.Info.Deserialize(packet);
player.Account = new AccountTable(player.Info.Username);
msvcrt.msvcrt.srand(player.PasswordSeed);
Forward Fw = new Forward();
// CorrMLoader
if (IsCorrM)
{
// It's Running With CorrMLoader !! :)
if (player.Account.Password == player.Info.Password && player.Account.exists)
Fw.Type = Forward.ForwardType.Ready;
else
Fw.Type = Forward.ForwardType.InvalidInfo;
if (IPBan.IsBanned(arg3.IP))
{
Fw.Type = Forward.ForwardType.Banned;
player.Send(Fw);
return;
}
{
if (Fw.Type == Network.AuthPackets.Forward.ForwardType.Ready)
{
Fw.Identifier = player.Account.GenerateKey();
Kernel.AwaitingPool[Fw.Identifier] = player.Account;
Fw.IP = GameIP;
Fw.Port = GamePort;
}
}
player.Send(Fw);
}
else
{
// It's Not Running With CorrMLoader !! :(
Fw.Type = Forward.ForwardType.InvalidInfo;
player.Send(Fw);
}
}
}
}
التغير هيكون فـ المتغير الى اسمه [ CorrM_BUF ] الرقم الى بيساويه لازم يكون هو نفس القيمه [ Buf ] الى فى ملف [ CorrMconf.ini ]
[ لازم يكونو شبه بعض و الا مش هيدخل الاكونت ابدا ]
الي هوه كود الي احنا ضفناه فوق سواء في program - server
if (buffer[4] == CorrM_BUF)
طبعا استخدام لوردر خاص بينا ليه فوايد بس طبعا كلنا عارفين انه مهما عملنا ممكن يتغير و بطرق كتير
طالما مش مرتبط بالسورس او بمعنى اصح السورس مش بيتحقق من اللوردر عشان كدا انا فكرت وبرمجته مخصوص للامر دا
,,
الشئ التانى :
( انا كاتب فى الكود تعليقات بدل على المكان الى فيه التحقق و اذا كان فعلا تم استخدام اللوردر بتاعنا ولا لا فـ بالتالى ممكن على اساس الشرط دا تبرمج حاجات كتير و افكار اكتر و مميزات ممكن تضيفها براحتك ]
,,
الشئ الثالث :
انا فعلا كنت ناوى احتفظ باللوردر دا لنفسى وللسيرفر الى ان شاء الله ناوى افتحه بس الصراحه انا استفدت منكم كتير و قولت انزل حاجه
كويسه تليق بالمنتدى و الرجاله الجميله الى فيه.
()