0/57

Threat

com.topjohnwu.magisk

Magisk Manager

Analyzed on 2022-01-24T17:14:11.191968

9

permissions

4

activities

3

services

8

receivers

11

domains

File sums

MD5 fa3508b3a3ef54ffbb0f07e929c75561
SHA1 bdc5c94d7b61c85bea0de568bc0da53d4d61198d
SHA256 4d923c2cd5eea382ef28b2afc1a9276b3a6a3b833e8925885b8f16de05cd7a1a
Size 2.25MB

APKiD

Information computed with APKiD.

/tmp/tmpi5o73jrs!classes.dex
anti_disassembly
  • illegal class name
compiler
  • unknown (please file detection issue!)

SSdeep

Information computed with ssdeep.

APK file 49152:N9lCAZ9BF4RRZHWPjbd+flNzrRldFwKaw1S77ZgR+wd9:N9XPCRZ2bwfnbdSKawr+wd9
Manifest 192:XSuX0fi/4ouo2k/kRE6JH/w1m1SaSbAoTmRxtyOEgRpcKVkCrAsGFl+TtrTFu0Hj:…
classes.dex 24576:oIJYVd6MH9rNshcoW2VFBd75qB7CT0mKdlCguCMZapLb5LjoQxHHK2cVeIi2:oI…

Dexofuzzy

Information computed with Dexofuzzy.

APK file 3072:qYmLtYiY+seBJYyozBpdVMlneUpPVKge3fiKcJqq75W5ozo39K1:qfLSl+smYxal…
classes.dex 3072:qYmLtYiY+seBJYyozBpdVMlneUpPVKge3fiKcJqq75W5ozo39K1:qfLSl+smYxal…

APK details

Information computed with AndroGuard and Pithus.

Package com.topjohnwu.magisk
App name Magisk Manager
Version name 7.0.0
Version code 185
SDK 16 - 28
UAID b8c400bfb9db9092a5d31da90fd9da3fa50d5b8c
Signature Signature V1 Signature V2
Frosting Not frosted
Blocks found within V2 signature:
  • 0x7109871a: Unknown
  • 0x42726577: Verity padding

Certificate details

Information computed with AndroGuard.

MD5 ceda68c1e174710aef58897dae6eab4f
SHA1 dc0f2b61cbd7e9d3dbbe060b2b870d46bb060211
SHA256 b4cb83b4dad99f997dbe872f013aa16c14eec41d167021f371f7e1330f273ee6
Issuer Common Name: John Wu, Locality: Taipei, Country: TW
Not before 2016-08-14T17:23:44+00:00
Not after 2116-07-21T17:23:44+00:00

File Analysis

Information computed with MobSF.

Findings Files
Certificate/Key files hardcoded inside the app. keys/testkey.x509.pem

Manifest analysis

Information computed with MobSF.

High Clear text traffic is Enabled For App[android:usesCleartextTraffic=true]
The app intends to use cleartext network traffic, such as cleartext HTTP, FTP stacks, DownloadManager, and MediaPlayer. The default value for apps that target API level 27 or lower is "true". Apps that target API level 28 or higher default to "false". The key reason for avoiding cleartext traffic is the lack of confidentiality, authenticity, and protections against tampering; a network attacker can eavesdrop on transmitted data and also modify it without being detected.
Medium Application Data can be Backed up[android:allowBackup=true]
This flag allows anyone to backup your application data via adb. It allows users who have enabled USB debugging to copy application data off of the device.
High Activity (a.b) is not Protected. [android:exported=true]
An Activity is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device.
High TaskAffinity is set for Activity
(a.m)
If taskAffinity is set, then other application could read the Intents sent to Activities belonging to another task. Always use the default setting keeping the affinity as the package name in order to prevent sensitive information inside sent or received Intents from being read by another application.
High Launch Mode of Activity (a.m) is not standard.
An Activity should not be having the launch mode attribute set to "singleTask/singleInstance" as it becomes root Activity and it is possible for other applications to read the contents of the calling Intent. So it is required to use the "standard" launch mode attribute when sensitive information is included in an Intent.
High Broadcast Receiver (a.h) is not Protected.An intent-filter exists.
A Broadcast Receiver is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. The presence of intent-filter indicates that the Broadcast Receiver is explicitly exported.
High Service (androidx.work.impl.background.systemjob.SystemJobService) is Protected by a permission, but the protection level of the permission should be checked.
Permission: android.permission.BIND_JOB_SERVICE [android:exported=true]
A Service is found to be shared with other apps on the device therefore leaving it accessible to any other application on the device. It is protected by a permission which is not defined in the analysed application. As a result, the protection level of the permission should be checked where it is defined. If it is set to normal or dangerous, a malicious application can request and obtain the permission and interact with the component. If it is set to signature, only applications signed with the same certificate can obtain the permission.

Main Activity

Information computed with AndroGuard.

a.c

Activities

Information computed with AndroGuard.

a.b
a.c
a.f
a.m

Receivers

Information computed with AndroGuard.

a.h
androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy
androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy
androidx.work.impl.background.systemalarm.RescheduleReceiver
androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver

Services

Information computed with AndroGuard.

a.j
androidx.work.impl.background.systemalarm.SystemAlarmService
androidx.work.impl.background.systemjob.SystemJobService

Sample timeline

Certificate valid not before Aug. 14, 2016, 5:23 p.m.
First submission on VT Feb. 4, 2019, 9:17 a.m.
Last submission on VT Jan. 9, 2022, 11:41 a.m.
Upload on Pithus Jan. 24, 2022, 5:14 p.m.
Certificate valid not after July 21, 2116, 5:23 p.m.

NIAP analysis

Information computed with MobSF.

FCS_RBG_EXT.1.1 The application invoke platform-provided DRBG functionality for its cryptographic operations.
Random Bit Generation Services
FCS_STO_EXT.1.1 The application does not store any credentials to non-volatile memory.
Storage of Credentials
FCS_CKM_EXT.1.1 The application generate no asymmetric cryptographic keys.
Cryptographic Key Generation Services
FDP_DEC_EXT.1.1 The application has access to ['network connectivity'].
Access to Platform Resources
FDP_DEC_EXT.1.2 The application has access to no sensitive information repositories.
Access to Platform Resources
FDP_NET_EXT.1.1 The application has user/application initiated network communications.
Network Communications
FDP_DAR_EXT.1.1 The application implement functionality to encrypt sensitive data in non-volatile memory.
Encryption Of Sensitive Application Data
FMT_MEC_EXT.1.1 The application invoke the mechanisms recommended by the platform vendor for storing and setting configuration options.
Supported Configuration Mechanism
FTP_DIT_EXT.1.1 The application does encrypt some transmitted data with HTTPS/TLS/SSH between itself and another trusted IT product.
Protection of Data in Transit
FCS_RBG_EXT.2.1
FCS_RBG_EXT.2.2
The application perform all deterministic random bit generation (DRBG) services in accordance with NIST Special Publication 800-90A using Hash_DRBG. The deterministic RBG is seeded by an entropy source that accumulates entropy from a platform-based DRBG and a software-based noise source, with a minimum of 256 bits of entropy at least equal to the greatest security strength (according to NIST SP 800-57) of the keys and hashes that it will generate.
Random Bit Generation from Application
FCS_COP.1.1(1) The application perform encryption/decryption in accordance with a specified cryptographic algorithm AES-CBC (as defined in NIST SP 800-38A) mode or AES-GCM (as defined in NIST SP 800-38D) and cryptographic key sizes 256-bit/128-bit.
Cryptographic Operation - Encryption/Decryption
FCS_HTTPS_EXT.1.1 The application implement the HTTPS protocol that complies with RFC 2818.
HTTPS Protocol
FCS_HTTPS_EXT.1.2 The application implement HTTPS using TLS.
HTTPS Protocol
FIA_X509_EXT.2.1 The application use X.509v3 certificates as defined by RFC 5280 to support authentication for HTTPS , TLS.
X.509 Certificate Authentication

Code analysis

Information computed with MobSF.

Medium
CVSS:4.3
IP Address disclosure
MASVS: MSTG-CODE-2
CWE-200 Information Exposure
Files:
 a/afo.java
a/aex.java
a/agl.java
a/ael.java
a/aeh.java
a/alh.java
a/aeq.java
a/afv.java
a/adu.java
a/aea.java
a/aek.java
a/aei.java
a/alm.java
a/aen.java
a/adv.java
a/afj.java
a/aep.java
a/aey.java
a/afe.java
a/aeo.java
a/aer.java
a/aew.java
a/aej.java
Low
CVSS:7.5
The App logs information. Sensitive information should never be logged.
MASVS: MSTG-STORAGE-3
CWE-532 Insertion of Sensitive Information into Log File
Files:
 a/pb.java
a/jf.java
a/jr.java
a/hj.java
a/ho.java
a/ts.java
a/gq.java
a/gf.java
a/dj.java
a/ta.java
a/fx.java
a/n.java
a/vp.java
a/Cif.java
a/fy.java
a/mn.java
a/mx.java
a/gj.java
a/u.java
a/po.java
a/dl.java
a/on.java
a/s.java
a/di.java
a/zo.java
a/fk.java
a/y.java
a/aaa.java
a/ok.java
a/da.java
a/ml.java
a/cw.java
a/lb.java
a/vn.java
a/ata.java
a/gu.java
a/ie.java
a/fj.java
a/aa.java
a/ji.java
a/gt.java
a/pk.java
a/iw.java
a/of.java
a/aot.java
a/dg.java
a/jd.java
a/nc.java
a/fu.java
a/bp.java
a/ex.java
a/jn.java
a/om.java
a/sr.java
a/hr.java
a/iv.java
a/og.java
a/gm.java
a/tj.java
a/cu.java
a/bw.java
a/az.java
a/kl.java
a/hw.java
a/an.java
a/gp.java
a/je.java
a/yf.java
a/gy.java
a/zj.java
a/ir.java
a/sx.java
a/cm.java
a/cj.java
a/cp.java
a/ol.java
a/gb.java
High
CVSS:5.9
App uses SQLite Database and execute raw SQL query. Untrusted user input in raw SQL queries can cause SQL Injection. Also sensitive information should be encrypted and written to the database.
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
M7: Client Code Quality
Files:
 a/nb.java
a/wz.java
High
CVSS:5.5
App creates temp file. Sensitive information should never be written into a temp file.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 a/zn.java
High
CVSS:5.9
SHA-1 is a weak hash known to have hash collisions.
MASVS: MSTG-CRYPTO-4
CWE-327 Use of a Broken or Risky Cryptographic Algorithm
M5: Insufficient Cryptography
Files:
 a/zn.java
High
CVSS:7.4
Files may contain hardcoded sensitive informations like usernames, passwords, keys etc.
MASVS: MSTG-STORAGE-14
CWE-312 Cleartext Storage of Sensitive Information
M9: Reverse Engineering
Files:
 a/aul.java
High
CVSS:5.5
App can read/write to External Storage. Any App can read data written to External Storage.
MASVS: MSTG-STORAGE-2
CWE-276 Incorrect Default Permissions
M2: Insecure Data Storage
Files:
 a/vm.java
a/gc.java
Pygal Germany: 100 United States: 900

Map computed by Pithus.

Domains analysis

Information computed with MobSF.

US forum.xda-developers.com 104.18.19.88
US www.w3.org 128.30.52.100
US xmlpull.org 74.50.61.58
US api.github.com 140.82.121.6
US xml.org 104.239.240.11
US raw.githubusercontent.com 185.199.109.133
US twitter.com 104.244.42.1
DE www.paypal.me 104.111.228.123
schemas.android.com
US www.patreon.com 104.16.6.49
US github.com 140.82.121.3

URL analysis

Information computed with MobSF.

https://github.com/Magisk-Modules-Repo/%s/archive/master.zip
Defined in a/wn.java
https://www.paypal.me/topjohnwu
https://www.patreon.com/topjohnwu
https://twitter.com/topjohnwu
https://github.com/topjohnwu/Magisk
http://forum.xda-developers.com/showthread.php?t=3432382
Defined in a/xl.java
https://www.paypal.me/topjohnwu
https://www.patreon.com/topjohnwu
https://twitter.com/topjohnwu
https://github.com/topjohnwu/Magisk
http://forum.xda-developers.com/showthread.php?t=3432382
Defined in a/xl.java
https://www.paypal.me/topjohnwu
https://www.patreon.com/topjohnwu
https://twitter.com/topjohnwu
https://github.com/topjohnwu/Magisk
http://forum.xda-developers.com/showthread.php?t=3432382
Defined in a/xl.java
https://www.paypal.me/topjohnwu
https://www.patreon.com/topjohnwu
https://twitter.com/topjohnwu
https://github.com/topjohnwu/Magisk
http://forum.xda-developers.com/showthread.php?t=3432382
Defined in a/xl.java
https://www.paypal.me/topjohnwu
https://www.patreon.com/topjohnwu
https://twitter.com/topjohnwu
https://github.com/topjohnwu/Magisk
http://forum.xda-developers.com/showthread.php?t=3432382
Defined in a/xl.java
http://xmlpull.org/v1/doc/features.html#process-namespaces
Defined in a/vl.java
https://api.github.com/users/Magisk-Modules-Repo/repos?per_page=100&sort=pushed&page=%d
Defined in a/yc.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
http://www.w3.org/TR/SVG11/feature#
http://www.w3.org/1999/xlink
http://xmlpull.org/v1/doc/features.html#process-docdecl
http://xmlpull.org/v1/doc/features.html#process-namespaces
http://xml.org/sax/features/external-general-entities
http://xml.org/sax/features/external-parameter-entities
http://xml.org/sax/properties/lexical-handler
http://www.w3.org/2000/svg
Defined in a/ta.java
https://raw.githubusercontent.com/topjohnwu/magisk_files/%s/%s
Defined in a/vm.java
https://raw.githubusercontent.com/Magisk-Modules-Repo/%s/master/%s
Defined in a/wa.java
https://raw.githubusercontent.com/Magisk-Modules-Repo/%s/master/%s
Defined in a/wt.java
http://schemas.android.com/apk/res/android
Defined in a/gk.java

Permissions analysis

Information computed with MobSF.

High android.permission.WRITE_EXTERNAL_STORAGE read/modify/delete external storage contents
Allows an application to write to external storage.
High android.permission.REQUEST_INSTALL_PACKAGES Allows an application to request installing packages.
Malicious applications can use this to try and trick users into installing additional malicious packages.
Low android.permission.VIBRATE control vibrator
Allows the application to control the vibrator.
Low android.permission.FOREGROUND_SERVICE Allows a regular application to use Service.startForeground
Low android.permission.RECEIVE_BOOT_COMPLETED automatically start at boot
Allows an application to start itself as soon as the system has finished booting. This can make it take longer to start the phone and allow the application to slow down the overall phone by always running.
Low android.permission.USE_FINGERPRINT allow use of fingerprint
This constant was deprecated in API level 28. Applications should request USE_BIOMETRIC instead
Low android.permission.WAKE_LOCK prevent phone from sleeping
Allows an application to prevent the phone from going to sleep.
Low android.permission.ACCESS_NETWORK_STATE view network status
Allows an application to view the status of all networks.
Low android.permission.INTERNET full Internet access
Allows an application to create network sockets.

Threat analysis

Information computed with Quark-Engine.

Confidence:
100%
Load external class
Confidence:
100%
Implicit intent(view a web page, make a phone call, etc.)
Confidence:
100%
Find a method from given class name, usually for reflection
Confidence:
100%
Method reflection
Confidence:
100%
Connect to a URL and read data from it
Confidence:
100%
Save the response to JSON after connecting to the remote server
Confidence:
100%
Read file and put it into a stream
Confidence:
100%
Load class from given class name
Confidence:
100%
Retrieve data from broadcast
Confidence:
100%
Get declared method from given method name
Confidence:
100%
Read sensitive data(SMS, CALLLOG, etc)
Confidence:
100%
Open a file from given absolute path of the file
Confidence:
100%
Implicit intent(view a web page, make a phone call, etc.) via setData
Confidence:
100%
Monitor the broadcast action events (BOOT_COMPLETED)
Confidence:
100%
Get last known location of the device
Confidence:
100%
Get location of the device
Confidence:
100%
Method reflection
Confidence:
100%
Hide the current app's icon
Confidence:
100%
Get the time of current location
Confidence:
100%
Initialize class object dynamically
Confidence:
100%
Read the input stream from given URL
Confidence:
100%
Connect to a URL and set request method
Confidence:
100%
Get specific method from other Dex files
Confidence:
80%
Read data and put it into a buffer stream
Confidence:
80%
Get absolute path of the file and store in string
Confidence:
80%
Check if the given file path exist
Confidence:
80%
Create a directory
Confidence:
80%
Get resource file from res/raw directory

Behavior analysis

Information computed with MobSF.

Android notifications
       a/fy.java
Base64 decode
       a/gg.java
a/sx.java
Base64 encode
       a/he.java
Certificate handling
       a/ze.java
Crypto
       a/ajy.java
a/ajv.java
a/akb.java
a/ajf.java
a/ajx.java
a/ajw.java
a/aka.java
a/yq.java
a/akg.java
Dynamic class and dexloading
       a/yp.java
a/yi.java
Execute os command
       a/aah.java
Gps location
       a/y.java
Get installed applications
       a/bp.java
a/vu.java
a/iw.java
Get system service
       a/gd.java
a/yg.java
a/jb.java
a/zd.java
a/s.java
a/di.java
a/bd.java
a/qr.java
a/qj.java
a/ak.java
a/dj.java
a/yq.java
a/y.java
a/da.java
a/jg.java
a/si.java
a/id.java
a/yk.java
a/ri.java
a/fy.java
a/mn.java
Http connection
       a/zd.java
a/zg.java
Https connection
       a/zd.java
a/ze.java
Inter process communication
       a/yp.java
a/bh.java
a/vu.java
a/rj.java
a/fs.java
a/fx.java
a/re.java
a/xe.java
a/wn.java
a/wa.java
a/vp.java
a/qm.java
a/fy.java
a/p.java
a/wo.java
a/s.java
a/oq.java
a/qj.java
a/d.java
a/yk.java
a/vn.java
a/ata.java
a/fw.java
a/jl.java
a/vr.java
a/yg.java
a/ji.java
a/fv.java
a/rg.java
a/wj.java
a/ll.java
a/iw.java
a/ax.java
a/xc.java
a/xh.java
a/fu.java
a/bp.java
a/wk.java
a/gc.java
a/vs.java
a/az.java
a/ba.java
a/jh.java
a/kn.java
a/qn.java
a/yo.java
a/xq.java
a/ri.java
a/gb.java
a/rf.java
a/qk.java
a/aq.java
Java reflection
       a/ie.java
a/mm.java
a/pn.java
a/iw.java
a/of.java
a/gq.java
a/fx.java
a/aah.java
a/n.java
a/jn.java
a/om.java
a/hr.java
a/iv.java
a/og.java
a/ko.java
a/jt.java
a/ajz.java
a/u.java
a/cu.java
a/kc.java
a/dl.java
a/oh.java
a/hq.java
a/ba.java
a/on.java
a/px.java
a/an.java
a/s.java
a/gp.java
a/pc.java
a/gy.java
a/ir.java
a/aaa.java
a/ok.java
a/cq.java
a/cm.java
a/atx.java
a/cp.java
a/id.java
a/cw.java
a/ol.java
a/gu.java
a/gr.java
Local file i/o operations
       a/lm.java
a/sd.java
a/yp.java
a/sf.java
a/yb.java
a/vl.java
a/gt.java
a/wj.java
a/ya.java
a/vs.java
Message digest
       a/akm.java
a/zt.java
a/akj.java
a/zn.java
a/ajt.java
a/alg.java
a/alh.java
a/akk.java
Starting activity
       a/vr.java
a/p.java
a/az.java
a/ji.java
a/wo.java
a/yp.java
a/wj.java
a/xc.java
a/fs.java
a/xh.java
a/xe.java
a/wn.java
a/vp.java
a/yo.java
a/ata.java
a/jl.java
Starting service
       a/wa.java
a/fy.java
a/qo.java
Tcp socket
       a/ze.java
a/zi.java

Control flow graphs analysis

Information computed by Pithus.

The application probably gets the location based on GPS and/or Wi-Fi

The application probably gets the network connections information

The application probably uses cryptography

The application probably plays sound

The application probably makes OS calls

The application probably sends data over HTTP/S

The application probably lists all installed applications

The application probably starts another application

The application probably executes OS commands

The application probably gets memory and CPU information