
03.07.2007, 10:01
|
|
Постоянный
Регистрация: 01.01.2007
Сообщений: 796
Провел на форуме: 2693408
Репутация:
861
|
|
имхо PHP Lock.
Декодер:
Код:
#!/usr/bin/php
<?php
/*
*
PHP LockIt! unlocker
*
by Daniel Rozsnyo [ daniel@rozsnyo.com ]
*
*
"a proof that security throught obscurity doesn't work"
*
*/
$input = file_get_contents( $filename = $argv[1] );
if (ereg(
"[$]([^=]+)=[_][_]FILE[_][_][;]"
. "[$]([^=]+)=[_][_]LINE[_][_][;]"
. "[$]([^=]+)[=]([0-9]+)[;]"
. "eval.*(base64_decode.['][^']*['].)", $input, $x)) {
// first pass
$ifilename = $x[1];
$ilinenum
= $x[2];
$ioffset
= $x[3];
$offset
= $x[4];
$decoder
= $x[5];
// get the decoder
$decoder = eval("return $decoder;");
// decipher the decoder
ereg("[$]([^=]+)[=].*[$]([^=]+)=.base64",$decoder,$x);
$ihandle = $x[1];
$iout
= $x[2];
$decoder = str_replace($iout
,'output'
,$decoder);
$decoder = str_replace($ihandle
,'handle'
,$decoder);
$decoder = str_replace($ilinenum ,'line'
,$decoder);
$decoder = str_replace($ifilename,'filename',$decoder);
// the decoder is our slave!
$decoder = str_replace('eval($output);','return $output;',$decoder);
$decoder = '$line=2;'.$decoder;
// sandbox
$next
= eval($decoder);
// remove expiration time
$next = ereg_replace("^if[^;]+;",'',$next);
// some more deciphering
ereg('^[$]([^=]+)=',$next,$x);
$next = str_replace($ihandle,
'handle',
$next);
$next = str_replace($ifilename,'filename',$next);
$next = str_replace($x[1]
,
'output',
$next);
$next = str_replace($ioffset,
'offset',
$next);
// the decoder is our slave, again!
$next = str_replace('eval($output)','return $output',$next);
// final pass
$code = eval($next);
// finish
echo '<','?php',$code,'?','>',"\n";
} else die("Failed. No base64_decode anymore.\n");
?>
|
|
|