GithubHelp home page GithubHelp logo

archived-v2-jawa's Introduction

Jawa Gitter

This is official reporitory for the Jawa. Jawa is a subset of pilar IR, which are carefully choosen to represent java&dalvik bytecodes.

Repository structure

jawa/
+--org.sireum                     Import all nesasarry projects or libs from Sireum. Used for support eclipse plugin dependency management.
+--sireum-jawa                    Core static analysis data structures, "*.class"&"*.pilar" file managing, class hierarchy, method body resolving, etc.
+--sireum-jawa-alir               ALl the flow related analysis for Pilar IR, including call graph building, control flow graph building, data flow analysis, data dependent analysis, points to algorithms, side effect analysis, etc.
+--sireum-jawa-compiler           Independent jawa compiler, which providing interactive nature for jawa parsing, which required for IDE kind of environment.
+--sireum-jawa-test               Test suite.

How to contribute

To contribute to the Jawa Core, Jawa Alir, Jawa Compiler, Jawa Concurrent, please send us a pull request from your fork of this repository!

For more information on building and developing Amandroid, please also check out our guidelines for contributing. People who provided excellent ideas or more than 200 LOC of codes are listed in contributor.

What to contribute

If you don't know what to contribute, please check out our challenges need to resolve.

archived-v2-jawa's People

Contributors

fgwei avatar sankardas avatar robby-phd avatar yurushao avatar

Stargazers

 avatar geneblue avatar  avatar

Watchers

James Cloos avatar  avatar Jenkins SAnToS avatar sankardas roy avatar  avatar

archived-v2-jawa's Issues

The issue of boolean_v1 and int_v1

This will result in the failure of DX, because the lately-used variable will be uninitialized if it gets its value from v1 before refactoring.

The test app for this is Sireum/apps/amandroid/sources/icc-bench/FieldAndObjectSensitivity/FieldAndObjectSensitivity_FieldFlowSensitivity1.apk.

StringIndexOutOfBoundsException when calling RefactorJawa$.resolveCallStatement on interface methods

When creating a new argus project on the attached apk, the following error pops after pressing the finish button:

java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1955)
at org.sireum.jawa.sjc.parser.LocationDefSymbol.location(JawaAstNode.scala:257)
at org.sireum.jawa.sjc.parser.JawaParser$$anonfun$body0$1$$anonfun$1.apply(JawaParser.scala:304)
at org.sireum.jawa.sjc.parser.JawaParser$$anonfun$body0$1$$anonfun$1.apply(JawaParser.scala:304)
at scala.collection.LinearSeqOptimized$class.find(LinearSeqOptimized.scala:113)
at scala.collection.immutable.List.find(List.scala:84)
at org.sireum.jawa.sjc.parser.JawaParser$$anonfun$body0$1.apply(JawaParser.scala:304)
at org.sireum.jawa.sjc.parser.JawaParser$$anonfun$body0$1.apply(JawaParser.scala:301)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.sireum.jawa.sjc.parser.JawaParser.body0(JawaParser.scala:300)
at org.sireum.jawa.sjc.parser.JawaParser.methodDeclaration0(JawaParser.scala:249)
at org.sireum.jawa.sjc.parser.JawaParser.loop$5(JawaParser.scala:231)
at org.sireum.jawa.sjc.parser.JawaParser.methodDeclarations(JawaParser.scala:237)
at org.sireum.jawa.sjc.parser.JawaParser.classOrInterfaceDeclaration0(JawaParser.scala:59)
at org.sireum.jawa.sjc.parser.JawaParser.loop$1(JawaParser.scala:34)
at org.sireum.jawa.sjc.parser.JawaParser.compilationUnit(JawaParser.scala:39)
at org.sireum.jawa.sjc.parser.JawaParser$.parse(JawaParser.scala:920)
at org.sireum.jawa.sjc.parser.JawaParser$.parse(JawaParser.scala:911)
at org.sireum.jawa.sjc.refactoring.RefactorJawa$.resolveCallStatement(RefactorJawa.scala:489)
at org.sireum.jawa.sjc.refactoring.RefactorJawa$.apply(RefactorJawa.scala:25)
at org.arguside.util.decompile.ApkDecompiler$$anonfun$removeSupportLibAndGen$2.apply(ApkDecompiler.scala:68)
at org.arguside.util.decompile.ApkDecompiler$$anonfun$removeSupportLibAndGen$2.apply(ApkDecompiler.scala:66)
at scala.collection.immutable.List.foreach(List.scala:381)
at org.arguside.util.decompile.ApkDecompiler$.removeSupportLibAndGen(ApkDecompiler.scala:65)
at org.arguside.util.decompile.ApkDecompiler$.decompile(ApkDecompiler.scala:24)
at org.arguside.ui.internal.wizards.NewArgusProjectCreator$$anon$2.run(NewArgusProjectCreator.scala:220)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2313)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2295)
at org.arguside.ui.internal.wizards.NewArgusProjectCreator$.create(NewArgusProjectCreator.scala:279)
at org.arguside.ui.internal.wizards.NewArgusProjectWizard.performFinish(NewArgusProjectWizard.scala:65)
at com.android.ide.eclipse.adt.internal.wizards.templates.TemplateWizard$1.run(TemplateWizard.java:201)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

the relevant pilar file:
/home/wuzhou/runtime-EclipseApplication/abc/src/com/google/ads/AppEventListener.pilar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.