
استغلال لـ CVE-2020-24370 يستهدف مترجم Lua 5.3، يوضح ثغرة أمنية في بيئة تشغيل لغة البرمجة النصية.
dl.display dd { padding-bottom: 0.2em ; }
tt, kbd, code { font-size: 12pt ; }
مرحباً بك في Lua 5.3
Lua هي لغة برمجة نصية قوية وسريعة وخفيفة الوزن وقابلة للتضمين، طورها فريق في PUC-Rio، الجامعة البابوية الكاثوليكية في ريو دي جانيرو بالبرازيل. Lua هي برمجيات حرة تستخدم في العديد من المنتجات والمشاريع حول العالم.
الموقع الرسمي لـ Lua يوفر معلومات كاملة عن Lua، بما في ذلك ملخص تنفيذي و توثيق محدث، خاصة الدليل المرجعي، والذي قد يختلف قليلاً عن النسخة المحلية الموزعة في هذه الحزمة.
Lua موزعة على شكل كود مصدري. تحتاج إلى بنائه قبل استخدامه. بناء Lua يجب أن يكون سهلاً لأن Lua مطبقة بلغة ANSI C نقية وتُترجم دون تعديل على جميع المنصات المعروفة التي تحتوي على مترجم ANSI C. Lua تترجم أيضاً دون تعديل كلغة C++. التعليمات أدناه لبناء Lua مناسبة للأنظمة الشبيهة بـ Unix. انظر أيضاً تعليمات للأنظمة الأخرى و خيارات التخصيص.
إذا لم يكن لديك الوقت أو الرغبة لتجميع Lua بنفسك، احصل على نسخة ثنائية من LuaBinaries. جرب أيضاً LuaDist، توزيعة متعددة المنصات لـ Lua تتضمن بطاريات.
في معظم المنصات الشبيهة بـ Unix، فقط قم بـ "make" مع هدف مناسب. إليك التفاصيل.
aix bsd c89 freebsd generic linux macosx mingw posix solaris
إذا كانت منصتك مدرجة، فقط قم بـ "make xxx"، حيث xxx هو اسم منصتك.
إذا لم تكن منصتك مدرجة، جرب الأقرب أو posix، generic، c89، بهذا الترتيب.
إذا كنت تستخدم Linux وتحصل على أخطاء في التجميع، تأكد من تثبيت حزمة تطوير readline (والتي غالباً ما تسمى libreadline-dev أو readline-devel). إذا حصلت على أخطاء ربط بعد ذلك، فجرب "make linux MYLIBS=-ltermcap".
بمجرد بناء Lua، قد ترغب في تثبيته في مكان رسمي في نظامك. في هذه الحالة، قم بـ "make install". المكان الرسمي وطريقة تثبيت الملفات يتم تعريفها في ملف Makefile. ستحتاج على الأرجح إلى الصلاحيات المناسبة لتثبيت الملفات.
لبناء وتثبيت Lua في خطوة واحدة، قم بـ "make xxx install"، حيث xxx هو اسم منصتك.
لتثبيت Lua محلياً، قم بـ "make local". هذا سينشئ دليلاً install مع أدلة فرعية bin و include و lib و man و share، ويقوم بتثبيت Lua كما هو مدرج أدناه.
لتثبيت Lua محلياً، ولكن في دليل آخر، قم بـ "make install INSTALL_TOP=xxx"، حيث xxx هو الدليل الذي اخترته. يبدأ التثبيت من دليلي src و doc، لذا كن حذراً إذا لم يكن INSTALL_TOP مساراً مطلقاً.
هذه هي الأدلة الوحيدة التي تحتاجها للتطوير. إذا كنت تريد فقط تشغيل برامج Lua، فأنت تحتاج فقط الملفات في bin و man. الملفات في include و lib ضرورية لتضمين Lua في برامج C أو C++.
ثلاثة أنواع من الأشياء يمكن تخصيصها عن طريق تحرير ملف:
لا تحتاج فعلياً لتحرير Makefile لأنه يمكنك تعيين المتغيرات ذات الصلة في سطر الأوامر عند استدعاء make. ومع ذلك، ربما من الأفضل تحرير وحفظ Makefile لتسجيل التغييرات التي قمت بها.
من ناحية أخرى، إذا كنت بحاجة لتخصيص بعض ميزات Lua، ستحتاج لتحرير src/luaconf.h قبل بناء وتثبيت Lua. الملف المحرر سيكون هو المثبت، وسيستخدم من قبل أي عملاء Lua تقوم ببنائهم، لضمان الاتساق. تخصيصات إضافية متاحة للخبراء عن طريق تحرير مصادر Lua.
إذا كنت لا تستخدم أدوات Unix المعتادة، فإن تعليمات بناء Lua تعتمد على المترجم الذي تستخدمه. ستحتاج لإنشاء مشاريع (أو أي شيء يستخدمه المترجم) لبناء المكتبة، المفسر، والمترجم، كما يلي:
لاستخدام Lua كمكتبة في برامجك الخاصة، ستحتاج لمعرفة كيفية إنشاء واستخدام المكتبات باستخدام المترجم الخاص بك. علاوة على ذلك، لتحميل مكتبات C ديناميكياً لـ Lua، ستحتاج لمعرفة كيفية إنشاء مكتبات ديناميكية وتحتاج للتأكد من أن دوال واجهة Lua API قابلة للوصول لتلك المكتبات الديناميكية — لكن لا تقم بربط مكتبة Lua داخل كل مكتبة ديناميكية. بالنسبة لـ Unix، نوصي بأن تكون مكتبة Lua مربوطة بشكل ثابت مع البرنامج المضيف ويتم تصدير رموزها من أجل الربط الديناميكي؛ ملف src/Makefile يفعل ذلك لمفسر Lua. بالنسبة لـ Windows، نوصي بأن تكون مكتبة Lua عبارة عن DLL. في جميع الحالات، يجب ربط المترجم luac بشكل ثابت.
كما ذكر أعلاه، يمكنك تحرير src/luaconf.h لتخصيص بعض الميزات قبل بناء Lua.
إليك التغييرات الرئيسية المقدمة في Lua 5.3. الدليل المرجعي يسرد عدم التوافقيات التي كان لا بد من تقديمها.
إليك التغييرات الأخرى المقدمة في Lua 5.3:
ipairs ومكتبة الجداول تحترمان الميتاميثودات
string.dump
table.move
string.pack
string.unpack
string.packsize
lua_gettable والدوال المشابهة تعيد نوع القيمة الناتجة
lua_dump
lua_geti
lua_seti
lua_isyieldable
lua_numbertointeger
lua_rotate
lua_stringtonumber
arg متاح لجميع الأكواد
Lua هي برمجيات حرة موزعة بموجب شروط
ترخيص MIT
المعاد إنتاجه أدناه؛
يمكن استخدامها لأي غرض، بما في ذلك الأغراض التجارية،
بدون أي تكلفة على الإطلاق ودون الحاجة لسؤالنا.
الشرط الوحيد هو أنه إذا استخدمت Lua، فعليك منحنا الفضل من خلال تضمين إشعار حقوق النشر المناسب في مكان ما في منتجك أو توثيقه.
للتفاصيل، انظر هذا.
Copyright © 1994–2017 Lua.org, PUC-Rio.يُمنح الإذن بموجب هذا، مجاناً، لأي شخص يحصل على نسخة من هذا البرنامج والملفات المرتبطة به (البرنامج)، للتعامل في البرنامج دون قيود، بما في ذلك دون حصر حقوق الاستخدام، النسخ، التعديل، الدمج، النشر، التوزيع، الترخيص، و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين يتم توفير البرنامج لهم بالقيام بذلك، وفقاً للشروط التالية:
يجب تضمين إشعار حقوق النشر أعلاه وهذا الإشعار بالإذن في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
البرنامج مقدم "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق، الملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال لن يكون المؤلفون أو أصحاب حقوق النشر مسؤولين عن أي دعوى، أضرار أو غيرها من المسؤولية، سواء في إجراء تعاقدي أو تقصيري أو غير ذلك، ناشئة عن، من أو فيما يتعلق بالبرنامج أو الاستخدام أو التعاملات الأخرى في البرنامج.
آخر تحديث: Mon Jun 18 22:57:33 -03 2018