นี่คือการแก้ไขอย่างเป็นทางการสำหรับ Argus-Saf
สำหรับการทดสอบและเล่นกับ Argus-SAF คุณสามารถแยกจากโครงการ Argus-Saf-Playground ของเราซึ่งมีการตั้งค่าพื้นฐานสำหรับโครงการที่ได้รับการปรับปรุง ARGUS-SAF ด้วยรหัสสาธิตของวิธีการวิเคราะห์ประเภทที่แตกต่างกัน
Argus-SAF/
+--src/main/scala/org.argus.saf/Main.scala Main class for argus-saf CLI.
+--jawa Core static analysis data structures, "*.class"&"*.jawa" file managing, jawa compiler, class hierarchy, method body resolving, flow analysis, etc.
+--amandroid Android resource parsers, information collector, decompiler, environment method builder, flow analysis, etc.
+--jnsaf Java native interface analysis.
+--nativedroid Annotation based analysis using angr symbolic execution engine.
ขึ้นอยู่กับ 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
Open Intellij Idea, Select File -> New -> Project from existing sources (ถ้าจากหน้าต่างเริ่มต้น: Import Project ) ชี้ไปที่ไดเรกทอรีที่ที่เก็บ argus -SAF แล้วนำเข้าเป็น SBT project
เมื่อนำเข้าเสร็จแล้วให้ไปที่ไดเรกทอรี repo argus-saf และเรียกใช้
$ git checkout .idea
เพื่อให้ได้สิ่งประดิษฐ์และเรียกใช้การกำหนดค่าสำหรับโครงการแนวคิด
[ไม่บังคับ] เพื่อสร้าง Argus-SAF ให้ราบรื่นขึ้นคุณควรให้ขนาดฮีป 2GB แก่กระบวนการคอมไพเลอร์
หากคุณใช้ Scala Compile Server (ค่าเริ่มต้น): Settings > Languages & Frameworks > Scala Compile Server > JVM maximum heap size
หาก Scala Compile Server ถูกปิดใช้งาน: Settings > Build, Execution, Deployment > Compiler > Build process heap size
สร้าง Argus-SAF จากบรรทัดคำสั่ง: ไปที่ไดเรกทอรี repo 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 กำลังดำเนินการ ไม่สนใจไฟล์บิลด์ทั้งหมดในตอนนี้
หากต้องการมีส่วนร่วมใน Argus-SAF โปรดส่งคำขอดึงจากส้อมของคุณจากที่เก็บนี้!
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการสร้างและการพัฒนา Argus-SAF โปรดตรวจสอบแนวทางของเราสำหรับการบริจาค ผู้ที่ให้แนวคิดที่ยอดเยี่ยมอยู่ในรายการผู้สนับสนุน
หากคุณไม่ทราบว่าจะมีส่วนร่วมอะไรคุณสามารถชำระค่าตัวติดตามปัญหาด้วย help wanted ฉลากและเรียกร้องหนึ่งเพื่อช่วยตัวเองอุ่นเครื่องกับ Argus-Saf