Comments (12)
Time for an update:
-
As stated above, WALA master has already multi-dex support and also allows to keep unresolvable superclasses in the CHA.
-
My pull request for adding isSynthetic checks on IMethod/IClass has recently been merged into master wala/WALA#359
-
While testing WALA master, I encountered two bugs and proposed patches (wala/WALA#361 and wala/WALA#358). They have also been merged into master.
-
As for the problem with an empty IR for clinit methods, good news is that this has been resolved already some time ago, so no need for additional action.
This should be everything necessary to port LibScout to WALA master. If everything works with the provided patches, I'll request a new WALA release that can then be added to LibScout's gradle config.
from libscout.
We are getting closer, I just proposed a patch for building the ClassHierarchy that does not dismiss classes when superclasses are not statically resolvable (see wala/WALA#377).
Besides that, there is a minor issue with the multi-dex support. Although, it is supported in the current WALA version, there is currently no helper function to conveniently setup an AnalysisScope for multi-dex apks. I pushed a PR as well (wala/WALA#378), but, in theory, this could also be added as workaround in LibScout's code base.
from libscout.
I updated LibScout to the new smali v2.2.6.
In the meantime, the remaining PR got merged into WALA master. Now waiting for the new release to update LibScout accordingly.
from libscout.
Thanks for doing this! It'll make Debian integration a lot easier. Let us know when you know which WALA lib you need. If the JOANA library is plain Java, it should be relatively easy to package.
from libscout.
After some initial testing, it seems that WALA's PhantomClass workaround for unresolvable classes (e.g. classes used as superclass that are not statically linked in the app code) throws exceptions in certain situations (see discussion in wala/WALA#335). This needs to be resolved somehow before we can proceed.
from libscout.
So finally I upgraded the code base to the current WALA/dexlib2 master (LibScout version 2.3.0)!
Still, I have to provide pre-compiled binaries, as not all patches are merged yet.
The current status is as follows:
- wala/WALA#377 is successfully merged (don't dismiss classes with unresolvable superclasses)
- Regarding the WALA patch for AnalysisScope multi-dex support (wala/WALA#378), it turned out that for a proper solution a tiny change in the dexlib2 code is required. I opened a PR (JesusFreke/smali#673), but the dexlib development apparently has slowed down significantly, thus it's unsure when this is going to be merged.
Anyways, I patched the respective code bases and provide the pre-compiled binaries to speed up things. As soon as there is progress in the PRs, I will update LibScout accordingly.
from libscout.
from libscout.
Not yet, as soon as the multi-dex support PR is merged, I'll ask for a tagged release.
from libscout.
We are finally there. LibScout 2.3.1 fetches the new WALA libs (v1.5.1) from maven central!
from libscout.
from libscout.
Hmm, if it is compiled with gradle you can execute the jar without args. Then a usage message is shown with an exit code 1.
For a functional test, it would have to be set up to profile a single lib version and then used in match mode on a small app test includes it and finally check the json output.
The single library profile could also be pre-packaged, such that only the match mode would have to be run.
For some test, LibScout could only profile a single lib version and you test whether a .libv file is output with a specific size.
But all these tests, require some kind of setup.
from libscout.
from libscout.
Related Issues (20)
- Multi-dex APKs not completely processed HOT 6
- output json format HOT 2
- Unreadable character in the result of the analyze - Windows HOT 4
- Lacking information in generated json file HOT 3
- More detailed reporting of detected mappings? HOT 1
- Facebook libraries are always detected HOT 3
- how to build library.xml HOT 1
- [FATAL EXCEPTION] analysis aborted: null HOT 2
- java.lang.NullPointerException HOT 1
- LibScout cannot detected confused apk HOT 3
- NPE when loading profiles, fails when sorting by version name HOT 1
- [FATAL EXCEPTION] analysis aborted: failed to load root <Primordial,Ljava/lang/Object> of class hierarchy HOT 1
- LibScout doesn't detect Vulnerability HOT 1
- How to run the -profile HOT 1
- Outputting the profiles of library-profile-generator.sh HOT 1
- How to run the library-scraper.py?
- An error in the name of json output file generated by Library Detection (-o match) HOT 2
- Comparative research on two applications that point out security errors with libscout assistance
- [FATAL EXCEPTION] analysis aborted: failed to load root <Primordial,Ljava/lang/Object> of class hierarchy
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libscout.