
PwnAdventure3 سيرفر
مرحبًا بك في جزيرة Pwnie!
مغامرة Pwn 3: جزيرة Pwnie هي لعبة MMORPG مفتوحة العالم الحقيقي من منظور الشخص الأول، تم إصدارها بشكل محدود، وتدور أحداثها في جزيرة جميلة حيث يمكن أن يحدث أي شيء. وذلك لأن هذه اللعبة معرضة عمدًا لجميع أنواع الاختراقات السخيفة! الطيران، النقد اللامتناهي، وأكثر من ذلك، كلها على بُعد تغيير عميل أو وكيل شبكة. هل أنت مستعد للفوضى؟!
هذا الإعداد جزء من سلسلة فيديوهات تغطي الاختراقات والتحديات المختلفة في هذه اللعبة.
باستثناء الفيديو التمهيدي العادي (Let's Play) في البداية، تغطي السلسلة بأكملها جميع تحديات مغامرة Pwn 3 في أقل من 4 ساعات.
من ملف README الرسمي:
2 غيغابايت على الأقل من ذاكرة الوصول العشوائي (RAM)، المزيد من الذاكرة يتيح تشغيل المزيد من النسخ على جهاز واحد
لا يحتاج خادم اللعبة إلى أي أجهزة رسومية ويعمل فقط عبر وحدة التحكم. من المعروف أنه يعمل بشكل جيد على Amazon AWS و Digital Ocean VPS.
يتطلب خادم اللعبة الكثير من الذاكرة لتشغيله، لكنه يستخدم fork وذاكرة النسخ عند الكتابة (copy-on-write) للسماح بتشغيل العديد من النسخ على مضيف واحد.
بالنسبة لخادم بذاكرة 2 غيغابايت، لا يُنصح بتشغيل أكثر من 5 نسخ، لكن خادم بذاكرة 8 غيغابايت يمكنه عادةً تشغيل العدد الذي تستطيع وحدة المعالجة المركزية التعامل معه.
يُنصح باستخدام 2-3 نسخ لكل نواة معالج إذا كانت الذاكرة كافية. قد تتمكن من تشغيل 4-5 نسخ لكل نواة، لكن القيام بذلك قد يسبب بعض البطء البسيط.
ملفات العميل والخادم تزيد عن 2 غيغابايت أيضًا، لذلك يلزم وجود عدة غيغابايت من مساحة القرص الحرة.
هناك عدة طرق لبناء ونشر خادمك الخاص.
أحد الخيارات هو تنزيل واتباع الإرشادات المضمنة في ملف README للملفات الرسمية. يمكن العثور على التنزيل على الموقع الرسمي هنا http://www.pwnadventure.com/#server.
@Beaujeant أنشأ دليلًا ممتازًا وسهل المتابعة خطوة بخطوة. كان أيضًا أساس بناء صورة Docker من الخيار 3. يمكن العثور على الدليل هنا: https://github.com/beaujeant/PwnAdventure3/blob/master/INSTALL-server.md.
هذا الخيار سهل للغاية، طالما أن docker و docker-compose مثبتة على المضيف. يجعل من السهل تشغيل وإيقاف تشغيل خادم دون إجراء تغييرات على نظام المضيف الفعلي.
أولاً، قم بجمع جميع الملفات الضرورية:
git clone https://github.com/LiveOverflow/PwnAdventure3.git
cd PwnAdventure3
wget http://pwnadventure.com/pwn3.tar.gz
tar -xvf pwn3.tar.gz
لتشغيل الخادم، يجب تثبيت docker و docker-compose. Docker يتحرك بسرعة، لذا من الجيد اتباع الخطوات الرسمية الحالية للتثبيت (والتي قد تتضمن أيضًا إزالة إصدار نظام أقدم من docker):
docker-compose: https://docs.docker.com/compose/install/docker باستخدام: sudo usermod -a -G docker $USER. أعد التشغيل أو سجل الدخول مرة أخرى وتحقق باستخدام id أن المستخدم جزء من مجموعة docker.ثم ببساطة قم ببناء الصورة وتشغيل الخادم الرئيسي وخادم اللعبة:
docker-compose build
docker-compose up
يمكن أيضًا تشغيل docker-compose up في وضع الخلفية/المنفصل باستخدام -d.
أولاً، قم بتنزيل العميل من الموقع الرسمي هنا: http://www.pwnadventure.com/#downloads
لكي يتصل العميل بالخادم الجديد، يجب تعديل ملف server.ini الخاص بالعميل. الخادم الذي تم تشغيله بواسطة docker يتوقع استخدام أسماء المضيفين master.pwn3 و game.pwn3 (يمكن نظريًا تغييرها في ملفات docker/الإعداد).
يجب أن يبدو ملف server.ini للعميل شيئًا كهذا:
[MasterServer]
Hostname=master.pwn3
Port=3333
[GameServer]
Hostname=game.pwn3
Port=3000
Username=
Password=
Instances=
تأكد من أن العميل يمكنه الوصول إلى هذه المضيفات، على سبيل المثال عن طريق إضافتها إلى ملف /etc/hosts. في هذا المثال، الخادم يعمل على 192.168.178.57 وسيكون الإدخال لهما:
192.168.178.57 master.pwn3
192.168.178.57 game.pwn3
تحذير: استخدام IP كـ Hostname في server.ini لا يعمل! قضيت ساعتين أحاول معرفة ما هو الخطأ.
لإيقاف الخادم، اكتب ببساطة docker-compose down.
تحذير: ملف قاعدة البيانات غير دائم - إيقاف الحاوية يعيد تعيين كل شيء. لذا قم بعمل نسخ احتياطي أولاً.
$ docker-compose build
Building init
ERROR: Error processing tar file(exit status 1): write /client/PwnAdventure3_Data/PwnAdventure3/PwnAdventure3/Content/Paks/Characters.pak: no space left on device
ج: احصل على مساحة قرص أكبر.
$ docker-compose build
Building init
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
ج: ربما مستخدمك ليس جزءًا من مجموعة docker أو خدمة docker لا تعمل. sudo usermod -a -G docker pwn3، تحقق باستخدام id. أو service docker restart.
تحقق مما إذا كان الأرشيف تالفًا
$ md5sum pwn3.tar.gz
d3f296461fa57996018ce0e4e5a653ee pwn3.tar.gz
$ sha1sum pwn3.tar.gz
022bd5174286fd78cd113bc6da6d37ae9af1ae8e pwn3.tar.gz
خطأ في الاتصال: تعذر الاتصال بالخادم الرئيسي
هذا يعني غالبًا أن الخادم الرئيسي غير قابل للوصول.
[MasterServer] في ملف server.ini للعميل.master.pwn3 من المضيف على نظامك؟/etc/hosts؟3333؟sudo netstat -tulpn
tcp6 0 0 :::3333 :::* LISTEN 31913/docker-proxydocker ps إذا كانت الحاويتان قيد التشغيل
880f93374070 pwn3server "/opt/pwn3/setup/mas…" 0.0.0.0:3333->3333/tcp, 5432/tcp pwnadventure3_master_1الانتظار في قائمة انتظار الاتصال...
هذا يعني أن الخادم الرئيسي قابل للوصول وينتظر الآن خادم لعبة مجاني يمكن تخصيصه للعميل. هذا يعني غالبًا أن خادم اللعبة لا يعمل، أو لم يتمكن من الاتصال بالخادم الرئيسي.
3000-3005؟sudo netstat -tulpn
tcp6 0 0 :::3000 :::* LISTEN 32160/docker-proxypwnadventure3_game_1 قيد التشغيل؟ تحقق باستخدام docker ps -a
84343f81034f pwn3server "/opt/pwn3/setup/gam…" 0.0.0.0:3000-3010->3000-3010/tcp, 5432/tcp pwnadventure3_game_1docker-compose up: line 1: 7 Killed ./PwnAdventure3Server; pwnadventure3_game_1 exited with code 137
تم استخدام هذه الإصدارات أثناء الاختبار كمضيف:
$ uname -a
Linux ubuntu 4.4.0-31-generic #50~14.04.1-Ubuntu SMP Wed Jul 13 01:07:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ docker-compose version
docker-compose version 1.19.0, build 9e633ef
docker-py version: 2.7.0
CPython version: 2.7.13
OpenSSL version: OpenSSL 1.0.1t 3 May 2016
$ docker --version
Docker version 17.12.1-ce, build 7390fc6
الأبطال الحقيقيون هم الأشخاص الذين بنوا اللعبة <3
مغامرة Pwn 3 هي من بنات أفكار Rusty Wagner. وهو المسؤول عن الفكرة والتخطيط وجميع التنفيذ تقريبًا (البرمجة، تصميم المستويات، المهام، وما إلى ذلك). بدونه، لم تكن اللعبة لتوجد! شكر خاص أيضًا لمنظمي Ghost in the Shellcode لدعمهم أثناء التطوير والاختبار.
بواسطة Vector35 - https://vector35.com/ (الشركة وراء مفكك الشفرات الشهير Binary Ninja)