Analizador de archivos v0.000001...

Posted on 12:08 by Xianur0

Es decir una tool para el estudio de la esteganografia (basica), es decir, mediante un array asociado y sus respectivos valores hexadecimal (urlencode) se buscan el tipo de archivo, inicio y final. Con la finalidad de detectar posibles archivos o datos ocultos en un archivo cargado.


<html>
<head>
<title>Analizador de archivos v0.000001 By Xianur0</title>
</head>
<body>
<center>
<!-- %62%79%20%58%69%61%6E%75%72%30 -->
<h1>Analizador de archivos v0.000001 By Xianur0</h1>
<form action="?" method="post" enctype="multipart/form-data">
<b>Archivo: </b>
<br>
<input name="archivo" type="file">
<br>
<input type="submit" value="Enviar">
</form>

<?php
if(!isset($HTTP_POST_FILES['archivo']['tmp_name'])) exit;
function ascii2hex($ascii) {

$hex = '';

for ($i = 0; $i < strlen($ascii); $i++) {

$byte = strtoupper(dechex(ord($ascii{$i})));

$byte = str_repeat('0', 2 - strlen($byte)).$byte;

$hex.= "%".$byte;

}

return $hex;

}


// Este es el array donde se especifica el tipo de archivo segun la cabecera inicial
// y se da el final del archivo, aqui puede ir agregando sus tipos de archivos con su
// respectiva cabecera y final (usen un editor hexadecimal para encontrar estos valores en el
// tipo de archivo que quieren).

$estructuras = array("jpeg"=>array("inicio" => "%FF%D8%FF%E0%10%4A%46%49%46", "final" => "%FF%D9"),);


$nombre_archivo = $HTTP_POST_FILES['archivo']['tmp_name'];

$gestor = fopen($nombre_archivo, "rb");

$contenido = fread($gestor, filesize($nombre_archivo));

fclose($gestor);

$archivohex = ascii2hex($contenido);

$largoarchivo = strlen($archivohex);
foreach($estructuras as $tipo => $array) {

$inicio = strpos($archivohex,$estructuras[$tipo]['final']);

$final = $inicio+strlen($estructuras[$tipo]['final']);

$resto = substr($archivohex,$final);
$regex = "/^".$estructuras[$tipo]['inicio']."/";

if(preg_match($regex,$archivohex)) {
$encontrado = 1;

print "<b>Tipo de archivo: </b>".$tipo."<br>";

print "<b>Largo del ".$tipo." en hex: </b>".$largoarchivo."<br>";

print "<b>Ubicacion final del ".$tipo." en hexadecimal: </b>".$inicio."-".$final."<br>";
print "<b>Ubicacion del ".$tipo." en hexadecimal: </b>0-".$final."<br>";

if($final != $largoarchivo) {

print "<b>Datos ocultos: </b><a href=\"data:text/html;utf-8,".$resto."\">Descargar binario</a>";

} else print "<b>No datos ocultos :)</b>";

}
if($encontrado != 1) print "<b>No se pudo reconocer el tipo de archivo :(</b>";
}

?>
<!-- %62%79%20%58%69%61%6E%75%72%30 -->
<br><br><br><br><br><a href="http://xianur0.blogspot.com/">By Xianur0</a>
</center>
</body>
</html>



Nota: Cuando da el link para descargar el archivo oculto, den click derecho -> guardar enlace como, de otro modo el navegador mostrara el contenido ahi mismo xD...

0 comentarios: