عرض مشاركة واحدة
قديم 21-11-2015, 06:27 AM   #7

Jayden
عضو متألق



الصورة الرمزية Jayden


• الانـتـسـاب » Jun 2008
• رقـم العـضـويـة » 24328
• المشـــاركـات » 1,564
• الـدولـة » طنـــطاوي
• الـهـوايـة » Private server developing and designing [ 2D -3D - Pk2 ]
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 55
Jayden جـيـد

Jayden غير متواجد حالياً



افتراضي رد: تغير لغة السيرفر



وليه تنزل sro_client لما ممكن تعملها بنفسك فى ال sro_client بتاعك
تابع معايه الشرح وركز اوى لانه صعب عشان ده جزء من الهندسة العكسية :

1- عشان برضو تكون فاهم طبعا Silkroad بتعتمد اعتماد كلى على فيلات ال pk2 ده بالنسبة للclient
طب وايه هى ال pk2 ؟ .. ال pk2 بتنقسم لقسمين
- القسم الأول: ده المسئول عن ربط الحاجات العامة اللى مسئولة عن تشغيل اللعبة .. ومسئول عن الحاجات الظاهرية للعبة (GUI) .. ده غير اكبر شىء اللى هو ال packets
- القسم الثانى: هو ده بقى المسئول عن ال packets وال parsing بتاعها .. طب ايه هى ال packets ؟ دى اى شىء بيتم فى السيرفر بيكون ليه packet زى الشخصية وهى بتمشى .. ال login .. ال Attak الخ .. اى شىء بيتم

2- طب فهمنا ال pk2 هنعدل بقى على انهو قسم ؟ .. هنعدل على القسم الاول .. ليه عشان اللغة دى شىء ظاهرى زى مانا قولت

3- هتعوزعشان تعمل الموضوع ده : برنامج OllyDbg 1.10

4- اول شىء هتفتح ال sro_client فى البرنامج وتسيبو يحمل .. بعد كده دوس كليك يمين فى اى حته فاضية وهات “Search for -> All referenced text strings”.

5- هيظهرلك نافذة جديدة .. دوس Home عشان تطلع لأول سطر .. بعد كده دوس كليك يمين وهات “Search for text”.

6- هتكتب فيها كلمة English و OK .. أول نتيجة هتطلعلك هتدوس عليها Double Click

7- كده انت دلوقتى فى المكان اللى فيه اللغات بتاعت الجيم .. واللى مربوطة بالملف Type.txt فى الميديا

8- دلوقتى دور على العربى .. هتلاقى جمبو لاين اوله JNZ هتدوس على ال Spacebar وتغير ال JNZ دى ل JMP .. كده انت خليت ال Client اما يشوف ال Line ده يعملو SKIP بمعنى يسيبو منه .. بعد كده دوس Assemble هتلاقى ال Line اتغير

9- دلوقتى هتروح للمكان اللى فيه ال English هتلاقى لاين برضو اوله JNZ هتدوس مسطرة وتغيرها ل NOP بعد كده دوس Assembly

10- لحد كده نقدر نقول خلصنا نص الطريق .. دلوقتى ال Client بيقرا فيلات اللغة الانجليزية لكن عمليا لسه مش بيقرا ال opcodes اللى بتطلع اول ما بتنزل بال Char

11- نكمل .. بعد كده هتدوس على الأيكون اللى فوق فى البرنامج اللى عليها R عشان نرجع لنتائج ال Texts اللى بحثنا عنها بعد كده هتدوس Home عشان تطلع لأول سطر وتدوس كليك يمين و Search for text واكتب "CharSelect "

12- هتسيب أول نتيجة طلعتلك وتدوس CTRL + L عشان تروح للى بعديها .. بعد كده دوس على اللى روحتلو ده Double Click عشان يوديك لمكان استجابة ال Client

13- هتنزل لتالت CALL ده اللى بيقرا اعدادات الكلينت بالنسبة للغة .. بمعنى انت عندك فى السطر اللى بعديه EAX + 0x160 ده كده بيشوف هل اللغة English ولا لا .. فطبعا بما ان الكلينت بتاعك لغته متغيرة فهيديلك نتائج غلط وهتاخد كراش ومع ذلك مش هنغير شىء هنا ! هتفتهم بعدين

14- دوس على Icon ال R تانى ودوس على Home تانى و كليك يمين Search for text واكتب “Please Execute”

15- انزل تحت شوية لحد ما تلاقى دول
JNZ SHORT sro_clie.0729646
CALL sro_clie.00A46D60
CALL NEAR ESI

هما مش تحت بعض على طول لكن هتلاقيهم .. المهم هتدوس على JNZ SHORT sro_clie.0729646 ده كليك يمين وتدوس على Binary وبعد كده Fill with NOPs

16- دلوقتى نقدر نغير الجزء اللى قولت عليه ل English .. هتدوس على اللاين مسطرة وتكتب “CALL 0x04C3D80” .. بعد كده هتدوس على اللاين الفاضى اللى بعديه مسطرة وتكتب ” MOV DWORD PTR DS:[EAX+0x160], 2”

17- وبكده نقدر نقول ألف مبروك غيرت اللغة .. دلوقتى وقت ال Saving هتدوس كليك يمين فى الصفحة الرئيسية
وتختار “Copy to executable->All Modifications”. بعد كده هتظهرلك نافذة اختار منها Copy All.

18- هتظهرلك نافذة جديدة دوس كليك يمين ودوس save file بأى اسم غير sro_client وتروح لل sro_client الاساسى وتسميه sro_client.exe.bak بعد كده تسمى ال sro_client بتاعك باسم sro_client

19- إدخل الجيم .. والف مبروك عليك


توقيع Jayden :
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
Jaydenvich


رد مع اقتباس