Are there any tools out there that parse smali code directly to construct CFG? I know that Androguard does something similar but it seems to use decompilation on the apk file which can become unreliable in situations if the apk uses obfuscation techniques.
Building a Control Flow Graph for Android APK from smali code
1.9k Views Asked by Lew Wei Hao At
1
There are 1 best solutions below
Related Questions in ANDROID
- Delay in loading Html Page(WebView) from assets folder in real android device
- MPAndroidChart method setWordWrapEnabled() not found
- Designing a 'new post' android activity
- Android :EditText inside ListView always update first item in the listview
- Android: Transferring Data via ContentIntent
- Wrong xml being inflated android
- AsyncTask Class
- Unable to receive extras in Android Intent
- Website zoomed out on Android default browser
- Square FloatingActionButton with Android Design Library
- Google Maps API Re-size
- Push toolbar content below statusbar
- Android FragmentPagerAdapter Circular listview
- Layout not shifting up when keyboard is open
- auDIO_OUTPUT_FLAG_FAST denied by client can't connect to localhost
Related Questions in APK
- Can not get the same signature from the keystore
- Android APK filepath layout for NDK binary executables how-to
- Signing an apk with a .dat file
- aggressive adware irremovable apk on android
- Why apk size increase in different android version
- Deploying an Android app on devices without Play Store account
- AIR Google Play Services library classes missing apk
- Android app running fine on emulator but gives error parsing package when made to run on real device
- Cordova: Trouble importing Android Downloader_Library into project
- Reduce apk size with combine java files
- Android - Bypassing install permission programmatically for enterprise apps from third-party sources
- which apk runs on the Android device ionic
- Couldn't load (find) j2v8_android_x86 library
- How would I connect to a MySQL database back-end from an Android device's application?
- Error : duplicate files during packaging of APK
Related Questions in SMALI
- What is Smali Code Android
- Smali best place to inject code
- How to add some stuff from java files to smali files?
- Insert method call in smali code
- Requirements for an Android App to be decompiled?
- Declaring a global variable and increasing its value in smali
- Need help changing AndroidManifest.xml in an APK file
- How do you handle smali jumps (conditions, exceptions, etc...) in big files / methods
- what does the .restart smali keyword do?
- Apktool showing exception during reassembly
- Lexer lib for Python3 capable of creating AST trees
- smali grammar files ".g4" for antlr4
- Modifying existing methods in Smali
- Smali:All register args must fit in 4 bits error
- How to set a boolean in smali
Related Questions in CONTROL-FLOW-GRAPH
- Control Flow Graphs - find all linearly independent paths
- Understand control flow graph in lcov branch coverage output
- Can I translate an AST to SSA, or do I need to translate to a CFG then to SSA?
- Tool to compare control flow of disassembly and C
- control edge rendering of a network in vis.js
- Extracting Basic Blocks/CFG from LLVM/clang on the Backend
- Control flow graph dominance
- Flattening a control flow graph to structured code
- Decompilation creating basic blocks
- Decompilation independent pattern structuring of cfg
- Drawing cfg using antlr4, graphiz and python and parser is empty
- Static analysis of unused assignments
- identifying a loop in LLVM CFG
- How to determine if a BasicBlock is controled by a `if`
- Why are the variables "i" and "j" considered dead in the control flow graph?
Related Questions in ANDROGUARD
- Error in python while running androguard importing zlib
- How to Extract Strings, Methods, and API Calls with Androguard
- How to check for network security config with Androguard in python script
- How to determine which dx/d8 version was used for apk creation?
- Memory error when using androguard module in Yara Rules
- How to extract any resource file from APK using the Androguard?
- Debugging reversed Android Application without emulator for Dynamic Analysis
- How to decompile a sequence of bytes from dex file using androgurad (or any other python tool)?
- Androguard output truncated
- How to escape characters in regex of Androguard?
- How to run malloDroid script?
- Building a Control Flow Graph for Android APK from smali code
- Cannot import androguard in python ubuntu 16.04
- How to track a local variable by Androguard
- Androguard - huge APK analysis resulting in error `MemoryError`
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Have a look at https://androguard.blogspot.co.il/2011/02/android-apps-visualization.html.
In regards to your concerns about Androguard.
Do you mean "disassembling"? Well, a tool needs to understand the bytecode in order to build a call graph. If you mean "decompiling to Java", I'm pretty sure this doesn't happen.
There are various obfuscation techniques. And most has nothing to do with the call graph. E.g. name mangling replaces class name like
org.apache.http.client.HttpClientto something meaningless likea.b.c. You will still see this class and its functions in CFG.