Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Any instructions to use the tool? #2

Open
liberatorqjw opened this issue Feb 25, 2016 · 5 comments
Open

Any instructions to use the tool? #2

liberatorqjw opened this issue Feb 25, 2016 · 5 comments

Comments

@liberatorqjw
Copy link

Please share the guideline if anyone has figured out already how to run this
testing tool.

What is the point of publishing a tool publicly if no one is able to use that?

@JulianSchuette
Copy link
Owner

It would be helpful if you state your specific problem in an issue by describing what you have done so far, your expected outcome, and the experienced failure. The point of publishing code as an ammendment to scientific papers is to provide fellow researchers insights into the implementation, not to upload a point-and-click tool.

As a general starting point, you should try the following:

  • Clone the project and import it into eclipse using "Import from existing project".
  • Make sure the project compiles in eclipse, i.e. there are no compiler errors.
  • Install the Android SDK (mine is in /opt/android-sdk) and create a new virtual device to run in the Android emulator (for me, Android 4.x runs much faster, while 5.x is almost unusable in emulator)
  • Start the Android emulator
  • Run ConDroid. The main class is "acteve.instrumentor.Main". I set my VM arguments to "-Xms4G -Xmx8G -XX:PermSize=256m -XX:MaxPermSize=1G -ea -Dorg.slf4j.simpleLogger.defaultLogLevel=DEBUG" to give it more memory and enable assertions. As program arguments, you may pass the name of the APK file you want to instrument.
    (There should already be a .launch-config file in Git).

So, the building is done by eclipse currently. If you want to re-build the a3tstubs.jar and a3tsymbolic.jar, you may call "ant compile-symbolic dist".

@liberatorqjw
Copy link
Author

Thank you for your reply but when i run it, i have see the errors as follow:
SLF4J: Found binding in [jar:file:/home/liberator/git/ConDroid/libs/slf4j-simple-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/liberator/git/ConDroid/libs/soot-infoflow-android.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
log4j:WARN No appenders could be found for logger (acteve.instrumentor.Config).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
soot/jimple/infoflow/android/axml/AXmlHandler.toByteArray()[B @68: invokespecial
Reason:
Type 'pxb/android/axml/AxmlWriter' (current frame, stack[1]) is not assignable to 'pxb/android/axml/NodeVisitor'
Current Frame:
bci: @68
flags: { }
locals: { 'soot/jimple/infoflow/android/axml/AXmlHandler', 'pxb/android/axml/AxmlWriter' }
stack: { 'soot/jimple/infoflow/android/axml/AXmlHandler', 'pxb/android/axml/AxmlWriter', 'soot/jimple/infoflow/android/axml/AXmlNode' }
Bytecode:
0000000: bb00 8459 b700 854c 2ab6 0086 b600 8cb9
0000010: 008f 0100 4d2c b900 5401 0099 0020 2cb9
0000020: 0058 0100 c000 914e 2b2d b600 952d b600
0000030: 982d b600 9bb6 009f a7ff dd2a 2b2a b600
0000040: 86b6 00a3 b700 a72b b600 a9b0 4c2b b600
0000050: ac01 b0
Exception Handler Table:
bci [0, 75] => handler: 76
Stackmap Table:
append_frame(@21,Object[#132],Object[#80])
chop_frame(@59,1)
full_frame(@76,{Object[#2]},{Object[#26]})

at soot.jimple.infoflow.android.manifest.ProcessManifest.handle(ProcessManifest.java:113)
at soot.jimple.infoflow.android.manifest.ProcessManifest.<init>(ProcessManifest.java:86)
at soot.jimple.infoflow.android.manifest.ProcessManifest.<init>(ProcessManifest.java:70)
at soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:318)
at soot.jimple.infoflow.android.SetupApplication.calculateSourcesSinksEntrypoints(SetupApplication.java:273)
at acteve.instrumentor.Main.main(Main.java:219)

so , how can i solve the problem

@liberatorqjw
Copy link
Author

And I use the args of run is /home/liberator/SendSMS.apk

@majestyhao
Copy link

I encountered the same problem before. Solving it by removing unnecessary dependencies. Check your classpath in your IDE, especially IntelliJ.

@pt01
Copy link

pt01 commented Apr 30, 2017

Hi,
@majestyhao could you give us more informations about which dependencies need to be removed ?

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

No branches or pull requests

4 participants