| |
create.webapp.php
<?
// nom de la webapp généré
$webapp='gallerie.webapp.php';
// insertion code d'execution
$output= '<?exe();exit;?>';
// insertion du contenu du fichier README pour en-tete
$output.= get_file('README.txt');
// traitement de tous les fichiers du repertoire
$rep = opendir('.');
while ($file = readdir($rep)){
if ($file !='..' && $file !='.' && $file !='' && (preg_match('/.(php|css|js|pl|html)/',$file))){
// récupération du contenu du fichier
$output.= get_file($file);
}
}
closedir($rep);
// ajout code deploiement
$output.= get_execute_code($webapp);
// sauvegarde du fichier webapp
$fichier = fopen($webapp, "w");
fputs($fichier, $output);
fclose($fichier);
highlight_file( $webapp);
// function de récupérations d'un fichier
function get_file($file){
if (!is_dir($file)){
$out= "<Webapp File="$file">n";
$out.= "<?n// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n";
$out.= "// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n";
$out.= "// ++ ---------------------------------------------------------- ++n";
$out.= "// ++ WebApp File:$filen";
$out.= "// ++ ---------------------------------------------------------- ++n";
$out.= "// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n";
$out.= "// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++n?>n";
$out.= fread(fopen($file, "r"), filesize($file));
$out.= "</Webapp File="$file">n";
}
return $out;
}
// function d'insertion du code de deploiement, ajouté en bas de la webapp
function get_execute_code($file){
$out = "<?nfunction exe(){n";
$out.= "t$file='$file';n";
$out.= "t$webapp = fread(fopen($file, "r"), filesize($file));n";
$out.= "t$webapp2 = preg_replace('/(<?exe();exit;?>)/', '', $webapp);n";
$out.= "t$app = preg_split('/</WebappsFile="S+">/', $webapp2);n";
$out.= "tfor ($i=0; $i<count($app)-1;$i++){n";
$out.= "ttpreg_match('/<WebappsFile="(S+)">/', $app[$i], $matches);n";
$out.= "tt$code = preg_replace('/(</?WebappsFile="S+">)/', '', $app[$i]);n";
$out.= "tt$code2 = preg_replace('/^(.?n.?n.*n.*n.*n.*n.*n.*n.*n.*n.*n)/m', '', $code);n";
$out.= "tt$fichier = fopen($matches[1], "w");n";
$out.= "ttfputs($fichier, $code2);n";
$out.= "ttfclose($fichier);n";
$out.= "t}ntheader("location: install.exe.php");";
$out.= "texit();n}n?>";
return $out;
}
?>
1
|