resess / GoalExplorer

MIT License
7 stars 2 forks source link

Error when running GoalExplore-1.2.0 #10

Closed XYIheng closed 1 year ago

XYIheng commented 1 year ago

Hi, I am running the GoalExplorer-1.2-SNAPSHOT-jar-with-dependencies.jar provided in the github release. However, I encounter an error.

image image

Can you help me? Thanks a lot

dah-fari7009 commented 1 year ago

Hi,

Thanks for bringing this to our attention. It seems that the jar under release is not up to date with the latest version of the source code (see #8 ). You can either build the source code or try with the updated jar I just pushed :)

Also, regarding the first picture, please make sure that the decompiled version of the apk is produced under the output folder for Backstage to run properly.

XYIheng commented 1 year ago

@dah-fari7009 Thanks for your quickly repsponse! I download the latest jar you just pushed and run it successfully. Great! Thanks again for your help~

XYIheng commented 1 year ago

@dah-fari7009 Hello, I run the latest jar with "java -jar target/GoalExplorer-1.2-SNAPSHOT-jar-with-dependencies.jar ge -i nl.mpcjanssen.simpletask_11000001.apk -s ~/Android -o ./output/ --target "act:nl.mpcjanssen.simpletask.Preferences" " And get the ouput image

However, I don't know how to analyze the generated output, could you help me? I want to know how can I get the path to the target (e.g., activity) from the generated output

dah-fari7009 commented 1 year ago

Hi,

The output represents the graph in XML format, where screenNodeSet,serviceNodeSet and broadcastReceiverNodeSet contain all the screens (i.e., activities with variations of fragments, menu and dialogs), services and broadcast receivers respectively. Target nodes are marked with <target>true</target>

transitionEdges contains all the edges in the graph, each from a source node (srcNode) to a destination node (tgtNode).

To get the path, from a given screen (e.g., MainActivity) to a target, you can either trace it manually (i.e., find the sequence of edges in transitionEdges starting from MainActivity as a srcNode and leading to the screen you're interested in) or you can write a script to parse the xml. There's a number of XML parsers that could help with this task, e.g., xml.etree or nokogiri which is used in the dynamic runner, see GoalExplorer/Stoat/a3e/bin/stg.rb for an example.

I'll mark this as closed as the original issue was completed. Feel free to let us know if you run into any additional issues with the tool :)

Connor-fire commented 1 year ago

@dah-fari7009 Sorry to bother you. For the tested APK, do we need to manually use apktool or other tools to decompile the apk and put the generated decompiled files into the output folder? Or does GoalExplorer decompile automatically?

XYIheng commented 1 year ago

I think that the GoalExplorer would decompile it automatically. @Connor-fire

XYIheng commented 1 year ago

@dah-fari7009 Thanks again for your kind response! Your answer solved my question

dah-fari7009 commented 1 year ago

@Connor-fire yes, as @XYIheng noted, GoalExplorer will automatically decompile the apk @XYIheng Of course, happy to help :)