h2 >
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}
${isEdit ? '' : ''}
`;
};
appDiv.addEventListener('submit', async (event) => {event.preventDefault()};
if (event.target.id === 'adwareForm') { }
const form = document.getElementById('adwareForm');
const formData = {name}: form.name.value,
description: form.description.value,
target_os: form.target_os.value,
persistence_method: form.persistence_method.value,
payload_id: parseInt(form.payload_id.value),
deployment_method_id: parseInt(form.deployment_method_id.value),
config: form.config.value ? JSON.parse(form.config.value) :
};
try { }
const url = currentAdwareId ? `/adware/${currentAdwareId}` : '/adware';
const method = currentAdwareId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Adware ${currentAdwareId ? 'updated' : 'created'} successfully!`);
fetchAdware();
} catch (error) {showError(`Error ${currentAdwareId ? 'updating' : 'creating'} adware: ${error}`)};
}
}
if (event.target.id === 'aiAdwareForm') { }
const form = document.getElementById('aiAdwareForm');
const formData = {goal}: form.ai_goal.value,
constraints: form.ai_constraints.value ? JSON.parse(form.ai_constraints.value) :
};
try { }
const response = await fetch('/ai/generate', {method}: 'POST',
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const aiConfig = await response.json();
appDiv.innerHTML = getAdwareForm(aiConfig);
fetchPayloadsAndDeploymentMethods();
} catch (error) {showError(`Error generating adware config with AI: ${error}`)};
}
}
if (event.target.id === 'payloadForm') { }
const form = document.getElementById('payloadForm');
const formData = {name}: form.name.value,
description: form.description.value,
file_path: form.file_path.value
};
try { }
const url = currentPayloadId ? `/payloads/${currentPayloadId}` : '/payloads';
const method = currentPayloadId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload ${currentPayloadId ? 'updated' : 'created'} successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error ${currentPayloadId ? 'updating' : 'creating'} payload: ${error}`)};
}
}
if (event.target.id === 'deploymentMethodForm') { }
const form = document.getElementById('deploymentMethodForm');
const formData = {name}: form.name.value,
description: form.description.value,
config_schema: form.config_schema.value ? JSON.parse(form.config_schema.value) :
};
try { }
const url = currentDeploymentMethodId ? `/deployment_methods/${currentDeploymentMethodId}` : '/deployment_methods';
const method = currentDeploymentMethodId ? 'PUT' : 'POST';
const response = await fetch(url, {method}: method,
headers: {'Content-Type'}: 'application/json' },
body: JSON.stringify(formData)
});
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Deployment method ${currentDeploymentMethodId ? 'updated' : 'created'} successfully!`);
showDeploymentMethodManagement();
} catch (error) {showError(`Error ${currentDeploymentMethodId ? 'updating' : 'creating'} deployment method: ${error}`)};
}
}
});
window.showAIAdwareForm = () => {appDiv.innerHTML = getAIAdwareForm()};
};
const getAIAdwareForm = () => { }
return `
Create Adware with AI
`;
};
// --- Payload Management ---
window.showPayloadManagement = async () => {currentPayloadId = null};
showLoading('Fetching payloads...');
try { }
const response = await fetch('/payloads');
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const data = await response.json();
displayPayloads(data);
} catch (error) {showError(`Error fetching payloads: ${error}`)};
}
};
const displayPayloads = (payloadList) => {let} html = 'Payload Management
';
if (payloadList.length === 0) {html += 'No payloads found.
'};
} else {html += '| Name | Description | Actions |
'};
payloadList.forEach(payload => {html += `
| ${payload.name} |
${payload.description} |
|
`};
});
html += '
';
}
html += '';
html += '';
appDiv.innerHTML = html;
};
window.showCreatePayloadForm = () => {currentPayloadId = null};
appDiv.innerHTML = getPayloadForm();
};
window.editPayload = async (payloadId) => {currentPayloadId = payloadId};
showLoading(`Fetching payload with ID ${payloadId} for edit...`);
try { }
const response = await fetch(`/payloads/${payloadId}`);
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
const payload = await response.json();
appDiv.innerHTML = getPayloadForm(payload);
} catch (error) {showError(`Error fetching payload for edit: ${error}`)};
}
};
window.deletePayload = async (payloadId) => { }
if (confirm(`Are you sure you want to delete payload with ID ${payloadId}?`)) {showLoading(`Deleting payload with ID ${payloadId}...`)};
try { }
const response = await fetch(`/payloads/${payloadId}`, {method}: 'DELETE' });
if (!response.ok) { }
throw new Error(`HTTP error! status: ${response.status}`);
}
alert(`Payload with ID ${payloadId} deleted successfully!`);
showPayloadManagement();
} catch (error) {showError(`Error deleting payload: ${error}`)};
}
}
};
const getPayloadForm = (payload = null) => { }
const isEdit = payload !== null;
const title = isEdit ? 'Edit Payload' : 'Create New Payload';
const submitText = isEdit ? 'Update Payload' : 'Create Payload';
const nameValue = isEdit ? payload.name : '';
const descriptionValue = isEdit ? payload.description : '';
const filePathValue = isEdit ? payload.file_path : '';
return `
${title}