Git Product home page Git Product logo

Comments (6)

Storyyeller avatar Storyyeller commented on May 8, 2024 1

Python, though I might decide to switch to Rust at some point in the future. It's not that important right now as neither is being worked on, but the Python version is easier to use and is one patch ahead of the Rust version (2a94b40)

from enjarify.

Storyyeller avatar Storyyeller commented on May 8, 2024

Which app is that? I didn't bother supporting annotations because that would complicate things and it didn't seem important, but if you have an example where it is necessary, I can look into it.

from enjarify.

Aspsine avatar Aspsine commented on May 8, 2024

Same issues.
I think Retrofit, view/data inject with Anonotaions is very common in android development.

from enjarify.

Lanchon avatar Lanchon commented on May 8, 2024

hi @Storyyeller,

dex2jar seems to be abandon-ware now, for a couple of years already. it has, as i remember you mentioned a long while back somewhere, some issues that enjarify supposedly fix. it hasn't been updated to handle dex 037, and typically chokes on 037 files if you override the version check.

enjarify seems to be our only option going forward, and thus its importance is growing.

you've rewritten enjarify from scratch in various languages (unfortunately none that builds to java bytecode) which makes it difficult to follow up your work, as we don't know which is the canonical implementation that will get updated in the future, if any.

IMHO it is very important for the reversing community, which includes android malware analysts, to have a high quality, up-to-date dedexer tool. a dedexer allows analysts to expand their limited dex toolsets with more mature tools developed for java bytecode.

unfortunately enjarify is not up to the task because translating annotations is necessary to retain the semantics of code. many libraries depend on runtime reflection of annotations. and one can presume that some code (picture obfuscated unpackers) depend on annotations being present in the class/dex files. (and some build tools definitely depend on annotations, but these tools have already been run by their creators on the code being analyzed.)

enjarify cannot replace the dying dex2jar until it can process annotations. i assume you work for google, and your employer has an interest in android malware analysis. maybe you can convince your employer that improving enjarify in this way is worthwhile.

from a technical standpoint i suspect there are two levels of translation needed. besides the actual format translation applied to all annotation instances, i believe some annotations will be instances of dalvikvm-defined annotation classes, and those will have to be replaced with their equivalent javavm-defined annotations. the complete set of required replacements should be found in the source of the dx tool for java 7, and of the jack toolset for java 8. but i assume you already know all of this.

thanks for your time, and thank you for your amazing work in enjarify and krakatau.

from enjarify.

Storyyeller avatar Storyyeller commented on May 8, 2024

Unfortunately, I no longer have the opportunity to work on Enjarify at Google. Any changes I make would have to be done on my own time, like the Rust rewrite I did.

from enjarify.

Lanchon avatar Lanchon commented on May 8, 2024

that sucks. so which is going to be the real enjarify from now on? i know the go version won't. but rust or python?

from enjarify.

Related Issues (20)

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.