
أداة لاختبار فعال لطبقة الربط في لغات البرمجة النصية.
==================================================================================== يستخدم Cooper الطفرات التعاونية لاختبار ربط كود لغات البرمجة النصية للعثور على مشكلات سلامة الذاكرة. وتعمل الطفرات التعاونية على تعديل كود البرنامج النصي وكائنات المستند ذات الصلة في وقت واحد لاستكشاف مسارات التعليمات البرمجية المختلفة لكود الربط. لدعم الطفرات التعاونية، نستنتج العلاقة بين كود البرنامج النصي وكائنات المستند لتوجيه الطفرة ثنائية الأبعاد. طبقنا أداتنا Cooper على ثلاثة برامج تجارية شائعة، وهي Adobe Acrobat وFoxit Reader وMicrosoft Word. اكتشف Cooper 134 خطأً غير معروف سابقًا، وأسفرت عن 33 إدخال CVE و22 ألف كمكافآت عن الأخطاء. يحتوي Cooper على ثلاثة مكونات:
يوضح الرسم البياني أدناه نظرة عامة على Cooper.
لمزيد من التفاصيل، يرجى الاطلاع على ورقتنا المنشورة في ندوة الأمن السنوية التاسعة والعشرين لأنظمة الشبكات والأنظمة الموزعة (NDSS 2022).
pip install pywin32تحتاج إلى تجهيز بعض عينات PDF (Word) ووضعها في مجلد سيُستخدم كـ sample_dir.
يجب أن يتراوح عدد عينات PDF (Word) بين 10,000 و20,000.
لقد جهزنا 200 عينة PDF في DropBox،
و214 عينة Word في DropBox.
يمكنك الاختبار بهذه العينات الصغيرة، ولكن للحصول على نتائج أفضل، استخدم المزيد من العينات.
$ python PdfSolution.py/WordSolution.py <sample_dir> <data_dir> <output_dir> <generate_cnt>
<sample_dir>: the absolute path of raw pdf samples folder
<data_dir>: the absolute path for mid data folder
<output_dir>: the absolute path for folder storing generated samples
<generate_cnt>: the amount how many input Cooper will generate
Cooper: Testing the Binding Code of Scripting Languages with Cooperative Mutation
@inproceedings{xu:cooper,
title = {{Cooper: Testing the Binding Code of Scripting Languages with Cooperative Mutation (To Appear)}},
author = {Peng Xu and Yanhao Wang and Hong Hu and Purui Su},
booktitle = {Proceedings of the 29th Annual Network and Distributed System Security Symposium (NDSS 2022)},
month = {apr},
year = {2022},
address = {San Diego, CA},
}