diff --git a/mobsf/DynamicAnalyzer/views/ios/corellium_apis.py b/mobsf/DynamicAnalyzer/views/ios/corellium_apis.py index 15c4919a..ece1de15 100644 --- a/mobsf/DynamicAnalyzer/views/ios/corellium_apis.py +++ b/mobsf/DynamicAnalyzer/views/ios/corellium_apis.py @@ -158,11 +158,11 @@ class CorelliumAPI(CorelliumInit): instances.append(i) return instances - def create_ios_instance(self, flavor, version): + def create_ios_instance(self, name, flavor, version): """Create a Jailbroken iOS instance.""" data = { 'project': self.project_id, - 'name': f'MobSF iOS - {flavor.upper()}', + 'name': f'{name} - {flavor.upper()}', 'flavor': flavor, 'os': version, } diff --git a/mobsf/DynamicAnalyzer/views/ios/corellium_instance.py b/mobsf/DynamicAnalyzer/views/ios/corellium_instance.py index f0b09038..1d239924 100644 --- a/mobsf/DynamicAnalyzer/views/ios/corellium_instance.py +++ b/mobsf/DynamicAnalyzer/views/ios/corellium_instance.py @@ -299,6 +299,17 @@ def create_vm_instance(request, api=False): project_id = request.POST['project_id'] flavor = request.POST['flavor'] version = request.POST['version'] + name = request.POST.get('name') + if not name: + name = 'MobSF iOS' + if not re.match(r'^[a-zA-Z0-9 _-]+$', name): + data['message'] = ( + 'Invalid VM name. ' + 'Can only contain ' + 'letters, numbers, ' + 'spaces, hyphens, ' + 'and underscores') + return send_response(data, api) if not re.match(r'^iphone\d*\w+', flavor): data['message'] = 'Invalid iOS flavor' return send_response(data, api) @@ -309,7 +320,7 @@ def create_vm_instance(request, api=False): if failed: return send_response(failed, api) c = CorelliumAPI(project_id) - r = c.create_ios_instance(flavor, version) + r = c.create_ios_instance(name, flavor, version) if r: data = { 'status': OK, diff --git a/mobsf/MobSF/views/api/api_ios_dynamic_analysis.py b/mobsf/MobSF/views/api/api_ios_dynamic_analysis.py index a7b1ace5..62d61f53 100644 --- a/mobsf/MobSF/views/api/api_ios_dynamic_analysis.py +++ b/mobsf/MobSF/views/api/api_ios_dynamic_analysis.py @@ -72,7 +72,7 @@ def api_corellium_get_supported_ios_versions(request): @csrf_exempt def api_corellium_create_ios_instance(request): """POST - Corellium Create an iOS Instance.""" - params = {'project_id', 'flavor', 'version'} + params = {'name', 'project_id', 'flavor', 'version'} if set(request.POST) < params: return make_api_response( {'error': 'Missing Parameters'}, 422) diff --git a/mobsf/templates/general/apidocs.html b/mobsf/templates/general/apidocs.html index 1c81efb9..7e265f36 100644 --- a/mobsf/templates/general/apidocs.html +++ b/mobsf/templates/general/apidocs.html @@ -2940,6 +2940,11 @@ Corellium Project ID Yes + + name + Name of the VM + Yes + flavor iOS Flavor @@ -2986,7 +2991,7 @@

Sample Call: