
Neto | أداة لتحليل إضافات المتصفح
مشروع Neto هو حزمة Python 3 صُممت لتحليل وكشف الميزات المخفية لإضافات وملحقات المتصفحات المعروفة مثل Firefox وChrome. يقوم بأتمتة عملية فك ضغط الملفات المجمعة لاستخراج هذه الميزات من الموارد ذات الصلة في الإضافة مثل manifest.json ومجلدات التوطين وملفات Javascript وHTML المصدرية.
لتثبيت الحزمة، يمكن للمستخدم اختيار pip3.
pip3 install -e . --user
بالإمكان أيضًا تثبيتها بصلاحيات المسؤول باستخدام sudo بشكل اختياري:
sudo pip3 install -e .
يمكن التحقق من التثبيت الناجح باستخدام:
python3 -c "import neto; print(neto.__version__)"
لإجراء تحليل لإضافة، يمكن للمحلل كتابة ما يلي:
neto analysis -u https://yoururl.com/extension-name.xpi
سيتم تنزيل الإضافة تلقائيًا وفك ضغطها افتراضيًا في المجلد المؤقت للنظام.
ومع ذلك، يمكن للمحلل أيضًا بدء تحليل إضافة مخزنة محليًا:
neto analysis -e ./my-extension-name.xpi
بعد إجراء التحليل الثابت، سيتم إنشاء ملف Json يُخزن افتراضيًا في مجلد جديد يُسمى output.
إذا كنت تستخدم Python، يمكنك أيضًا استيراد الحزمة كمكتبة في وحدات Python الخاصة بك:
>>> from neto.lib.extensions import Extension
>>> my_extension = Extension ("./sample.xpi")
>>> my_extension.filename
'adblock_for_firefox-3.8.0-an+fx.xpi'
>>> my_extension.digest
'849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'
بالإضافة إلى الوصول إلى العناصر الموجودة في الإضافة باستخدام الخصائص، يمكن للمحلل دائمًا الوصول إليها كقاموس:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
إذا لم تكن تستخدم Python، يمكنك استخدام خادم JSON RPC:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Developed by @ElevenPaths
Version: 0.5.0b
* Running on http://localhost:14041/ (Press CTRL+C to quit)
يمكنك بعد ذلك تشغيل الأوامر باستخدام مكتبة JSON RPC المفضلة لديك لكتابة عميل (لقد كتبنا عرضًا توضيحيًا قصيرًا في مجلد bin) أو حتى curl:
curl --data-binary '{"id":0, "method":"remote", "params":["https://example.com/myextension.xpi"], "jsonrpc": "2.0"}' -H 'content-type:text/json;' http://localhost:14041
فيما يلي قائمة غير شاملة بالميزات المضمنة في هذه الحزمة:
eval().