Вот моя распакованная версия того, что мы имеем до сих пор:
<?php
/* In the original file, this is __FILE__
and __LINE__. I've hardcoded them in this
script so that we can refer to the original
file when actually running what follows. */
$this_file = 'original_file.php';
$this_line = 1; // originally __LINE__
/* Prepare the original script to be read */
$this_file_handle = fopen($this_file, 'rb');
/* Move the file cursor past the block of PHP */
while(--$this_line) {
fgets($this_file_handle,1024);
}
/* Move the file cursor just a wee bit more,
presumably to where the other data starts. */
fgets($this_file_handle,4096);
/* Read in the remaining data, run it through
a character replacing function
(3 --> A, s --> B, etc.), and base64-decode
the result. */
$probably_malicious_code = (
base64_decode(
strtr(
fread($this_file_handle,372),
'3safZjG54HFqMdLAOg9wbIzPR/plK8+7eUcxQBWmY1uS6NXrhvDCnt0E2ToJkViy=',
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
)
)
);
/* Run the probably-evil code. */
eval($probably_malicious_code);
Если мы используем echo
вместо eval
в последней строке, мы получим это, третий уровень запутывания.
INCEPTION
Вот сценарий, который эквивалентен тому, что происходит на уровне 3:
<?php
/* Pulled in from level 1: */
$this_file = 'original_magic.php'; // originally __FILE__, refers to original file
$this_line = 1; // originally __LINE__
$level_three_read_amount = 3804;
/* Pulled in from level 2: */
$this_file_handle = fopen($this_file, 'rb');
while(--$this_line) {
fgets($this_file_handle,1024);
}
fgets($this_file_handle,4096);
/* Level 3 decoding: */
$level_three_code = ereg_replace(
'__FILE__',
"'".$this_file."'", //
base64_decode(
strtr(
fread($this_file_handle, $level_three_read_amount),
'3safZjG54HFqMdLAOg9wbIzPR/plK8+7eUcxQBWmY1uS6NXrhvDCnt0E2ToJkViy=',
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
)
)
);
fclose($this_file_handle);
eval($level_three_code);
Выдает эхо вместо оценки последней строки, которая в этот раз производитчто-то близкое к нашему окончательному эффекту:
global $traction; ;echo ' </div><!--end main-->
<div id="main-bottom"></div>
</div><!--end wrapper-->
<div id="footer">
<div class="wrapper clear">
<div id="footer-about" class="footer-column">
'; if ($traction->footerAboutState() == 'true') : ;echo ' <ul>
'; if ( !function_exists('dynamic_sidebar')|| !dynamic_sidebar('footer_sidebar_3') ) : ;echo ' <li class="widget widget_categories">
<h2 class="widgettitle">'; _e('Categories'); ;echo '</h2>
<ul>
'; wp_list_cats('sort_column=name&hierarchical=0'); ;echo ' </ul>
</li>
'; endif; ;echo ' </ul>
'; else : ;echo ' <h2>'; _e( 'About', 'traction' ); ;echo '</h2>
'; if ($traction->footerAbout() != '' ) : ;echo ' '; echo $traction->footerAbout(); ;echo ' '; else : ;echo ' <p>'; _e("Did you know you can write your own about section just like this one? It's really easy. Head into the the <em>Traction Options</em> menu and check out the footer section. Type some stuff in the box, click save, and your new about section shows up in the footer.", "traction"); ;echo '</p>
'; endif; ;echo ' '; endif; ;echo ' </div>
<div id="footer-middle" class="footer-column">
'; if ( is_active_sidebar( 'footer_sidebar' ) ) echo "<ul>" ;echo ' '; if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar( 'footer_sidebar' ) ) : ;echo ' <ul>
<li class="widget">
<h2 class="widgettitle">'; _e( 'Pages' ); ;echo '</h2>
<ul>
'; wp_list_pages( 'depth=0&title_li=' ); ;echo ' </ul>
</li>
</ul>
'; endif; ;echo ' '; if ( is_active_sidebar( 'footer_sidebar' ) ) echo "</ul>" ;echo ' </div>
<div id="footer-search" class="footer-column">
'; if ( is_active_sidebar( 'footer_sidebar_2' ) ) echo "<ul>" ;echo ' '; if ( !function_exists( 'dynamic_sidebar' ) || !dynamic_sidebar( 'footer_sidebar_2' ) ) : ;echo ' <h2>'; _e( 'Search', 'traction' ); ;echo '</h2>
'; if (is_file(STYLESHEETPATH . '/searchform.php' )) include (STYLESHEETPATH . '/searchform.php' ); else include(TEMPLATEPATH . '/searchform.php' ); ;echo ' '; endif; ;echo ' '; if ( is_active_sidebar( 'footer_sidebar_2' ) ) echo "</ul>" ;echo ' </div>
</div><!--end wrapper-->
</div><!--end footer-->
<div id="copyright" class="wrapper">
<p class="credit">Powered by <a href="http://www.free-premium-wordpress-themes.com" rel="dofollow">Free Premium Wordpress Themes</a> and <a href="http://thethemefoundry.com">The Theme Foundry</a></p>
<p>Copyright © '; echo date
По какой-то причине оно немного обрезано, но похоже, что идея состоит в том, чтобы просто включить авторское право, в то же время делая его невероятно трудным для вас.Это отрывочный бизнес;удалите этот код.