
إطار تحليل ثابت قائم على Scala لتحليل bytecode Android و Java مع تحليل التدفق، وفك الترجمة، وتحليل الكود الأصلي عبر التنفيذ الرمزي.
هذا هو المستودع الرسمي لـ Argus-SAF.
للاختبار والتجربة مع Argus-SAF، يمكنك الاستنساخ من مشروع Argus-SAF-playground الخاص بنا، والذي يحتوي على الإعداد الأساسي لمشروع محسّن بـ Argus-SAF مع أمثلة تعليمية حول كيفية إجراء أنواع مختلفة من التحليل.
Argus-SAF/
+--src/main/scala/org.argus.saf/Main.scala الفئة الرئيسية لواجهة الأوامر لـ argus-saf.
+--jawa هياكل بيانات التحليل الثابت الأساسية، إدارة ملفات "*.class" و "*.jawa"، مترجم jawa، التسلسل الهرمي للفئات، حل جسم الطريقة، تحليل التدفق، إلخ.
+--amandroid محللات موارد Android، جامع المعلومات، مفكك التجميع، منشئ طرق البيئة، تحليل التدفق، إلخ.
+--jnsaf تحليل واجهة Java الأصلية.
+--nativedroid تحليل قائم على التعليقات التوضيحية باستخدام محرك التنفيذ الرمزي angr.
الاعتماد على Jawa
عن طريق تحرير
build.sbt:
libraryDependencies += "com.github.arguslab" %% "jawa" % VERSION
الاعتماد على Amandroid
عن طريق تحرير
build.sbt:
libraryDependencies += "com.github.arguslab" %% "amandroid" % VERSION
ملاحظة: الاعتماد على Amandroid سيضيف Jawa تلقائياً كاعتماد. إذا كنت تستخدم Maven أو Gradle، فيجب ترجمته إلى التنسيق المقابل.
المتطلبات: Java 10
$ java -jar argus-saf_***-version-assembly.jar
للمشاركة في تطوير Argus-SAF، تحتاج إلى:
تثبيت البرامج التالية:
استنساخ هذا المستودع وقم بنسخه إلى جهاز الكمبيوتر الخاص بك
$ git clone https://github.com/arguslab/Argus-SAF.git
افتح IntelliJ IDEA، واختر File -> New -> Project from existing sources
(إذا كانت الشاشة الأولية: Import Project)، ثم أشر إلى
الدليل الذي يوجد به مستودع Argus-SAF وقم باستيراده كمشروع SBT.
عند الانتهاء من الاستيراد، اذهب إلى دليل مستودع Argus-SAF وقم بتشغيل
$ git checkout .idea
للحصول على القطع الأثرية وإعدادات التشغيل لمشروع IDEA.
[اختياري] لجعل بناء Argus-SAF أكثر سلاسة، يجب إعطاء 2 جيجابايت من حجم الكومة لعملية المترجم.
إذا كنت تستخدم خادم تجميع Scala (الافتراضي):
Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size
إذا كان خادم تجميع Scala معطلاً:
Settings > Build, Execution, Deployment > Compiler > Build process heap size
بناء Argus-SAF من سطر الأوامر: اذهب إلى دليل مستودع Argus-SAF وقم بتشغيل
$ tools/bin/sbt clean compile test
$ tools/bin/sbt assembly
تثبيت JN-Saf و NativeDroid:
$ tools/scripts/install.sh
يمكنك تثبيت أي منهما عن طريق:
$ tools/scripts/install.sh jnsaf
$ tools/scripts/install.sh nativedroid
بعد تثبيت JN-Saf و NativeDroid. قم بتشغيل:
$ tools/scripts/benchmark_cli.sh droidbench
$ tools/scripts/benchmark_cli.sh iccbench
$ tools/scripts/benchmark_cli.sh nativeflowbench
$ tools/scripts/install.sh nativedroid
$ python nativedroid/nativedroid/server/native_droid_server.py /tmp/binaries nativedroid/nativedroid/data/sourceAndSinks/NativeSourcesAndSinks.txt nativedroid/data/sourceAndSinks/TaintSourcesAndSinks.txt
تكامل Bazel قيد التقدم. تجاهل جميع ملفات BUILD حالياً.
للمساهمة في Argus-SAF، يرجى إرسال طلب سحب من نسختك المستنسخة لهذا المستودع!
لمزيد من المعلومات حول بناء وتطوير Argus-SAF، يرجى أيضاً الاطلاع على إرشاداتنا للمساهمة. الأشخاص الذين قدموا أفكاراً ممتازة مدرجون في المساهمون.
إذا كنت لا تعرف ماذا تساهم به،
يمكنك الاطلاع على متعقب المشكلات مع علامة help wanted، واختيار واحدة للمساعدة في التعرف على Argus-SAF.