mirror of
https://github.com/MobSF/Mobile-Security-Framework-MobSF.git
synced 2026-10-11 22:50:09 +00:00
HOTFIX: setup.py and directory refactoring
Python setup.py #1585 directory refactoring
This commit is contained in:
+12
-7
@@ -6,16 +6,21 @@
|
||||
.sonarcloud.properties
|
||||
.pyup.yml
|
||||
tox.ini
|
||||
db.sqlite3
|
||||
mobsf/db.sqlite3
|
||||
Dockerfile
|
||||
dist
|
||||
*.egg-info
|
||||
docker-compose.yml
|
||||
*.md
|
||||
venv
|
||||
setup.py
|
||||
MANIFEST.in
|
||||
setup.bat
|
||||
run.bat
|
||||
*.md
|
||||
setup.sh
|
||||
run.sh
|
||||
downloads
|
||||
uploads
|
||||
logs
|
||||
venv
|
||||
secret
|
||||
mobsf/downloads
|
||||
mobsf/uploads
|
||||
mobsf/debug.log
|
||||
mobsf/secret
|
||||
mobsf/StaticAnalyzer/test_files/
|
||||
+1
-1
@@ -1 +1 @@
|
||||
DynamicAnalyzer/tools/onDevice/frida/ filter=lfs diff=lfs merge=lfs -text
|
||||
mobsf/DynamicAnalyzer/tools/onDevice/frida/ filter=lfs diff=lfs merge=lfs -text
|
||||
|
||||
@@ -39,7 +39,7 @@ Guidelines for bug reports:
|
||||
3. **Isolate the problem** — create a [reduced test
|
||||
case](http://css-tricks.com/reduced-test-cases/) and a live example.
|
||||
|
||||
4. **Add Log file** — Please add the log file `logs/debug.log` while opening bugs.
|
||||
4. **Add Log file** — Please add the log file `mobsf/debug.log` while opening bugs.
|
||||
|
||||
5. **Timely Response** — Once you open a bug, you should also provide additional information if requested. Failure to do so in 10 days will result in closure of the bug without further communication.
|
||||
|
||||
@@ -60,7 +60,7 @@ Example:
|
||||
> 1. This is the first step
|
||||
> 2. This is the second step
|
||||
> 3. Further steps, etc.
|
||||
> 4. Log information from `logs/debug.log`
|
||||
> 4. Log information from `mobsf/debug.log`
|
||||
>
|
||||
> `<url>` - a link to the reduced test case
|
||||
>
|
||||
|
||||
@@ -39,7 +39,7 @@ What happens, under which versions, under what conditions, when, and what were y
|
||||
## LOG FILE
|
||||
|
||||
```
|
||||
Paste the contents of logs/debug.log here or attach the log file.
|
||||
Paste the contents of mobsf/debug.log here or attach the log file.
|
||||
```
|
||||
|
||||
<!--
|
||||
|
||||
@@ -55,4 +55,4 @@ jobs:
|
||||
- name: Unit Tests
|
||||
run: |
|
||||
git submodule update --init --recursive
|
||||
python manage.py test
|
||||
python manage.py test mobsf
|
||||
|
||||
+10
-8
@@ -1,7 +1,6 @@
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
MobSF/windows_vm_priv_key.asc
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
@@ -20,6 +19,7 @@ lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
dist
|
||||
var/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
@@ -63,14 +63,16 @@ target/
|
||||
#D2J Error file
|
||||
classes-error.zip
|
||||
|
||||
#MobSF Files
|
||||
logs/
|
||||
uploads/
|
||||
db.sqlite3
|
||||
secret
|
||||
|
||||
#IntelliJ IDE
|
||||
.idea
|
||||
*/migrations/*
|
||||
.fuse_hidden*
|
||||
/MalwareAnalyzer/malwaredb/*
|
||||
.tox
|
||||
|
||||
#MobSF Files
|
||||
mobsf/debug.log
|
||||
mobsf/uploads/
|
||||
mobsf/db.sqlite3
|
||||
mobsf/secret
|
||||
mobsf/StaticAnalyzer/migrations
|
||||
mobsf/MobSF/windows_vm_priv_key.asc
|
||||
+2
-2
@@ -1,3 +1,3 @@
|
||||
[submodule "StaticAnalyzer/test_files"]
|
||||
path = StaticAnalyzer/test_files
|
||||
[submodule "mobsf/StaticAnalyzer/test_files"]
|
||||
path = mobsf/StaticAnalyzer/test_files
|
||||
url = https://github.com/MobSF/test_files.git
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
sonar.sources=.
|
||||
sonar.exclusions=static/**/*,templates/**/*
|
||||
sonar.exclusions=mobsf/static/**/*,mobsf/templates/**/*
|
||||
sonar.sourceEncoding=UTF-8
|
||||
|
||||
+2
-2
@@ -87,8 +87,8 @@ COPY . .
|
||||
RUN rm -rf /root/Mobile-Security-Framework-MobSF/scripts/wheels > /dev/null 2>&1
|
||||
|
||||
# Enable Use Home Directory and set adb path
|
||||
RUN sed -i 's/USE_HOME = False/USE_HOME = True/g' MobSF/settings.py && \
|
||||
sed -i "s#ADB_BINARY = ''#ADB_BINARY = '/usr/bin/adb'#" MobSF/settings.py
|
||||
RUN sed -i 's/USE_HOME = False/USE_HOME = True/g' mobsf/MobSF/settings.py && \
|
||||
sed -i "s#ADB_BINARY = ''#ADB_BINARY = '/usr/bin/adb'#" mobsf/MobSF/settings.py
|
||||
|
||||
# Postgres support is set to false by default
|
||||
ARG POSTGRES=False
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
|
||||
recursive-include mobsf/StaticAnalyzer/tools *
|
||||
recursive-include mobsf/DynamicAnalyzer/tools *
|
||||
recursive-include mobsf/StaticAnalyzer/views/android/rules *
|
||||
recursive-include mobsf/StaticAnalyzer/views/ios/rules *
|
||||
recursive-include mobsf/signatures *
|
||||
recursive-include mobsf/static *
|
||||
recursive-include mobsf/templates *
|
||||
recursive-include mobsf/install *
|
||||
recursive-exclude *.pyc
|
||||
@@ -7,7 +7,7 @@ import sys
|
||||
warnings.filterwarnings('ignore', category=UserWarning, module='cffi')
|
||||
|
||||
if __name__ == '__main__':
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MobSF.settings')
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mobsf.MobSF.settings')
|
||||
|
||||
from django.core.management import execute_from_command_line
|
||||
if 'runserver' in sys.argv:
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -6,7 +6,7 @@ import time
|
||||
|
||||
import requests
|
||||
|
||||
from MobSF.utils import is_file_exists, upstream_proxy
|
||||
from mobsf.MobSF.utils import is_file_exists, upstream_proxy
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+9
-7
@@ -8,13 +8,15 @@ import shutil
|
||||
import tarfile
|
||||
from pathlib import Path
|
||||
|
||||
from MobSF.utils import (is_file_exists,
|
||||
is_pipe_or_link,
|
||||
python_list)
|
||||
|
||||
from StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
|
||||
from MalwareAnalyzer.views.MalwareDomainCheck import MalwareDomainCheck
|
||||
from mobsf.MobSF.utils import (
|
||||
is_file_exists,
|
||||
is_pipe_or_link,
|
||||
python_list,
|
||||
)
|
||||
from mobsf.StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
from mobsf.MalwareAnalyzer.views.MalwareDomainCheck import (
|
||||
MalwareDomainCheck,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+10
-10
@@ -12,25 +12,23 @@ from django.http import (HttpResponseRedirect,
|
||||
from django.conf import settings
|
||||
from django.shortcuts import render
|
||||
|
||||
from DynamicAnalyzer.views.android.environment import Environment
|
||||
from DynamicAnalyzer.views.android.operations import (
|
||||
from mobsf.DynamicAnalyzer.views.android.environment import Environment
|
||||
from mobsf.DynamicAnalyzer.views.android.operations import (
|
||||
get_package_name,
|
||||
strict_package_check,
|
||||
)
|
||||
from DynamicAnalyzer.tools.webproxy import (
|
||||
from mobsf.DynamicAnalyzer.tools.webproxy import (
|
||||
start_httptools_ui,
|
||||
stop_httptools,
|
||||
)
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.MobSF.utils import (
|
||||
get_config_loc,
|
||||
get_device,
|
||||
get_proxy_ip,
|
||||
is_md5,
|
||||
print_n_send_error_response,
|
||||
)
|
||||
|
||||
|
||||
from StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
from mobsf.StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -58,7 +56,8 @@ def dynamic_analysis(request, api=False):
|
||||
' find android instance identifier.'
|
||||
' Please run an android instance and refresh'
|
||||
' this page. If this error persists,'
|
||||
' set ANALYZER_IDENTIFIER in MobSF/settings.py')
|
||||
' set ANALYZER_IDENTIFIER in '
|
||||
f'{get_config_loc()}')
|
||||
return print_n_send_error_response(request, msg, api)
|
||||
proxy_ip = get_proxy_ip(identifier)
|
||||
context = {'apps': scan_apps,
|
||||
@@ -105,7 +104,8 @@ def dynamic_analyzer(request, checksum, api=False):
|
||||
' find android instance identifier. '
|
||||
'Please run an android instance and refresh'
|
||||
' this page. If this error persists,'
|
||||
' set ANALYZER_IDENTIFIER in MobSF/settings.py')
|
||||
' set ANALYZER_IDENTIFIER in '
|
||||
f'{get_config_loc()}')
|
||||
return print_n_send_error_response(request, msg, api)
|
||||
env = Environment(identifier)
|
||||
if not env.connect_n_mount():
|
||||
+4
-6
@@ -13,25 +13,23 @@ from django.conf import settings
|
||||
|
||||
from OpenSSL import crypto
|
||||
|
||||
from DynamicAnalyzer.tools.webproxy import (
|
||||
from mobsf.DynamicAnalyzer.tools.webproxy import (
|
||||
get_ca_file,
|
||||
start_proxy,
|
||||
stop_httptools,
|
||||
)
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.MobSF.utils import (
|
||||
get_adb,
|
||||
get_device,
|
||||
get_proxy_ip,
|
||||
is_file_exists,
|
||||
python_list,
|
||||
)
|
||||
|
||||
from StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
from mobsf.StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
ANDROID_API_SUPPORTED = 29
|
||||
FRIDA_VERSION = '14.2.2'
|
||||
FRIDA_VERSION = '14.2.6'
|
||||
|
||||
|
||||
class Environment:
|
||||
+8
-6
@@ -9,17 +9,19 @@ from django.conf import settings
|
||||
|
||||
import frida
|
||||
|
||||
from DynamicAnalyzer.views.android.environment import Environment
|
||||
from DynamicAnalyzer.views.android.frida_scripts import (
|
||||
from mobsf.DynamicAnalyzer.views.android.environment import Environment
|
||||
from mobsf.DynamicAnalyzer.views.android.frida_scripts import (
|
||||
class_pattern,
|
||||
class_trace,
|
||||
get_loaded_classes,
|
||||
get_methods,
|
||||
string_catch,
|
||||
string_compare)
|
||||
|
||||
from MobSF.utils import (get_device,
|
||||
is_file_exists)
|
||||
string_compare,
|
||||
)
|
||||
from mobsf.MobSF.utils import (
|
||||
get_device,
|
||||
is_file_exists,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@ import os
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from DynamicAnalyzer.views.android.operations import strict_package_check
|
||||
from mobsf.DynamicAnalyzer.views.android.operations import strict_package_check
|
||||
|
||||
|
||||
def get_content(file_name):
|
||||
+5
-5
@@ -12,16 +12,16 @@ from django.conf import settings
|
||||
from django.http import HttpResponse
|
||||
from django.views.decorators.http import require_http_methods
|
||||
|
||||
from DynamicAnalyzer.views.android.environment import Environment
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.DynamicAnalyzer.views.android.environment import (
|
||||
Environment,
|
||||
)
|
||||
from mobsf.MobSF.utils import (
|
||||
get_adb,
|
||||
get_device,
|
||||
is_md5,
|
||||
is_number,
|
||||
)
|
||||
|
||||
from StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
from mobsf.StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+9
-6
@@ -10,19 +10,22 @@ from django.shortcuts import render
|
||||
from django.template.defaulttags import register
|
||||
from django.utils.html import escape
|
||||
|
||||
from DynamicAnalyzer.views.android.analysis import (
|
||||
from mobsf.DynamicAnalyzer.views.android.analysis import (
|
||||
generate_download,
|
||||
get_screenshots,
|
||||
run_analysis,
|
||||
)
|
||||
from DynamicAnalyzer.views.android.operations import (
|
||||
from mobsf.DynamicAnalyzer.views.android.operations import (
|
||||
get_package_name,
|
||||
is_path_traversal,
|
||||
)
|
||||
from DynamicAnalyzer.views.android.tests_xposed import droidmon_api_analysis
|
||||
from DynamicAnalyzer.views.android.tests_frida import apimon_analysis
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.DynamicAnalyzer.views.android.tests_xposed import (
|
||||
droidmon_api_analysis,
|
||||
)
|
||||
from mobsf.DynamicAnalyzer.views.android.tests_frida import (
|
||||
apimon_analysis,
|
||||
)
|
||||
from mobsf.MobSF.utils import (
|
||||
is_file_exists,
|
||||
is_md5,
|
||||
is_safe_path,
|
||||
+10
-8
@@ -6,21 +6,23 @@ import os
|
||||
from django.conf import settings
|
||||
from django.views.decorators.http import require_http_methods
|
||||
|
||||
from DynamicAnalyzer.views.android.operations import (
|
||||
from mobsf.DynamicAnalyzer.views.android.operations import (
|
||||
get_package_name,
|
||||
invalid_params,
|
||||
send_response,
|
||||
)
|
||||
from DynamicAnalyzer.views.android.environment import Environment
|
||||
from DynamicAnalyzer.views.android.tests_xposed import download_xposed_log
|
||||
from DynamicAnalyzer.tools.webproxy import stop_httptools
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.DynamicAnalyzer.views.android.environment import (
|
||||
Environment,
|
||||
)
|
||||
from mobsf.DynamicAnalyzer.views.android.tests_xposed import (
|
||||
download_xposed_log,
|
||||
)
|
||||
from mobsf.DynamicAnalyzer.tools.webproxy import stop_httptools
|
||||
from mobsf.MobSF.utils import (
|
||||
is_md5,
|
||||
python_list,
|
||||
)
|
||||
|
||||
from StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
from mobsf.StaticAnalyzer.models import StaticAnalyzerAndroid
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+3
-4
@@ -13,15 +13,14 @@ from django.shortcuts import render
|
||||
from django.conf import settings
|
||||
from django.views.decorators.http import require_http_methods
|
||||
|
||||
from DynamicAnalyzer.views.android.frida_core import Frida
|
||||
from DynamicAnalyzer.views.android.operations import (
|
||||
from mobsf.DynamicAnalyzer.views.android.frida_core import Frida
|
||||
from mobsf.DynamicAnalyzer.views.android.operations import (
|
||||
get_package_name,
|
||||
invalid_params,
|
||||
is_attack_pattern,
|
||||
send_response,
|
||||
)
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.MobSF.utils import (
|
||||
is_file_exists,
|
||||
is_md5,
|
||||
is_safe_path,
|
||||
+8
-3
@@ -6,9 +6,14 @@ import json
|
||||
import os
|
||||
import re
|
||||
|
||||
from DynamicAnalyzer.views.android.environment import Environment
|
||||
|
||||
from MobSF.utils import (is_base64, is_file_exists, python_list)
|
||||
from mobsf.DynamicAnalyzer.views.android.environment import (
|
||||
Environment,
|
||||
)
|
||||
from mobsf.MobSF.utils import (
|
||||
is_base64,
|
||||
is_file_exists,
|
||||
python_list,
|
||||
)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ from django.conf import settings
|
||||
|
||||
import IP2Location
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.MobSF.utils import (
|
||||
is_internet_available,
|
||||
update_local_db,
|
||||
)
|
||||
@@ -10,7 +10,7 @@ from collections import namedtuple
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.MobSF.utils import (
|
||||
find_java_binary,
|
||||
is_file_exists,
|
||||
is_internet_available,
|
||||
@@ -4,7 +4,7 @@ import requests
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from MobSF.utils import (
|
||||
from mobsf.MobSF.utils import (
|
||||
file_size,
|
||||
upstream_proxy,
|
||||
)
|
||||
@@ -6,7 +6,7 @@ import subprocess
|
||||
import sys
|
||||
import shutil
|
||||
|
||||
from install.windows.setup import windows_config_local
|
||||
from mobsf.install.windows.setup import windows_config_local
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -59,7 +59,10 @@ def create_user_conf(mobsf_home, base_dir):
|
||||
|
||||
def django_operation(cmds, base_dir):
|
||||
"""Generic Function for Djano operations."""
|
||||
manage = os.path.join(base_dir, 'manage.py')
|
||||
manage = os.path.join(base_dir, '../manage.py')
|
||||
if not os.path.exists(manage):
|
||||
# Bail out for package
|
||||
return
|
||||
args = [sys.executable, manage]
|
||||
args.extend(cmds)
|
||||
subprocess.call(args)
|
||||
@@ -99,10 +102,6 @@ def get_mobsf_home(use_home, base_dir):
|
||||
create_user_conf(mobsf_home, base_dir)
|
||||
else:
|
||||
mobsf_home = base_dir
|
||||
# Logs Directory
|
||||
log_dir = os.path.join(mobsf_home, 'logs/')
|
||||
if not os.path.exists(log_dir):
|
||||
os.makedirs(log_dir)
|
||||
# Download Directory
|
||||
dwd_dir = os.path.join(mobsf_home, 'downloads/')
|
||||
if not os.path.exists(dwd_dir):
|
||||
@@ -119,7 +118,10 @@ def get_mobsf_home(use_home, base_dir):
|
||||
sig_dir = os.path.join(mobsf_home, 'signatures/')
|
||||
if use_home:
|
||||
src = os.path.join(base_dir, 'signatures/')
|
||||
shutil.copytree(src, sig_dir, dirs_exist_ok=True)
|
||||
try:
|
||||
shutil.copytree(src, sig_dir)
|
||||
except Exception:
|
||||
pass
|
||||
elif not os.path.exists(sig_dir):
|
||||
os.makedirs(sig_dir)
|
||||
return mobsf_home
|
||||
@@ -9,7 +9,7 @@ import imp
|
||||
import logging
|
||||
import os
|
||||
|
||||
from MobSF.init import (
|
||||
from mobsf.MobSF.init import (
|
||||
first_run,
|
||||
get_mobsf_home,
|
||||
)
|
||||
@@ -20,9 +20,8 @@ logger = logging.getLogger(__name__)
|
||||
# MOBSF CONFIGURATIONS
|
||||
# !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
|
||||
MOBSF_VER = 'v3.2.5 Beta'
|
||||
|
||||
VERSION = '3.2.6'
|
||||
MOBSF_VER = 'v3.2.6 Beta' # Remove this later with format
|
||||
BANNER = """
|
||||
__ __ _ ____ _____ _____ ____
|
||||
| \/ | ___ | |__/ ___|| ___| |___ / |___ \
|
||||
@@ -42,8 +41,6 @@ USE_HOME = False
|
||||
# ===============================================
|
||||
|
||||
MobSF_HOME = get_mobsf_home(USE_HOME, BASE_DIR)
|
||||
# Logs Directory
|
||||
LOG_DIR = os.path.join(MobSF_HOME, 'logs/')
|
||||
# Download Directory
|
||||
DWD_DIR = os.path.join(MobSF_HOME, 'downloads/')
|
||||
# Screenshot Directory
|
||||
@@ -87,9 +84,9 @@ DATABASES = {
|
||||
"""
|
||||
# ===============================================
|
||||
|
||||
# ==========LOAD CONFIG FROM MobSF HOME==========
|
||||
# ==========LOAD CONFIG from .MobSF HOME==========
|
||||
try:
|
||||
# Update Config from MobSF Home Directory
|
||||
# Update Config from .MobSF Home Directory
|
||||
if USE_HOME:
|
||||
USER_CONFIG = os.path.join(MobSF_HOME, 'config.py')
|
||||
sett = imp.load_source('user_settings', USER_CONFIG)
|
||||
@@ -160,10 +157,10 @@ INSTALLED_APPS = (
|
||||
'django.contrib.sessions',
|
||||
'django.contrib.messages',
|
||||
'django.contrib.staticfiles',
|
||||
'StaticAnalyzer',
|
||||
'DynamicAnalyzer',
|
||||
'MobSF',
|
||||
'MalwareAnalyzer',
|
||||
'mobsf.StaticAnalyzer',
|
||||
'mobsf.DynamicAnalyzer',
|
||||
'mobsf.MobSF',
|
||||
'mobsf.MalwareAnalyzer',
|
||||
)
|
||||
MIDDLEWARE_CLASSES = (
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
@@ -178,10 +175,10 @@ MIDDLEWARE_CLASSES = (
|
||||
)
|
||||
|
||||
MIDDLEWARE = (
|
||||
'MobSF.views.api.api_middleware.RestApiAuthMiddleware',
|
||||
'mobsf.MobSF.views.api.api_middleware.RestApiAuthMiddleware',
|
||||
)
|
||||
ROOT_URLCONF = 'MobSF.urls'
|
||||
WSGI_APPLICATION = 'MobSF.wsgi.application'
|
||||
ROOT_URLCONF = 'mobsf.MobSF.urls'
|
||||
WSGI_APPLICATION = 'mobsf.MobSF.wsgi.application'
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
TIME_ZONE = os.getenv('TIME_ZONE', 'UTC')
|
||||
USE_I18N = True
|
||||
@@ -254,7 +251,7 @@ else:
|
||||
# ======WINDOWS STATIC ANALYSIS SETTINGS ===========
|
||||
|
||||
# Private key
|
||||
WINDOWS_VM_SECRET = 'MobSF/windows_vm_priv_key.asc'
|
||||
WINDOWS_VM_SECRET = 'mobsf/MobSF/windows_vm_priv_key.asc'
|
||||
# IP and Port of the MobSF Windows VM
|
||||
# example: WINDOWS_VM_IP = '127.0.0.1' ;noqa E800
|
||||
WINDOWS_VM_IP = None
|
||||
@@ -336,7 +333,7 @@ else:
|
||||
ITUNES_URL = 'https://itunes.apple.com/lookup'
|
||||
GITHUB_URL = ('https://raw.githubusercontent.com/'
|
||||
'MobSF/Mobile-Security-Framework-MobSF/'
|
||||
'master/MobSF/settings.py')
|
||||
'master/mobsf/MobSF/settings.py')
|
||||
GOOGLE = 'https://www.google.com'
|
||||
BAIDU = 'https://www.baidu.com/'
|
||||
|
||||
@@ -388,7 +385,7 @@ LOGGING = {
|
||||
'logfile': {
|
||||
'level': 'DEBUG',
|
||||
'class': 'logging.FileHandler',
|
||||
'filename': os.path.join(MobSF_HOME, 'logs', 'debug.log'),
|
||||
'filename': os.path.join(MobSF_HOME, 'debug.log'),
|
||||
'formatter': 'standard',
|
||||
},
|
||||
'console': {
|
||||
@@ -409,22 +406,22 @@ LOGGING = {
|
||||
'level': 'INFO',
|
||||
'propagate': False, # Don't propagate to other handlers
|
||||
},
|
||||
'MobSF': {
|
||||
'mobsf.MobSF': {
|
||||
'handlers': ['console', 'logfile'],
|
||||
'level': 'DEBUG',
|
||||
'propagate': False,
|
||||
},
|
||||
'StaticAnalyzer': {
|
||||
'mobsf.StaticAnalyzer': {
|
||||
'handlers': ['console', 'logfile'],
|
||||
'level': 'DEBUG',
|
||||
'propagate': False,
|
||||
},
|
||||
'MalwareAnalyzer': {
|
||||
'mobsf.MalwareAnalyzer': {
|
||||
'handlers': ['console', 'logfile'],
|
||||
'level': 'DEBUG',
|
||||
'propagate': False,
|
||||
},
|
||||
'DynamicAnalyzer': {
|
||||
'mobsf.DynamicAnalyzer': {
|
||||
'handlers': ['console', 'logfile'],
|
||||
'level': 'DEBUG',
|
||||
'propagate': False,
|
||||
@@ -1,30 +1,29 @@
|
||||
from django.conf.urls import url
|
||||
|
||||
from DynamicAnalyzer.views.android import dynamic_analyzer as dz
|
||||
from DynamicAnalyzer.views.android import (
|
||||
from mobsf.DynamicAnalyzer.views.android import dynamic_analyzer as dz
|
||||
from mobsf.DynamicAnalyzer.views.android import (
|
||||
operations,
|
||||
report,
|
||||
tests_common,
|
||||
tests_frida)
|
||||
|
||||
from MobSF import utils
|
||||
from MobSF.views import home
|
||||
from MobSF.views.api import api_static_analysis as api_sz
|
||||
from MobSF.views.api import api_dynamic_analysis as api_dz
|
||||
|
||||
from StaticAnalyzer import tests
|
||||
from StaticAnalyzer.views import shared_func
|
||||
from StaticAnalyzer.views.android import (
|
||||
tests_frida,
|
||||
)
|
||||
from mobsf.MobSF import utils
|
||||
from mobsf.MobSF.views import home
|
||||
from mobsf.MobSF.views.api import api_static_analysis as api_sz
|
||||
from mobsf.MobSF.views.api import api_dynamic_analysis as api_dz
|
||||
from mobsf.StaticAnalyzer import tests
|
||||
from mobsf.StaticAnalyzer.views import shared_func
|
||||
from mobsf.StaticAnalyzer.views.android import (
|
||||
find,
|
||||
generate_downloads,
|
||||
manifest_view,
|
||||
source_tree,
|
||||
view_source,
|
||||
)
|
||||
from StaticAnalyzer.views.windows import windows
|
||||
from StaticAnalyzer.views.android import static_analyzer as android_sa
|
||||
from StaticAnalyzer.views.ios import static_analyzer as ios_sa
|
||||
from StaticAnalyzer.views.ios import view_source as io_view_source
|
||||
from mobsf.StaticAnalyzer.views.windows import windows
|
||||
from mobsf.StaticAnalyzer.views.android import static_analyzer as android_sa
|
||||
from mobsf.StaticAnalyzer.views.ios import static_analyzer as ios_sa
|
||||
from mobsf.StaticAnalyzer.views.ios import view_source as io_view_source
|
||||
|
||||
from . import settings
|
||||
|
||||
@@ -334,14 +334,16 @@ def get_device():
|
||||
return dev_id
|
||||
logger.error('Is the Android VM running?\n'
|
||||
'MobSF cannot identify device id.\n'
|
||||
'Please set ANALYZER_IDENTIFIER in MobSF/settings.py')
|
||||
'Please set ''ANALYZER_IDENTIFIER in '
|
||||
'%s', get_config_loc())
|
||||
|
||||
|
||||
def get_adb():
|
||||
"""Get ADB binary path."""
|
||||
try:
|
||||
adb_loc = None
|
||||
adb_msg = ('Set adb path, ADB_BINARY in MobSF/settings.py'
|
||||
adb_msg = ('Set adb path, ADB_BINARY in'
|
||||
f'{get_config_loc()}'
|
||||
' with same adb binary used'
|
||||
' by Genymotion VM/Emulator AVD.')
|
||||
global ADB_PATH
|
||||
@@ -396,7 +398,8 @@ def check_basic_env():
|
||||
logger.error(
|
||||
'JDK 8+ is not available. '
|
||||
'Set JAVA_HOME environment variable'
|
||||
' or JAVA_DIRECTORY in MobSF/settings.py')
|
||||
' or JAVA_DIRECTORY in '
|
||||
'%s', get_config_loc())
|
||||
logger.info('Current Configuration: '
|
||||
'JAVA_DIRECTORY=%s', settings.JAVA_DIRECTORY)
|
||||
logger.info('Example Configuration:'
|
||||
@@ -525,3 +528,15 @@ def is_md5(user_input):
|
||||
if not stat:
|
||||
logger.error('Invalid scan hash')
|
||||
return stat
|
||||
|
||||
|
||||
def get_config_loc():
|
||||
"""Get config location."""
|
||||
if settings.USE_HOME:
|
||||
return os.path.join(
|
||||
os.path.expanduser('~'),
|
||||
'.MobSF',
|
||||
'config.py',
|
||||
)
|
||||
else:
|
||||
return 'MobSF/settings.py'
|
||||
+3
-4
@@ -3,10 +3,9 @@
|
||||
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
from MobSF.views.helpers import request_method
|
||||
from MobSF.views.api.api_middleware import make_api_response
|
||||
|
||||
from DynamicAnalyzer.views.android import (
|
||||
from mobsf.MobSF.views.helpers import request_method
|
||||
from mobsf.MobSF.views.api.api_middleware import make_api_response
|
||||
from mobsf.DynamicAnalyzer.views.android import (
|
||||
dynamic_analyzer,
|
||||
operations,
|
||||
report,
|
||||
@@ -3,7 +3,7 @@
|
||||
from django.http import JsonResponse
|
||||
from django.utils.deprecation import MiddlewareMixin
|
||||
|
||||
from MobSF.utils import api_key
|
||||
from mobsf.MobSF.utils import api_key
|
||||
|
||||
OK = 200
|
||||
|
||||
+9
-10
@@ -4,19 +4,18 @@
|
||||
from django.http import HttpResponse
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
|
||||
from MobSF.views.helpers import request_method
|
||||
from MobSF.views.home import RecentScans, Upload, delete_scan
|
||||
from MobSF.views.api.api_middleware import make_api_response
|
||||
|
||||
from StaticAnalyzer.views.android import view_source
|
||||
from StaticAnalyzer.views.android.static_analyzer import static_analyzer
|
||||
from StaticAnalyzer.views.ios import view_source as ios_view_source
|
||||
from StaticAnalyzer.views.ios.static_analyzer import static_analyzer_ios
|
||||
from StaticAnalyzer.views.shared_func import (
|
||||
from mobsf.MobSF.views.helpers import request_method
|
||||
from mobsf.MobSF.views.home import RecentScans, Upload, delete_scan
|
||||
from mobsf.MobSF.views.api.api_middleware import make_api_response
|
||||
from mobsf.StaticAnalyzer.views.android import view_source
|
||||
from mobsf.StaticAnalyzer.views.android.static_analyzer import static_analyzer
|
||||
from mobsf.StaticAnalyzer.views.ios import view_source as ios_view_source
|
||||
from mobsf.StaticAnalyzer.views.ios.static_analyzer import static_analyzer_ios
|
||||
from mobsf.StaticAnalyzer.views.shared_func import (
|
||||
compare_apps,
|
||||
pdf,
|
||||
)
|
||||
from StaticAnalyzer.views.windows import windows
|
||||
from mobsf.StaticAnalyzer.views.windows import windows
|
||||
|
||||
|
||||
@request_method(['POST'])
|
||||
@@ -14,16 +14,21 @@ from django.http import HttpResponse, HttpResponseRedirect
|
||||
from django.shortcuts import render
|
||||
from django.template.defaulttags import register
|
||||
|
||||
from MobSF.forms import FormUtil, UploadFileForm
|
||||
from MobSF.utils import (api_key, is_dir_exists, is_file_exists,
|
||||
print_n_send_error_response)
|
||||
from MobSF.views.helpers import FileType
|
||||
from MobSF.views.scanning import Scanning
|
||||
|
||||
from StaticAnalyzer.models import (RecentScansDB,
|
||||
StaticAnalyzerAndroid,
|
||||
StaticAnalyzerIOS,
|
||||
StaticAnalyzerWindows)
|
||||
from mobsf.MobSF.forms import FormUtil, UploadFileForm
|
||||
from mobsf.MobSF.utils import (
|
||||
api_key,
|
||||
is_dir_exists,
|
||||
is_file_exists,
|
||||
print_n_send_error_response,
|
||||
)
|
||||
from mobsf.MobSF.views.helpers import FileType
|
||||
from mobsf.MobSF.views.scanning import Scanning
|
||||
from mobsf.StaticAnalyzer.models import (
|
||||
RecentScansDB,
|
||||
StaticAnalyzerAndroid,
|
||||
StaticAnalyzerIOS,
|
||||
StaticAnalyzerWindows,
|
||||
)
|
||||
|
||||
LINUX_PLATFORM = ['Darwin', 'Linux']
|
||||
HTTP_BAD_REQUEST = 400
|
||||
@@ -226,7 +231,7 @@ def search(request):
|
||||
|
||||
|
||||
def download(request):
|
||||
"""Download from MobSF Route."""
|
||||
"""Download from mobsf.MobSF Route."""
|
||||
msg = 'Error Downloading File '
|
||||
if request.method == 'GET':
|
||||
allowed_exts = settings.ALLOWED_EXTENSIONS
|
||||
@@ -6,7 +6,7 @@ import os
|
||||
from django.conf import settings
|
||||
from django.utils import timezone
|
||||
|
||||
from StaticAnalyzer.models import RecentScansDB
|
||||
from mobsf.StaticAnalyzer.models import RecentScansDB
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -13,9 +13,12 @@ from django.core.wsgi import get_wsgi_application
|
||||
|
||||
from whitenoise import WhiteNoise
|
||||
|
||||
from . import settings
|
||||
|
||||
|
||||
warnings.filterwarnings('ignore', category=UserWarning, module='cffi')
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'MobSF.settings')
|
||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mobsf.MobSF.settings')
|
||||
|
||||
static = os.path.join(settings.BASE_DIR, 'static')
|
||||
application = WhiteNoise(get_wsgi_application(),
|
||||
root='static', prefix='static/')
|
||||
root=static, prefix='static/')
|
||||
@@ -8,7 +8,7 @@ from django.conf import settings
|
||||
from django.http import HttpResponse
|
||||
from django.test import Client, TestCase
|
||||
|
||||
from MobSF.utils import api_key
|
||||
from mobsf.MobSF.utils import api_key
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user