()
| 171 | |
| 172 | @views_project.route("/project_add", methods=['POST', 'GET']) |
| 173 | def add_project(): |
| 174 | if request.method == 'POST': |
| 175 | project_name = request.form['project_name'] |
| 176 | comment = request.form['comment'] |
| 177 | |
| 178 | # check if already exists |
| 179 | if storage.get_project_setting(project_name) != None: |
| 180 | logger.error("Project {} already exists".format(project_name)) |
| 181 | return redirect("/projects", code=302) |
| 182 | |
| 183 | # Empty settings, except name |
| 184 | settings = Settings(project_name) |
| 185 | settings.project_comment = comment |
| 186 | |
| 187 | # Sane defaults for web |
| 188 | settings.injectable_base = "7z.exe" |
| 189 | settings.payload_base = "calc64.bin" |
| 190 | |
| 191 | settings.decoder_style = "xor_2" |
| 192 | settings.carrier_name = "alloc_rw_rx" |
| 193 | settings.carrier_invoke_style = CarrierInvokeStyle.BackdoorFunc |
| 194 | settings.payload_location = PayloadLocation.DATA |
| 195 | settings.fix_missing_iat = True |
| 196 | settings.plugin_antiemulation = "sirallocalot" |
| 197 | |
| 198 | # add new project to disk |
| 199 | storage.add_project_setting(settings) |
| 200 | |
| 201 | return redirect("/project/{}".format(project_name), code=302) |
| 202 | |
| 203 | else: # GET |
| 204 | return render_template('project_add_get.html') |
| 205 | |
| 206 | |
| 207 | @views_project.route("/project_update", methods=['POST']) |
nothing calls this directly
no test coverage detected