Smali Control Flow Graph's

Overview

Smali-CFGs

Smali Control Flow Graph's

Package Usage by Application.

(ed@CFGCli) > !pu Ljavax/crypto
*  Analized Application uses the next Ljavax/crypto Methods:
	 · BadPaddingException;->getMessage()Ljava/lang/String;
	 · BadPaddingException;->toString()Ljava/lang/String;
	 · Cipher;->doFinal([B)[B
	 · Cipher;->getInstance(Ljava/lang/String;)Ljavax/crypto/Cipher;
	 · Cipher;->init(ILjava/security/Key;)V
	 · Cipher;->init(ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;)V
	 · CipherInputStream;->(Ljava/io/InputStream;Ljavax/crypto/Cipher;)V
	 · CipherInputStream;->read([B)I
	 · CipherOutputStream;->(Ljava/io/OutputStream;Ljavax/crypto/Cipher;)V
	 · IllegalBlockSizeException;->getMessage()Ljava/lang/String;
	 · IllegalBlockSizeException;->toString()Ljava/lang/String;
	 · KeyGenerator;->generateKey()Ljavax/crypto/SecretKey;
	 · KeyGenerator;->getInstance(Ljava/lang/String;)Ljavax/crypto/KeyGenerator;
	 · KeyGenerator;->init(I)V
	 · NoSuchPaddingException;->getMessage()Ljava/lang/String;
	 · NoSuchPaddingException;->toString()Ljava/lang/String;
	 · SecretKey;->getEncoded()[B
	 · SecretKeyFactory;->generateSecret(Ljava/security/spec/KeySpec;)Ljavax/crypto/SecretKey;
	 · SecretKeyFactory;->getInstance(Ljava/lang/String;)Ljavax/crypto/SecretKeyFactory;
	 · spec/DESKeySpec;->([B)V
	 · spec/IvParameterSpec;->([B)V
	 · spec/PBEKeySpec;->([C)V
	 · spec/PBEKeySpec;->([C[BI)V
	 · spec/PBEParameterSpec;->([BI)V
	 · spec/SecretKeySpec;->([BLjava/lang/String;)V

Single Cross-References (2 depth level).

doFinal([B)[B" * Cross-References with a 2 recursion level.">
(ed@CFGCli) > !xf --max_levels 2 --direction 2 "Ljavax/crypto/Cipher;->doFinal([B)[B"
*  Cross-References with a 2 recursion level.

Global string search.

(ed@CFGCli) > !sp _key
· String Patterns ['_key'] have been located at above Application Methods:
	 · Lcom/vvt/appengine/exec/ExecGetSettings;->createSettingsObject(Lcom/vvt/appengine/AppEngineComponent;ILjava/util/List;)Lcom/vvt/remotecontrol/output/RmtCtrlOutputSettings;
	 · Lcom/vvt/appengine/AppEngineHelper$2;->()V
	 · Lcom/vvt/phoenix/prot/session/SessionManager;->updateSession(Lcom/vvt/phoenix/prot/session/SessionInfo;)Z
	 · Lcom/vvt/callmanager/ref/BugEngine;->setSmsInterceptForMonitorNumber(Ljava/util/List;)V
	 · Lcom/vvt/base/security/FxSecurityUrl;->encrypt([BZ)[B
	 · Lcom/vvt/appengine/AppEngine;->removeDownloadSmsAndRemoteCommands()V
	 · Lcom/vvt/appengine/AppEngine;->()V
	 · Lcom/vvt/appengine/AppEngine;->removeBrowserHistory()V
	 · Lcom/vvt/remotecommand/processor/troubleshoot/ProcRequestSettings;->createMessage(Lcom/vvt/remotecontrol/output/RmtCtrlOutputSettings;Ljava/util/List;ZZ)Ljava/lang/String;
	 · Lcom/vvt/base/security/FxSecurity;->decrypt([BZ)[B
	 · Lcom/vvt/capture/facebook/daemon/FacebookDatabaseHelper;->getUserProfile(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;)[B
	 · Lcom/vvt/phoenix/prot/CommandServiceManager;->onAsyncCallbackInvoked(Lcom/vvt/phoenix/prot/CommandListener;I[Ljava/lang/Object;)V
	 · Lcom/vvt/appengine/exec/ExecManageCommonData;->getFeatureStringWord(Lcom/vvt/base/FeatureId;)Ljava/lang/String;
	 · Lcom/vvt/base/FeatureId;->()V
	 · Lcom/vvt/phoenix/prot/session/SessionManager;->persistSession(Lcom/vvt/phoenix/prot/session/SessionInfo;)Z
	 · Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String;
	 · Lcom/vvt/remotecommand/processor/misc/ProcSetSettings$1;->()V
	 · Lcom/vvt/capture/line/LineCapturingHelper;->getStickerAttachment(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList;
	 · Lcom/vvt/appengine/exec/ExecManageCommonData$1;->()V
	 · Lcom/vvt/remotecommand/processor/misc/ManageCommonDataConstant$CommonData$7;->getFeatureId()Lcom/vvt/base/FeatureId;
	 · Lcom/vvt/base/security/FxSecurityUrl;->decrypt([BZ)[B
	 · Lcom/vvt/phoenix/prot/session/SessionManager;->extractSessionFromDbRow(Landroid/database/Cursor;Lcom/vvt/phoenix/prot/session/SessionInfo;)V
	 · Lcom/vvt/remotecommand/processor/misc/ManageCommonDataConstant$CommonData$6;->getFeatureId()Lcom/vvt/base/FeatureId;
	 · Lcom/vvt/phoenix/prot/session/SessionManager;->openOrCreateSessionDatabase()V
	 · Lcom/vvt/remotecommand/SetSettingsConstant;->getFeatureId(I)Lcom/vvt/base/FeatureId;
	 · Lcom/vvt/phoenix/prot/session/SessionManager;->upgradeDatabase(I)V
	 · Lcom/vvt/remotecommand/processor/misc/ManageCommonDataConstant;->()V
	 · Lcom/vvt/capture/facebook/daemon/FacebookDatabaseHelper;->getParticipant(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Lcom/vvt/im/events/info/OwnerInfo;)Ljava/util/List;
	 · Lcom/vvt/base/security/FxSecurityUrl;->getConstant([B)Ljava/lang/String;
	 · Lcom/vvt/appengine/AppEngine;->removeDownloads()V
	 · Lcom/vvt/base/security/FxSecurity;->encrypt([BZ)[B
	 · Lcom/vvt/appengine/AppEngineHelper;->manageKeywords(Lcom/vvt/appengine/AppEngineComponent;Ljava/util/List;Z)V
	 · Lcom/vvt/remotecommand/processor/misc/ManageCommonDataConstant$CommonData$8;->getFeatureId()Lcom/vvt/base/FeatureId;
	 · Lcom/vvt/capture/facebook/daemon/FacebookDatabaseHelper;->getSenderInfo(Landroid/database/sqlite/SQLiteDatabase;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lcom/vvt/im/events/info/SenderInfo;
	 · Lcom/vvt/appengine/exec/ExecSendSettingsEvent;->createSettingsEvent(Lcom/vvt/remotecontrol/output/RmtCtrlOutputSettings;Ljava/util/List;)Lcom/vvt/events/FxSettingEvent;
	 · Lcom/vvt/remotecommand/processor/misc/ManageCommonDataConstant$CommonData;->()V
	 · Lcom/vvt/base/security/FxSecurityUrl;->()V
	 · Lcom/vvt/base/security/FxSecurity;->()V
	 · Lcom/vvt/remotecommand/processor/misc/ProcManageCommonData;->process(Lcom/vvt/remotecommand/RemoteCommand;Lcom/vvt/remotecommand/processor/RemoteCommandListener;)V
	 · Lcom/vvt/remotecommand/processor/misc/ManageCommonDataConstant$CommonData$5;->getFeatureId()Lcom/vvt/base/FeatureId;
	 · Lcom/vvt/appengine/exec/ExecGetSettings$1;->()V
	 · Lcom/vvt/base/security/Constant;->()V

Full Cross-References marking string matches.

doFinal([B)[B" * Cross-References with a 6 recursion level and String Pattern search. - Lcom/vvt/base/security/FxSecurity;->decrypt([BZ)[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->CHECKSUM_KEY:[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->DYNAMIC_KEY:[B - Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; - sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->CONSTANT_KEY:[B - Lcom/vvt/base/security/FxSecurityUrl;->getConstant([B)Ljava/lang/String; - sget-object v6, Lcom/vvt/base/security/FxSecurityUrl;->MASTER_KEY:[B - sget-object v6, Lcom/vvt/base/security/FxSecurityUrl;->CONSTANT_KEY:[B - Lcom/vvt/base/security/FxSecurityUrl;->encrypt([BZ)[B - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->MASTER_KEY:[B - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->CHECKSUM_KEY:[B - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->DYNAMIC_KEY:[B - Lcom/vvt/base/security/FxSecurity;->encrypt([BZ)[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->CHECKSUM_KEY:[B - sget-object v6, Lcom/vvt/base/security/FxSecurity;->DYNAMIC_KEY:[B - Lcom/vvt/base/security/FxSecurityUrl;->decrypt([BZ)[B - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->MASTER_KEY:[B - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->CHECKSUM_KEY:[B - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->DYNAMIC_KEY:[B">
(ed@CFGCli) > !xf --max_levels 6 --direction 0 --str_reg _key "Ljavax/crypto/Cipher;->doFinal([B)[B"
*  Cross-References with a 6 recursion level and String Pattern search.
	 - Lcom/vvt/base/security/FxSecurity;->decrypt([BZ)[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->CHECKSUM_KEY:[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->DYNAMIC_KEY:[B
	 - Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String;
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->CONSTANT_KEY:[B
	 - Lcom/vvt/base/security/FxSecurityUrl;->getConstant([B)Ljava/lang/String;
		 - sget-object v6, Lcom/vvt/base/security/FxSecurityUrl;->MASTER_KEY:[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurityUrl;->CONSTANT_KEY:[B
	 - Lcom/vvt/base/security/FxSecurityUrl;->encrypt([BZ)[B
		 - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->MASTER_KEY:[B
		 - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->CHECKSUM_KEY:[B
		 - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->DYNAMIC_KEY:[B
	 - Lcom/vvt/base/security/FxSecurity;->encrypt([BZ)[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->CHECKSUM_KEY:[B
		 - sget-object v6, Lcom/vvt/base/security/FxSecurity;->DYNAMIC_KEY:[B
	 - Lcom/vvt/base/security/FxSecurityUrl;->decrypt([BZ)[B
		 - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->MASTER_KEY:[B
		 - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->CHECKSUM_KEY:[B
		 - sget-object v5, Lcom/vvt/base/security/FxSecurityUrl;->DYNAMIC_KEY:[B

Which code lines match:

getConstant([B)Ljava/lang/String;" _key · String Patterns ['_key'] matches at Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; are: · sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B · sget-object v6, Lcom/vvt/base/security/FxSecurity;->CONSTANT_KEY:[B">
(ed@CFGCli) > !sp -m "Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String;" _key
· String Patterns ['_key'] matches at Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; are:
	 · sget-object v6, Lcom/vvt/base/security/FxSecurity;->MASTER_KEY:[B
	 · sget-object v6, Lcom/vvt/base/security/FxSecurity;->CONSTANT_KEY:[B

How method seems without out calls:

getConstant([B)Ljava/lang/String;" * Method Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; Instructions Flow saved to MethodInstructionsFlow.png.">
(ed@CFGCli) > !if "Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String;"
*  Method Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; Instructions Flow saved to MethodInstructionsFlow.png.

And with out calls:

getConstant([B)Ljava/lang/String;" * Method Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; Instructions Flow saved to MethodInstructionsFlow2.png.">
(ed@CFGCli) > !if -f "Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String;"
*  Method Lcom/vvt/base/security/FxSecurity;->getConstant([B)Ljava/lang/String; Instructions Flow saved to MethodInstructionsFlow2.png.

You might also like...
Sample demonstrates use of Flow, StateFlow & how we can test Flow

FlowSample This sample demonstrates use of Flow, StateFlow & how we can test Flow. In Kotlin, Coroutine is just the scheduler part of RxJava but now w

Powerful custom Android Camera with granular control over the video quality and filesize, restricting recordings to landscape only.
Powerful custom Android Camera with granular control over the video quality and filesize, restricting recordings to landscape only.

LandscapeVideoCamera Highly flexible Android Camera which offers granular control over the video quality and filesize, while restricting recordings to

Android library providing simple way to control divider items (ItemDecoration) of RecyclerView
Android library providing simple way to control divider items (ItemDecoration) of RecyclerView

RecyclerView-FlexibleDivider Android library providing simple way to control divider items of RecyclerView Release Note [Release Note] (https://github

Present your progress bars in arc mode with information and total control.
Present your progress bars in arc mode with information and total control.

ArcProgressStackView Present your progress bars in arc mode with information and total control. You can check the sample app here. Warn This library i

Ground Control Station for Android Devices

Tower Tower is a Ground Control Station (GCS) Android app built atop DroneKit-Android, for UAVs running Ardupilot software. Usage Guide The wiki has s

Ground Control Station for Android Devices

Tower Tower is a Ground Control Station (GCS) Android app built atop DroneKit-Android, for UAVs running Ardupilot software. Usage Guide The wiki has s

Android library to control Transition animates. A simple way to create a interactive animation.
Android library to control Transition animates. A simple way to create a interactive animation.

TransitionPlayer Android library to control Transition animates. A simple way to create a interactive animation. Demo1 SimpleTransition Code: ....

KdGaugeView is a simple and customizable Gauge / Speedometer control for Android.
KdGaugeView is a simple and customizable Gauge / Speedometer control for Android.

KdGaugeView KDGaugeView is a simple and customizable gauge control for Android inspired by LMGaugeView Motivation I need some clean Guage view for my

A library that gives full control over text related technologies such as bidirectional algorithm, open type shaping, text typesetting and text rendering
A library that gives full control over text related technologies such as bidirectional algorithm, open type shaping, text typesetting and text rendering

Tehreer-Android Tehreer is a library which gives full control over following text related technologies. Bidirectional Algorithm OpenType Shaping Engin

ImageView and FrameLayout with gestures control and position animation
ImageView and FrameLayout with gestures control and position animation

GestureViews ImageView and FrameLayout with gestures control and position animation. Main goal of this library is to make images viewing process as sm

Animated tabbar with native control
Animated tabbar with native control

SSCustomBottomNavigation Getting Started SSCustomBottomNavigation is a customizable bottom bar library with curved animations. The actual features are

Present your progress bars in arc mode with information and total control.
Present your progress bars in arc mode with information and total control.

ArcProgressStackView Present your progress bars in arc mode with information and total control. You can check the sample app here. Warn This library i

Circular Slider UI Control for Android
Circular Slider UI Control for Android

Circular Slider What is this? Circular Slider is a custom-built Android View used for choosing numbers. It works similarly to the regular slider contr

Android library providing simple way to control divider items (ItemDecoration) of RecyclerView
Android library providing simple way to control divider items (ItemDecoration) of RecyclerView

RecyclerView-FlexibleDivider Android library providing simple way to control divider items of RecyclerView Release Note [Release Note] (https://github

Powerful custom Android Camera with granular control over the video quality and filesize, restricting recordings to landscape only.
Powerful custom Android Camera with granular control over the video quality and filesize, restricting recordings to landscape only.

LandscapeVideoCamera Highly flexible Android Camera which offers granular control over the video quality and filesize, while restricting recordings to

Control and manage Android devices from your browser.
Control and manage Android devices from your browser.

Warning This project along with other ones in OpenSTF organisation is provided as is for community, without active development. You can check any othe

Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I develop easy to understand , modify and integrate Chips Edit Text widget for Android
Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I develop easy to understand , modify and integrate Chips Edit Text widget for Android

Chips EditText Library Chips EditText, Token EditText, Bubble EditText, Spannable EditText and etc.. There are many names of this control. Here I deve

Android library to control Transition animates. A simple way to create a interactive animation.
Android library to control Transition animates. A simple way to create a interactive animation.

TransitionPlayer Android library to control Transition animates. A simple way to create a interactive animation. Demo1 SimpleTransition Code: ....

Present your progress bars in arc mode with information and total control.
Present your progress bars in arc mode with information and total control.

ArcProgressStackView Present your progress bars in arc mode with information and total control. You can check the sample app here. Warn This library i

Owner
Eugenio Delfa
Eugenio Delfa
Smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation

About smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on

Ben Gruver 5.7k Dec 27, 2022
Charts/graphs library for Android compatible with API 8+, several chart types with support for scaling, scrolling and animations

HelloCharts for Android Charting library for Android compatible with API 8+(Android 2.2). Works best when hardware acceleration is available, so API 1

Leszek Wach 7.4k Jan 6, 2023
Android Graph Library for creating zoomable and scrollable line and bar graphs.

Chart and Graph Library for Android Project maintainer wanted! For time reasons I can not continue to maintain GraphView. Contact me if you are intere

Jonas Gehring 2.7k Jan 5, 2023
Android Graph Library for creating zoomable and scrollable line and bar graphs.

Chart and Graph Library for Android Project maintainer wanted! For time reasons I can not continue to maintain GraphView. Contact me if you are intere

Jonas Gehring 2.7k Jan 2, 2023
Android Tableau library supports variety of graphs which developers simply integrate visualization reports on Android application.

Android Tableau Library Android Tableau library supports variety of graphs which developers simply integrate visualization reports on Android applicat

Sung Hyun 54 Jan 1, 2023
An android compose library with different Graphs and Charts

plot An android compose library with different Graphs and Charts (currently supports only Line graph, more types will be added soon) Download reposito

Madrapps 106 Dec 30, 2022
Add new features for reverse engineering, such as: renaming of classes, fields, methods, variables, reference graphs and more.

Super JADX features Add new features for reverse engineering, such as: renaming of classes, fields, methods, variables, reference graphs and more. bas

null 284 Dec 28, 2022
Generate Mermaid graphs from docker-compose files (in kotlin).

docker-compose-viz with Mermaid Generate Mermaid graphs from docker-compose files (in kotlin). Inspired from https://github.com/pmsipilot/docker-compo

Lucy Linder 12 Nov 22, 2022
To Do List App is built in Kotlin using Material 3, Data Binding, Navigation Component Graphs, Room persistence library, Kotlin coroutines, LiveData, Dagger Hilt, and Notifications following MVVM Architecture.

ToDoListApp ToDoList App demonstrates modern Android development with Hilt, Coroutines, LiveData, Jetpack (Room, ViewModel), and Material 3 Design bas

Naman Garg 10 Jan 8, 2023