├── tmp └── urls.txt ├── reports └── .gitkeep ├── plugins ├── plugin_example │ └── frida.js ├── hide_app_icon_plugin │ ├── plugin.py │ └── frida.js ├── location_spoofer_plugin │ ├── plugin.py │ └── frida.js ├── library_plugin │ ├── frida.js │ ├── lib │ │ └── Library.py │ └── plugin.py ├── json_plugin │ ├── frida.js │ ├── lib │ │ └── Json.py │ └── plugin.py ├── strings_plugin │ ├── lib │ │ └── String.py │ ├── frida.js │ └── plugin.py ├── proxy_plugin │ ├── lib │ │ └── Proxy.py │ ├── frida.js │ └── plugin.py ├── base64_plugin │ ├── lib │ │ └── Base64.py │ └── plugin.py ├── file_interaction_plugin │ ├── lib │ │ └── File.py │ ├── frida.js │ └── plugin.py ├── socket_plugin │ ├── lib │ │ └── Socket.py │ ├── plugin.py │ └── frida.js ├── delete_file_plugin │ ├── lib │ │ └── DeletedFiles.py │ ├── plugin.py │ └── frida.js ├── log_plugin │ ├── lib │ │ └── Log.py │ ├── frida.js │ └── plugin.py ├── shared_preferences_plugin │ ├── lib │ │ └── SharedPreferences.py │ ├── frida.js │ └── plugin.py ├── hash_plugin │ ├── lib │ │ └── Hash.py │ ├── frida.js │ └── plugin.py ├── anti_emulator_plugin │ ├── lib │ │ └── AntiEmulator.py │ └── plugin.py ├── tcpdump_plugin │ ├── lib │ │ └── TCPDump.py │ └── plugin.py ├── proxy_url_plugin │ ├── lib │ │ └── ProxyURL.py │ └── plugin.py ├── cipher_plugin │ ├── lib │ │ └── Cipher.py │ ├── frida.js │ └── plugin.py └── dexclassloader_plugin │ ├── lib │ └── DexClassLoader.py │ └── plugin.py ├── external └── containers │ ├── .gitattributes │ ├── MANIFEST.in │ ├── js │ ├── jwt-provider │ │ ├── .gitignore │ │ ├── requirements.txt │ │ ├── Dockerfile │ │ ├── README.md │ │ ├── gen-passwords.py │ │ └── jwt-provider.py │ ├── public │ │ ├── favicon.ico │ │ ├── manifest.json │ │ └── index.html │ ├── protoc-plugin │ │ ├── README.MD │ │ └── Makefile │ ├── src │ │ ├── components │ │ │ ├── emulator │ │ │ │ ├── style.styl │ │ │ │ ├── views │ │ │ │ │ ├── logcat_view.js │ │ │ │ │ ├── simple_png_view.js │ │ │ │ │ └── webrtc_view.js │ │ │ │ └── net │ │ │ │ │ └── logcat.js │ │ │ └── copyright.js │ │ ├── App.test.js │ │ ├── index.css │ │ ├── index.js │ │ ├── App.css │ │ ├── App.js │ │ └── logo.svg │ ├── develop │ │ ├── README.md │ │ ├── Dockerfile.mac │ │ ├── Dockerfile.unix │ │ └── envoy.yaml │ ├── .gitignore │ ├── .dockerignore │ ├── docker │ │ ├── nginx.Dockerfile │ │ ├── envoy.Dockerfile │ │ ├── docker-compose.yaml │ │ ├── docker-compose-with-adb.yaml │ │ └── certs │ │ │ ├── self_sign.crt │ │ │ └── self_sign.key │ ├── develop.sh │ └── package.json │ ├── emu │ ├── __init__.py │ └── templates │ │ ├── README.md │ │ ├── default.pa │ │ └── avd │ │ ├── Pixel2.ini │ │ └── Pixel2.avd │ │ └── config.ini │ ├── pyproject.toml │ ├── aemu-container.code-workspace │ ├── tox.ini │ ├── run.sh │ ├── setup.cfg │ ├── run-with-gpu.sh │ ├── CONTRIBUTING.md │ ├── configure.sh │ ├── tests │ └── e2e │ │ ├── utils.py │ │ └── test_launch_containers.py │ ├── .gitignore │ └── create_web_container.sh ├── lib ├── model │ ├── TargetFiles.py │ ├── Rendering.py │ ├── Analysis.py │ ├── Key.py │ ├── database │ │ └── Database.py │ ├── Url.py │ └── Application.py ├── modules │ └── Module.py ├── receiver │ ├── Receiver.py │ ├── Screenrecord.py │ ├── Proxy.py │ └── TCPDump.py ├── adb │ ├── Physical.py │ └── DockerEmulator.py ├── proxy │ └── HttpProxy.py └── report │ └── ReportGenerator.py ├── assets ├── final.gif └── AVD_example.png ├── templates ├── report │ ├── fragments │ │ ├── plugins │ │ │ ├── Base64.jinja │ │ │ ├── Cipher.jinja │ │ │ ├── File.jinja │ │ │ ├── Hash.jinja │ │ │ ├── Json.jinja │ │ │ ├── Library.jinja │ │ │ ├── Log.jinja │ │ │ ├── Socket.jinja │ │ │ ├── String.jinja │ │ │ ├── DeletedFiles.jinja │ │ │ ├── ProxyURL.jinja │ │ │ ├── DexClassLoader.jinja │ │ │ └── SharedPreferences.jinja │ │ ├── application │ │ │ └── description.jinja │ │ ├── footer.jinja │ │ ├── app_info.jinja │ │ ├── sidebar.jinja │ │ ├── summary.jinja │ │ └── head.jinja │ └── index.jinja ├── fragments │ ├── body.jinja │ ├── footer.jinja │ ├── applications.jinja │ ├── application │ │ ├── keys.jinja │ │ └── urls.jinja │ ├── summary.jinja │ ├── head.jinja │ └── plugins.jinja └── index.jinja ├── dep ├── dist │ └── img │ │ ├── avatar.png │ │ ├── icons.png │ │ ├── photo1.png │ │ ├── photo2.png │ │ ├── photo3.jpg │ │ ├── photo4.jpg │ │ ├── prod-1.jpg │ │ ├── prod-2.jpg │ │ ├── prod-3.jpg │ │ ├── prod-4.jpg │ │ ├── prod-5.jpg │ │ ├── avatar04.png │ │ ├── avatar2.png │ │ ├── avatar3.png │ │ ├── avatar5.png │ │ ├── boxed-bg.jpg │ │ ├── boxed-bg.png │ │ ├── credit │ │ ├── visa.png │ │ ├── cirrus.png │ │ ├── mestro.png │ │ ├── paypal.png │ │ ├── paypal2.png │ │ ├── mastercard.png │ │ └── american-express.png │ │ ├── AdminLTELogo.png │ │ ├── user1-128x128.jpg │ │ ├── user2-160x160.jpg │ │ ├── user3-128x128.jpg │ │ ├── user4-128x128.jpg │ │ ├── user5-128x128.jpg │ │ ├── user6-128x128.jpg │ │ ├── user7-128x128.jpg │ │ ├── user8-128x128.jpg │ │ └── default-150x150.png ├── fontawesome-free │ ├── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.ttf │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ ├── fa-solid-900.woff2 │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.woff │ │ └── fa-regular-400.woff2 │ └── css │ │ ├── solid.min.css │ │ ├── brands.min.css │ │ ├── regular.min.css │ │ ├── brands.css │ │ ├── solid.css │ │ └── regular.css ├── datatables-responsive │ └── js │ │ ├── responsive.bootstrap4.min.js │ │ └── responsive.bootstrap4.js └── datatables-bs4 │ └── js │ └── dataTables.bootstrap4.min.js ├── out ├── platform-tools │ └── adb ├── default.pa └── avd │ ├── Pixel2.ini │ └── Pixel2.avd │ └── config.ini ├── config.py ├── frida_scripts └── lib │ ├── common_functions.js │ └── hooks.js ├── scripts ├── install_cert.sh └── uninstall.py ├── package.json ├── .gitignore ├── requirements.txt ├── tests └── database_test.py ├── main.py └── config └── config.ini /tmp/urls.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /reports/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/plugin_example/frida.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /external/containers/.gitattributes: -------------------------------------------------------------------------------- 1 | emu/_version.py export-subst 2 | -------------------------------------------------------------------------------- /lib/model/TargetFiles.py: -------------------------------------------------------------------------------- 1 | # TODO : Store modified files informations -------------------------------------------------------------------------------- /external/containers/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include versioneer.py 2 | include emu/_version.py 3 | -------------------------------------------------------------------------------- /assets/final.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/assets/final.gif -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Base64.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Cipher.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/File.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Hash.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Json.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Library.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Log.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/Socket.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/String.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /external/containers/js/jwt-provider/.gitignore: -------------------------------------------------------------------------------- 1 | passwd 2 | jwt_secrets_priv.jwks 3 | jwt_secrets_pub.jwks 4 | -------------------------------------------------------------------------------- /templates/report/fragments/plugins/DeletedFiles.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/ProxyURL.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /assets/AVD_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/assets/AVD_example.png -------------------------------------------------------------------------------- /dep/dist/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/avatar.png -------------------------------------------------------------------------------- /dep/dist/img/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/icons.png -------------------------------------------------------------------------------- /dep/dist/img/photo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/photo1.png -------------------------------------------------------------------------------- /dep/dist/img/photo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/photo2.png -------------------------------------------------------------------------------- /dep/dist/img/photo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/photo3.jpg -------------------------------------------------------------------------------- /dep/dist/img/photo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/photo4.jpg -------------------------------------------------------------------------------- /dep/dist/img/prod-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/prod-1.jpg -------------------------------------------------------------------------------- /dep/dist/img/prod-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/prod-2.jpg -------------------------------------------------------------------------------- /dep/dist/img/prod-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/prod-3.jpg -------------------------------------------------------------------------------- /dep/dist/img/prod-4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/prod-4.jpg -------------------------------------------------------------------------------- /dep/dist/img/prod-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/prod-5.jpg -------------------------------------------------------------------------------- /out/platform-tools/adb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/out/platform-tools/adb -------------------------------------------------------------------------------- /templates/report/fragments/plugins/DexClassLoader.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /templates/report/fragments/plugins/SharedPreferences.jinja: -------------------------------------------------------------------------------- 1 | {% include 'fragments/plugins/plugin_template.jinja' %} -------------------------------------------------------------------------------- /dep/dist/img/avatar04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/avatar04.png -------------------------------------------------------------------------------- /dep/dist/img/avatar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/avatar2.png -------------------------------------------------------------------------------- /dep/dist/img/avatar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/avatar3.png -------------------------------------------------------------------------------- /dep/dist/img/avatar5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/avatar5.png -------------------------------------------------------------------------------- /dep/dist/img/boxed-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/boxed-bg.jpg -------------------------------------------------------------------------------- /dep/dist/img/boxed-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/boxed-bg.png -------------------------------------------------------------------------------- /dep/dist/img/credit/visa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/visa.png -------------------------------------------------------------------------------- /dep/dist/img/AdminLTELogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/AdminLTELogo.png -------------------------------------------------------------------------------- /dep/dist/img/credit/cirrus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/cirrus.png -------------------------------------------------------------------------------- /dep/dist/img/credit/mestro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/mestro.png -------------------------------------------------------------------------------- /dep/dist/img/credit/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/paypal.png -------------------------------------------------------------------------------- /dep/dist/img/user1-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user1-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/user2-160x160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user2-160x160.jpg -------------------------------------------------------------------------------- /dep/dist/img/user3-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user3-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/user4-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user4-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/user5-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user5-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/user6-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user6-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/user7-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user7-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/user8-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/user8-128x128.jpg -------------------------------------------------------------------------------- /dep/dist/img/credit/paypal2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/paypal2.png -------------------------------------------------------------------------------- /dep/dist/img/default-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/default-150x150.png -------------------------------------------------------------------------------- /dep/dist/img/credit/mastercard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/mastercard.png -------------------------------------------------------------------------------- /external/containers/js/jwt-provider/requirements.txt: -------------------------------------------------------------------------------- 1 | pyjwt 2 | flask 3 | flask-cors 4 | absl-py 5 | Flask-HTTPAuth 6 | Werkzeug 7 | JWCrypto -------------------------------------------------------------------------------- /dep/dist/img/credit/american-express.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/dist/img/credit/american-express.png -------------------------------------------------------------------------------- /external/containers/emu/__init__.py: -------------------------------------------------------------------------------- 1 | from ._version import get_versions 2 | 3 | __version__ = get_versions()["version"] 4 | del get_versions 5 | -------------------------------------------------------------------------------- /external/containers/js/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/external/containers/js/public/favicon.ico -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /dep/fontawesome-free/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Areizen/Android-Malware-Sandbox/HEAD/dep/fontawesome-free/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /external/containers/js/protoc-plugin/README.MD: -------------------------------------------------------------------------------- 1 | The plugin is taken from: https://github.com/grpc/grpc-web/tree/master/javascript/net/grpc/web @ ffe8e9c 2 | 3 | 4 | -------------------------------------------------------------------------------- /lib/model/Rendering.py: -------------------------------------------------------------------------------- 1 | class Rendering: 2 | 3 | def __init__(self, p_analysis, p_plugins): 4 | self.analysis = p_analysis 5 | self.plugins = p_plugins -------------------------------------------------------------------------------- /config.py: -------------------------------------------------------------------------------- 1 | import configparser 2 | import os 3 | dirname = os.path.dirname(os.path.realpath(__file__)) 4 | 5 | config = configparser.ConfigParser() 6 | config.read(f"{dirname}/config/config.ini") -------------------------------------------------------------------------------- /external/containers/js/src/components/emulator/style.styl: -------------------------------------------------------------------------------- 1 | .btn{ 2 | display:block; 3 | margin-bottom:30px 4 | padding:8px 10px 5 | } 6 | .container{ 7 | margin:20px 8 | 9 | } 10 | -------------------------------------------------------------------------------- /external/containers/pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | # Minimum requirements for the build system to execute. 3 | requires = ["setuptools", "wheel"] # PEP 508 specifications. 4 | 5 | [tool.black] 6 | line-length = 120 -------------------------------------------------------------------------------- /templates/fragments/body.jinja: -------------------------------------------------------------------------------- 1 |
Application name : {{ application.get_app_name() }}
4 |Package name : {{ application.package }}
5 |SHA256 : {{ application.sha256 }}
6 |Icon :
7 || Type | 8 |Value | 9 |
|---|---|
| {{ key.type }} | 15 |{{ key.value }} | 16 |
| Hash | 8 |Package Name | 9 |Link | 10 |
|---|---|---|
| {{ application.sha256 }} | 16 |{{ application.package }} | 17 |Link | 18 |
| {{ key }} | 13 | {% endfor %} 14 |
|---|
| {{ value|e -}} | 21 | {% endfor %} 22 |
| Scheme | 7 |Ip | 8 |Domain | 9 |Path | 10 |Query | 11 |Stack Trace | 12 |Is up ? | 13 |Nb of times ? | 14 |Date | 15 | 16 |
|---|---|---|---|---|---|---|---|---|
| {{ url.scheme }} | 22 |{{ url.ip }} | 23 |{{ url.domain }} | 24 |{{ url.uri }} | 25 |{{ url.query }} | 26 |{{ url.stacktrace }} | 27 |{{ url.is_up }} | 28 |{{ url.nb }} | 29 |{{ url.date }} | 30 |
84 | );
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/templates/report/fragments/sidebar.jinja:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/external/containers/js/develop/envoy.yaml:
--------------------------------------------------------------------------------
1 |
2 | static_resources:
3 | listeners:
4 | - name: development
5 | address:
6 | socket_address: { address: 0.0.0.0, port_value: 8080 }
7 | filter_chains:
8 | - filters:
9 | - name: envoy.http_connection_manager
10 | config:
11 | codec_type: auto
12 | stat_prefix: ingress_http
13 | stream_idle_timeout: 0s # Needed for streaming support.
14 | route_config:
15 | name: local_route
16 | virtual_hosts:
17 | - name: local_service
18 | domains: ["*"]
19 | routes:
20 | # This is the emulator endpoint for grpc requests.
21 | - match: { prefix: "/android.emulation.control.EmulatorController" }
22 | route:
23 | cluster: emulator_service_grpc
24 | max_grpc_timeout: 0s
25 |
26 | # This is the JWT token provider, responsible for handing our secure tokens.
27 | - match: { prefix: "/" }
28 | route: { cluster: npm }
29 |
30 | cors:
31 | allow_origin: ["*"]
32 | allow_methods: GET, PUT, DELETE, POST, OPTIONS
33 | allow_headers: keep-alive,user-agent,cache-control,content-type,content-transfer-encoding,custom-header-1,x-accept-content-transfer-encoding,x-accept-response-streaming,x-user-agent,x-grpc-web,grpc-timeout
34 | max_age: "1728000"
35 | expose_headers: custom-header-1,grpc-status,grpc-message
36 | http_filters:
37 | - name: envoy.grpc_web
38 | - name: envoy.cors
39 | - name: envoy.router
40 |
41 | clusters:
42 | - name: emulator_service_grpc
43 | connect_timeout: 0.250s
44 | type: strict_dns
45 | lb_policy: round_robin
46 | upstream_connection_options:
47 | tcp_keepalive:
48 | keepalive_probes: 1
49 | keepalive_time: 10
50 | keepalive_interval: 10
51 | http2_protocol_options: {}
52 | load_assignment:
53 | cluster_name: emulator_service_grpc
54 | endpoints:
55 | - lb_endpoints:
56 | - endpoint:
57 | address:
58 | socket_address:
59 | address: host.docker.internal
60 | port_value: 5556
61 | - name: npm
62 | connect_timeout: 0.25s
63 | type: strict_dns
64 | lb_policy: round_robin
65 | load_assignment:
66 | cluster_name: npm
67 | endpoints:
68 | - lb_endpoints:
69 | - endpoint:
70 | address:
71 | socket_address:
72 | address: host.docker.internal
73 | port_value: 3000
74 | admin:
75 | access_log_path: "/dev/stdout"
76 | address:
77 | socket_address:
78 | address: 0.0.0.0
79 | port_value: 8001
80 |
--------------------------------------------------------------------------------
/external/containers/js/jwt-provider/jwt-provider.py:
--------------------------------------------------------------------------------
1 | # Lint as: python3
2 | """A basic example of a service that hands out JWT tokens.
3 | """
4 |
5 | import json
6 | from datetime import datetime, timedelta
7 |
8 | import jwt
9 | from absl import app, flags, logging
10 | from flask import Flask
11 | from flask_httpauth import HTTPBasicAuth
12 | from werkzeug.security import check_password_hash, generate_password_hash
13 |
14 | FLAGS = flags.FLAGS
15 |
16 | flags.DEFINE_string('passwd', 'passwd', 'The json password file used to verify access, generated by running gen-passwords.py')
17 | flags.DEFINE_string('jwk', 'jwt_secrets_priv.jwks', 'The jwk webkey used for signing, generated by running gen-passwords.py')
18 | flags.DEFINE_integer('port', 8080, 'The port where this service will run')
19 |
20 |
21 | class MyHTTPBasicAuth(HTTPBasicAuth):
22 | """Let's prevent these annoying popups in the browser."""
23 | def authenticate_header(self):
24 | return 'Token realm="Token"'
25 |
26 |
27 | api = Flask(__name__)
28 | auth = MyHTTPBasicAuth()
29 | private_key = {}
30 |
31 | users = {}
32 |
33 | @auth.verify_password
34 | def verify_password(username, password):
35 | logging.info("user: %s - exists: %s",username, username in users)
36 | if username in users:
37 | return check_password_hash(users.get(username), password)
38 | return False
39 |
40 | @api.route('/token', methods=['GET'])
41 | @auth.login_required
42 | def get_token():
43 | token = {
44 | # The KeyID, envoy will use this to pick the proper decryption key.
45 | 'kid' : private_key[0],
46 | # Both the 'iss' and 'aud' must match what is expected
47 | # in the envoy.yaml configuration
48 | # under "issuer" and "audiences", without it the token will be rejected.
49 | 'iss' : 'android-emulator@jwt-provider.py',
50 | 'aud' : 'android.emulation.control.EmulatorController',
51 | # we give users 2 hours of access.
52 | 'exp' : datetime.now() + timedelta(hours=2),
53 | 'iat' : datetime.now(),
54 | 'name' : auth.username()
55 | }
56 | return jwt.encode(token, private_key[1], algorithm='RS256')
57 |
58 |
59 | def main(argv):
60 | if len(argv) > 1:
61 | raise app.UsageError('Too many command-line arguments.')
62 |
63 | global users
64 | global private_key
65 |
66 | with open(FLAGS.passwd) as f:
67 | users = json.load(f)
68 |
69 | logging.info('Loaded: %s', users.keys())
70 |
71 | # Note you really shouldn't have multiple keys in the jwks, as we will only use the last one.
72 | with open(FLAGS.jwk) as f:
73 | jwks = json.load(f)
74 | for key in jwks['keys']:
75 | private_key = (key['kid'], jwt.algorithms.RSAAlgorithm.from_jwk(json.dumps(key)))
76 |
77 |
78 | api.run(host='0.0.0.0', port=FLAGS.port)
79 |
80 | if __name__ == '__main__':
81 | app.run(main)
82 |
--------------------------------------------------------------------------------
/external/containers/js/src/components/emulator/net/logcat.js:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License")
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | import { EventEmitter } from "events";
17 | import "../../../android_emulation_control/emulator_controller_pb"
18 |
19 | /**
20 | * Gets the logcat stream from the emulator. Register for the 'data' event to receive a logline
21 | * when one is available.
22 | *
23 | * @export
24 | * @class Logcat
25 | */
26 | export default class Logcat {
27 | constructor(emulator) {
28 | this.emulator = emulator;
29 | this.offset = 0;
30 | this.lastline = "";
31 | this.events = new EventEmitter();
32 | this.stream = null;
33 | }
34 |
35 | on = (name, fn) => {
36 | this.events.on(name, fn);
37 | };
38 |
39 | /**
40 | * Stops the ongoing stream by canceling it. This will raise an error.
41 | *
42 | * @memberof Logcat
43 | */
44 | stop = () => {
45 | if (this.stream) {
46 | this.stream.cancel();
47 | }
48 | };
49 |
50 | /**
51 | * Requests the logcat stream.
52 | *
53 | * @param {Callback} fnNotify when a new log line arrives.
54 | * @memberof Logcat
55 | */
56 | start = fnNotify => {
57 | if (fnNotify) this.on("data", fnNotify);
58 | const self = this;
59 | /* eslint-disable */
60 | const request = new proto.android.emulation.control.LogMessage();
61 | request.setStart(this.offset);
62 | this.stream = this.emulator.streamLogcat(request);
63 |
64 | this.stream.on("data", response => {
65 | self.offset = response.getNext();
66 | const contents = response.getContents();
67 | const lines = contents.split("\n");
68 | const last = contents[contents.length - 1];
69 | var cnt = lines.length;
70 | if (last != "\n") {
71 | cnt--;
72 | self.lastline += lines[Math.max(0, cnt - 1)];
73 | }
74 | for (var i = 0; i < cnt; i++) {
75 | var line = lines[i];
76 | if (i === 0) {
77 | line = self.lastline + line;
78 | self.lastline = "";
79 | }
80 | if (line.length > 0) self.events.emit("data", line);
81 | }
82 | });
83 | this.stream.on("error", error => {
84 | if (error.code = 1) {
85 | // Ignore we got cancelled.
86 | }
87 | });
88 | };
89 | }
90 |
--------------------------------------------------------------------------------
/external/containers/create_web_container.sh:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | # Copyright 2019 The Android Open Source Project
3 | #
4 | # Licensed under the Apache License, Version 2.0 (the "License");
5 | # you may not use this file except in compliance with the License.
6 | # You may obtain a copy of the License at
7 | #
8 | # http://www.apache.org/licenses/LICENSE-2.0
9 | #
10 | # Unless required by applicable law or agreed to in writing, software
11 | # distributed under the License is distributed on an "AS IS" BASIS,
12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | # See the License for the specific language governing permissions and
14 | # limitations under the License.
15 |
16 | DOCKER_YAML=js/docker/docker-compose.yaml
17 | PASSWDS="$USER,hello"
18 |
19 | help() {
20 | cat <Application name : {{ application.get_app_name() }}
22 |Package name : {{ application.package }}
23 |SHA256 : {{ application.sha256 }}
24 |