-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexport.php
More file actions
54 lines (44 loc) · 1.81 KB
/
export.php
File metadata and controls
54 lines (44 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<a href="/"><< Voltar</a><br><br>
<?php
include_once __DIR__ . '/ffdec.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['swf_file'])) {
$swf_tmp_path = $_FILES['swf_file']['tmp_name'];
$output_dir = '../output/ffdec_output_' . uniqid();
// Cria o diretório se não existir
if (!mkdir($output_dir, 0777, true) && !is_dir($output_dir)) die("Erro ao criar diretório: $output_dir");
// Copiar o arquivo SWF para o diretório de saída
$swf_filename = basename($_FILES['swf_file']['name']);
$swf_dest_path = $output_dir . '/' . $swf_filename;
if (!move_uploaded_file($swf_tmp_path, $swf_dest_path)) {
die("Erro ao mover o arquivo SWF para o diretório de saída.");
}
// Executar o ffdec para extrair as imagens
switch ($_POST['type']) {
case 'image':
exportImage($output_dir, $swf_dest_path);
break;
case 'script':
exportScript($output_dir, $swf_dest_path);
break;
case 'bin':
exportBinaryData($output_dir, $swf_dest_path);
break;
}
// Verifica se imagens foram extraídas
$images = glob("$output_dir/*.png");
if (empty($images)) die("Nenhuma imagem foi extraída. Verifique se o SWF contém imagens.");
echo "<h3>Imagens extraídas:</h3>";
foreach ($images as $img) {
echo "<img src='data:image/png;base64," . base64_encode(file_get_contents($img)) . "'><br>";
}
}
?>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="swf_file" accept=".swf" required>
<select name="type" id="type">
<option value="image">Extrair imagens</option>
<option value="script">Extrair script</option>
<option value="bin">Extrair binaryData</option>
</select>
<button type="submit">Extrair</button>
</form>