Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/philomates/dalvik-abstract-interpreter
Abstract Interpreter for Dalvik bytecode
https://github.com/philomates/dalvik-abstract-interpreter
Last synced: 4 days ago
JSON representation
Abstract Interpreter for Dalvik bytecode
- Host: GitHub
- URL: https://github.com/philomates/dalvik-abstract-interpreter
- Owner: philomates
- License: other
- Created: 2012-06-30T00:12:28.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2012-07-13T17:43:35.000Z (over 12 years ago)
- Last Synced: 2024-11-29T14:51:02.203Z (2 months ago)
- Language: Racket
- Size: 348 KB
- Stars: 10
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-racket-and-scheme - dalvik-abstract-interpreter
README
Dalvik Abstract Interpreters
====================This is a work in progress abstract interpreter for the Dalvik Bytecode.
This repository is a snapshot from our private codebase, and will probably see minimal updates.
Interpreter Descriptions
------------------------
interpreters/abstract-interpreter.rkt:
- k-CFA style abstract interpreter adapted from concrete CESK machine. Explores approximation of a program's state space.interpreters/concrete-interpreter.rkt:
- partially implemented cesk machine that should be able to run Dalvik implementations fibonacci or factorial.How to Run
----------Enter an Android app directory:
$ cd example_code/LambdaInterpreterApp
Notice already built Android app and the intermediary dex file:
$ ls bin/*.apk
$ ls bin/*.dex
Run the following to dedex .dex file, transform dedexed files into sexpressions readable by Racket, and copy stubbed out Java libraries:
$ sh ../../bin/project2sexpr
Change the hard coded "app-directory" and "starting-function" in interpreters/abstract-interpreter.rkt and run in DrRacket. Uncomment last line of abstract-interpreter.rkt to create a graphviz dot file for graph creation.
Acknowledgements
----------------This code is part of a collaborative research project conducted at the University of Utah's [U-Combinator Lab](http://ucombinator.org/).
While much of this work is my own, all credit must go to the U-Combinator Lab.