
Scala-आधारित स्थैतिक विश्लेषण फ्रेमवर्क जो Android और Java बाइटकोड के लिए है, जिसमें प्रवाह विश्लेषण, डीकंपाइलेशन, और प्रतीकात्मक निष्पादन के माध्यम से नेटिव कोड विश्लेषण शामिल है।
यह 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
IntelliJ IDEA खोलें, File -> New -> Project from existing sources चुनें
(प्रारंभिक विंडो से: Import Project), उस निर्देशिका पर इंगित करें
जहाँ Argus-SAF भंडार है और फिर इसे SBT project के रूप में आयात करें।
जब आयात समाप्त हो जाए, तो Argus-SAF रेपो निर्देशिका पर जाएं और चलाएं
$ git checkout .idea
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 बनाएं: 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 से स्वयं को गर्म करने में मदद के लिए एक दावा कर सकते हैं।