Skip to content

Support for opcodes + doc + new tests + static attribute loading from init()#24

Open
drake-mer wants to merge 32 commits into
evilsocket:masterfrom
drake-mer:master
Open

Support for opcodes + doc + new tests + static attribute loading from init()#24
drake-mer wants to merge 32 commits into
evilsocket:masterfrom
drake-mer:master

Conversation

@drake-mer

Copy link
Copy Markdown
Contributor

No description provided.

evilsocket and others added 28 commits November 24, 2017 19:52
Add integer object and some opcodes
- create a `src/` directory for the source tree
- move the test infra to pytest (and update README.md to reflect that)
- various py3 compatibility improvement
- adapt the way `Source` object are created to allow for line list
- create a `utils` directory for standalone boilerplate scripts
- Int can be '-0xaa' or '0xaa'
- use literal_eval for integers values
- insert in a data table the list of dalvik codes
- write some tests about parsing of expressions
- set up pytest.ini for doctest strings and ignore utils/
- create a new `parser` module for parsing smali expressions
- set the example in the `utils/` folder.
- update README.md accordingly
- ignore .pytest_cache in .gitignore
- Avoid mutable state in default argument
- allow passing a string as well as a dict
- Add static method calls scenario in tests
- Split test suit in test_static_calls and test_suite
- add a conftest.py file for generic code being reused
@drake-mer drake-mer force-pushed the master branch 2 times, most recently from efdeca5 to 9ed0c9b Compare July 23, 2018 21:46
@drake-mer drake-mer force-pushed the master branch 5 times, most recently from c0c9543 to 00fceb1 Compare July 29, 2018 21:27
[parser] add type argument parsing for method definitions

[parser] read methods from smali file

[clean init in string method]

[metaclass] embryonary support for java classes

The base idea is to use a metaclass for returning the class corresponding to the
smali code, and be able to instanciate such classes as python class and execute
seamlessly object methods and such.

pep8

[py3 compat] py3/py2 compat quirks

[emulator] various improvements

[doc] add a documentation folder

[emulator/scripting] add scripting support

[emulator] succ. method calls

Allow successive method calls in  method by:
  - resetting vm state after execution of a given method
  - passing the current vm state to the newly executed method

A cleaner design would eventually be needed ASAP but it works well in the
current state.

[doc] update doc for method calls

[doc] update README.md

[opcodes] add ushr-int opcode

[classes] add support for classes

[smaliv2] big refacto of architecture

[fix some tests]

[fix more tests]

[py2/3 compat update]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants