تخطَّ إلى المحتوى
SaferICO SaferICOأمن العقود الذكية
مفتوح — بلا اشتراك وبلا رسوم

اقرأ المعاملة قبل أن توقّعها.

محفظتك تعرض عليك «0xa9059cbb…» وتنتظر منك موافقة. المختبر يحوّل ذلك إلى جملة مفهومة: أي دالة تُستدعى، وبأي وسائط. وإلى جانبها ست أدوات تحليل أخرى تجيب على أسئلة يصعب الإجابة عليها يدوياً.

بلا اشتراكالكود لا يغادر متصفّحكواجهات برمجية عامّةلا يتّهم أحداً
//سبع أدوات

أسئلة يصعب الإجابة عليها يدوياً

كل أداة هنا تجيب على سؤال واحد محدّد — وتقول لك أيضاً ما الذي لا تستطيع الإجابة عليه.

فكّ بيانات المعاملة

الصق calldata أو مُعرِّف دالة من أربع بايتات أو اسم دالة. الأربع بايتات قد تتطابق مع أكثر من دالة — وأحياناً عمداً — فنعرض عليك كل الاحتمالات لا واحداً منها.

قراءة سبب الفشل

المعاملات الحديثة ترجع خطأً مخصّصاً بأربع بايتات لا يقرؤه أحد. نحوّله إلى الرسالة الحقيقية، ونسمّي رمز الـ panic بدل تركه رقماً ستّ عشرياً.

ما الأصليّ في هذا العقد؟

معظم توكنات ERC-20 هي OpenZeppelin زائد بضع عشرات من الأسطر. نطرح بصمات المكتبات أولاً، فيبقى الجزء الذي كتبه صاحب المشروع فعلاً — وهو المكان الذي تُخبَّأ فيه التعديلات.

قارن عقدين

تغيير أسماء المتغيّرات وإعادة التنسيق لا يخفي شيئاً — المقارنة تجري على بنية الرموز لا على النص. تُبلِغك بحجم التطابق، ولا تقول أبداً من نسخ من مَن.

من أين جاء هذا المال؟

نتتبّع إلى ثلاث خطوات للخلف حتى أول من موّل العنوان، مع المعاملة التي تثبت كل خطوة. القرب ليس تهمة، والصفحة تقول ذلك صراحةً.

أقصر مسار بين عنوانين

أنت تُحضِر العنوانين، فلا قائمة اتهام هنا ولا ادّعاء. محدود بثلاث خطوات — و«لم نجد مساراً ضمن هذه الحدود» جملة صادقة، أما «لا يوجد مسار» فليست جملة تستطيع هذه الأداة قولها.

افحص مستودعاً عاماً

نحدّد قائمة الملفات، ثم متصفّحك أنت يجلبها من GitHub ويحلّلها محلّياً — الكود لا يمرّ بخوادمنا. المستودعات العامة فقط: لا يُرسَل أي مفتاح وصول إطلاقاً.

الأدوات نفسها (الماسح، لوحات التحكّم، مساحة عمل SAFI) واجهتها بالإنجليزية حالياً. هذه الصفحات تشرح لك كل شيء بالعربية قبل أن تدخل إليها.

الانضباط الذي يميّزها

أدوات التتبّع سهل أن تتحوّل إلى آلة اتهام. هذه مبنية على رفض ذلك.

⚖️ القرب ليس تهمة

خطوة واحدة بين عنوانين تصف الشبكة، لا الأشخاص. أي محفظة سحبت من منصّة تداول كبيرة هي على بُعد خطوة واحدة من عشرات الآلاف من العناوين، ومنها بالضرورة عناوين سيّئة.

لذلك تعرض الأداة المعاملة التي تثبت كل خطوة، وتترك الحكم لك. ولا تصف عنواناً بأنه «محتال»، لأن ذلك استنتاج عن نيّة والبلوكتشين لا يسجّل النوايا.

01تقول ما قاسته، لا ما تظنّه

مُعرِّف الدالة من أربع بايتات يمكن أن يتطابق مع أكثر من توقيع، وهذا التصادم يُصنَع أحياناً عمداً لتضليل من يقرأ بسرعة. لهذا نعرض كل التطابقات؛ عرض واحد منها بثقة هو بالضبط الخطأ الذي يستغلّه المهاجم.

02«لم نجد» ليست «لا يوجد»

البحث عن مسار محدود بثلاث خطوات وبعدد محدّد من الاستعلامات. حين لا نجد شيئاً، الجملة الصادقة هي أننا لم نجد ضمن تلك الحدود.

الفرق بين الجملتين هو الفرق بين أداة تستطيع الوثوق بها وأداة تقول لك ما تحب سماعه.

03التشابه ليس سرقة

درجة تشابه خام بين عقدَي ERC-20 تقيس أساساً شهرة OpenZeppelin. نطرح بصمات المكتبات أولاً حتى تكون النتيجة عن الكود الذي كُتب فعلاً لهذا المشروع.

وحتى حينها، تُبلِغ الأداة عن مقدار التطابق فقط. أيّهما نسخ من الآخر سؤال لا يجيب عليه الكود — يجيب عليه التاريخ، وأنت من يقرؤه.

//أسئلة

عن المختبر

هل أحتاج اشتراكاً؟
لا. مختبر التحليل مفتوح بلا حساب وبلا رسوم، وكل أدواته متاحة أيضاً كنقاط نهاية عامّة للبرمجة إن أردت استدعاءها من كودك.
هل يُرفَع كود مستودعي إليكم؟
لا. نحدّد قائمة الملفات فقط، ثم متصفّحك أنت يجلب كل ملف من GitHub ويحلّله محلّياً. الكود لا يمرّ بخوادمنا في أي خطوة، والمستودعات الخاصة غير مدعومة أصلاً لأننا لا نرسل أي مفتاح وصول.
لماذا يعطيني فكّ الترميز أكثر من نتيجة؟
لأن مُعرِّف الدالة أربع بايتات فقط، وأكثر من توقيع قد يعطي المُعرِّف نفسه — أحياناً بالصدفة وأحياناً بتصميم مقصود. إخفاء الاحتمالات الأخرى وعرض واحد بثقة هو تحديداً ما يستغلّه المهاجم.
هل يعني ظهور عنوان في التتبّع أنه متورّط؟
لا، ولا تقول الأداة ذلك. هي تعرض المعاملات التي تربط العناوين والمصدر الذي وسمها إن وُجد. الاستنتاج قرارك، والقرب وحده ليس دليلاً.

افحص العقد قبل أن تحوّل أي مبلغ

الصق عنوان العقد لترى صلاحيات المالك والسيولة ونتيجة محاكاة البيع قبل أن تخاطر بأموالك. رسم صغير لكل فحص يُعرض قبل التوقيع — ومشمول بلا حدود مع أي اشتراك.