编码前:phpinfo.php
<?php
phpinfo();
?>首先看一下编码后的结果:
<?php $_F=__FILE__;$_X='P0dvP0s5S1RKZ0EoKTs/Rw==';$_D=strrev('edoced_46esab');eval($_D('aWYodGltZSgpPjExODcwMzk1NTYpe2VjaG8oJzxIMz5UaGlzIHNjcmlwdCBpcyBleHBpcmVkLjwvSDM+Jyk7cmV0dXJuO307JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCc5YldEWlFDblYxVEc2az1ZIEowXVA0W056bDh3dnt1bXIvNVVYYz5NagpFMjxCLlN4aW9MZWFSQWYzZ31zcWg3eUl0ZE9LRkhwJywnaGV1YUZnVH1Ecmk+Ylt3RVduQnFNOGw0OWtTeEFON1o2TEtZMntIMVIgbT15CmRdL0c8TzUzam96Y2ZVc3YuSkNRUFhJcDBWdCcpOyRfUj1lcmVnX3JlcGxhY2UoJ19fRklMRV9fJywiJyIuJF9GLiInIiwkX1gpO2V2YWwoJF9SKTskX1I9MDskX1g9MDtpZihoZWFkZXJzX3NlbnQoKSllY2hvKGJhc2U2NF9kZWNvZGUoJ1BGTkRVa2xRVkQ0TkNuWmhjaUJpY2w5bGJHMHNZbkpmWlhnc1luSmZaWGtzWW5KZmJYZ3NZbkpmYlhrc1luSmZiVzA3Wm5WdVkzUnBiMjRnWW5KZlpXeGxiV1Z1ZENobEtYdDNhR2xzWlNBb1pTNTBZV2RPWVcxbElUMG5SRWxXSnlrZ1pUMWxMbkJoY21WdWRFVnNaVzFsYm5RN0lISmxkSFZ5YmlCbE8zMDdablZ1WTNScGIyNGdZbkpmWkhKaFp5Z3BlMkp5WDJWc2JTNXpkSGxzWlM1c1pXWjBQV0p5WDJWNEsyVjJaVzUwTG1Oc2FXVnVkRmd0WW5KZmJYZzdZbkpmWld4dExuTjBlV3hsTG5SdmNEMWljbDlsZVN0bGRtVnVkQzVqYkdsbGJuUlpMV0p5WDIxNU8zSmxkSFZ5YmlCbVlXeHpaVHQ5TzJaMWJtTjBhVzl1SUdKeVgzTjBZWEowS0dWc2JTeGxkbVZ1ZENsN1luSmZaV3h0UFdKeVgyVnNaVzFsYm5Rb1pXeHRLVHRpY2w5dGVEMWxkbVZ1ZEM1amJHbGxiblJZTzJKeVgyMTVQV1YyWlc1MExtTnNhV1Z1ZEZrN1luSmZaWGc5Y0dGeWMyVkpiblFvWW5KZlpXeHRMbk4wZVd4bExteGxablFwTzJKeVgyVjVQWEJoY25ObFNXNTBLR0p5WDJWc2JTNXpkSGxzWlM1MGIzQXBPMkp5WDIxdFBXUnZZM1Z0Wlc1MExtOXViVzkxYzJWdGIzWmxPMlJ2WTNWdFpXNTBMbTl1Ylc5MWMyVnRiM1psUFdKeVgyUnlZV2M3ZlRzTkNqd3ZVME5TU1ZCVVBqeEVTVllnYzNSNWJHVTlKM0J2YzJsMGFXOXVPbUZpYzI5c2RYUmxPeUJzWldaME9qSXdjSGc3SUhSdmNEbzRNSEI0T3lCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2s1aGRua25QanhVUVVKTVJTQmliM0prWlhJOUp6QW5JR05sYkd4emNHRmphVzVuUFNjekp5QmpaV3hzY0dGa1pHbHVaejBuTUNjK1BGUlNJSE4wZVd4bFBTZG1iMjUwTFdaaGJXbHNlVHBVWVdodmJXRTdJR1p2Ym5RdGMybDZaVG94TUhCME95QmpiMnh2Y2pwWGFHbDBaVHNnWTNWeWMyOXlPbWhoYm1RN0lIUmxlSFF0WVd4cFoyNDlZMlZ1ZEdWeUp6NDhWRVFnZDJsa2RHZzlKelV3TUNjZ2IyNVRaV3hsWTNSVGRHRnlkRDBuY21WMGRYSnVJR1poYkhObEp5QnZiazF2ZFhObFQzWmxjajBpWW5KZlpXeGxiV1Z1ZENoMGFHbHpLUzV6ZEhsc1pTNWlZV05yWjNKdmRXNWtRMjlzYjNJOUp5TXdNRFkyT1RrbkltOXVUVzkxYzJWUGRYUTlJbUp5WDJWc1pXMWxiblFvZEdocGN5a3VjM1I1YkdVdVltRmphMmR5YjNWdVpFTnZiRzl5UFNkT1lYWjVKeUp2YmsxdmRYTmxSRzkzYmowaWRHaHBjeTV6ZEhsc1pTNWpiMnh2Y2owblFteGhZMnNuTzJKeVgzTjBZWEowS0hSb2FYTXNaWFpsYm5RcEltOXVUVzkxYzJWVmNEMGlkR2hwY3k1emRIbHNaUzVqYjJ4dmNqMG5WMmhwZEdVbk8yUnZZM1Z0Wlc1MExtOXViVzkxYzJWdGIzWmxQV0p5WDIxdElqNDhRajVYWVhKdWFXNW5QQzlDUGp3dlZFUStQRlJFSUc5dVEyeHBZMnM5SW1KeVgyVnNaVzFsYm5Rb2RHaHBjeWt1YzNSNWJHVXVkbWx6YVdKcGJHbDBlVDBuYUdsa1pHVnVKenR5WlhSMWNtNGdabUZzYzJVaVBsdGpiRzl6WlYwOEwxUkVQand2VkVRK1BGUlNQanhVVWlCaVoyTnZiRzl5UFNkWlpXeHNiM2NuUGp4VVJDQmpiMnh6Y0dGdVBTY3lKeUJ6ZEhsc1pUMG5abTl1ZEMxbVlXMXBiSGs2VkdGb2IyMWhPeUJtYjI1MExYTnBlbVU2TVRCd2REc2dZMjlzYjNJNlFteGhZMnM3SUhCaFpHUnBibWM2Tm5CNEp6NVVhR2x6SUhOamNtbHdkQ0IzWVhNZ2NISnZkR1ZqZEdWa0lHSjVJR1JsYlc4Z2RtVnljMmx2YmlCdlpqeENVajRnSUNBOFFqNDhRU0JJVWtWR1BTZG9kSFJ3T2k4dmQzZDNMbUo1ZEdWeWRXNHVZMjl0THo5c1pISTlaRzF2Sno1Q2VYUmxVblZ1SUZCeWIzUmxZM1J2Y2lCbWIzSWdVRWhRUEM5QlBqd3ZRajR1UEVsTlJ5QlRVa005SjJoMGRIQTZMeTkzZDNjdVlubDBaWEoxYmk1amIyMHZhVzFuTDJSbGJXOHVaMmxtSno0OEwxUkVQand2VkZJK1BDOVVRVUpNUlQ0OEwwUkpWajQ9JykpOw=='));?>
这里的$_X表示已经编码了的程序代码。而后面跟的是解码过程。通过测试,可以证明,这个过程是可逆的。
再看一下$_D=strrev('edoced_46esab');他无非是把base64_decode反过来写而已。也就是说,下面所谓$_D()这个函数,就是base64_decode().
那么好,我们解码在$_D中的内容会得到:
if(time()>1187039556){echo('<H3>This script is expired.</H3>');return;};$_X=base64_decode($_X);$_X=strtr($_X,'9bWDZQCnV1TG6k=Y J0]P4[Nzl8wv{umr/5UXc>Mj
E2<B.SxioLeaRAf3g}sqh7yItdOKFHp','heuaFgT}Dri>b[wEWnBqM8l49kSxAN7Z6LKY2{H1R m=y
d]/G<O53jozcfUsv.JCQPXIp0Vt');$_R=ereg_replace('__FILE__',"'".$_F."'",$_X);eval($_R);$_R=0;$_X=0;if(headers_sent())echo(base64_decode('PFNDUklQVD4NCnZhciBicl9lbG0sYnJfZXgsYnJfZXksYnJfbXgsYnJfbXksYnJfbW07ZnVuY3Rpb24gYnJfZWxlbWVudChlKXt3aGlsZSAoZS50YWdOYW1lIT0nRElWJykgZT1lLnBhcmVudEVsZW1lbnQ7IHJldHVybiBlO307ZnVuY3Rpb24gYnJfZHJhZygpe2JyX2VsbS5zdHlsZS5sZWZ0PWJyX2V4K2V2ZW50LmNsaWVudFgtYnJfbXg7YnJfZWxtLnN0eWxlLnRvcD1icl9leStldmVudC5jbGllbnRZLWJyX215O3JldHVybiBmYWxzZTt9O2Z1bmN0aW9uIGJyX3N0YXJ0KGVsbSxldmVudCl7YnJfZWxtPWJyX2VsZW1lbnQoZWxtKTticl9teD1ldmVudC5jbGllbnRYO2JyX215PWV2ZW50LmNsaWVudFk7YnJfZXg9cGFyc2VJbnQoYnJfZWxtLnN0eWxlLmxlZnQpO2JyX2V5PXBhcnNlSW50KGJyX2VsbS5zdHlsZS50b3ApO2JyX21tPWRvY3VtZW50Lm9ubW91c2Vtb3ZlO2RvY3VtZW50Lm9ubW91c2Vtb3ZlPWJyX2RyYWc7fTsNCjwvU0NSSVBUPjxESVYgc3R5bGU9J3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjIwcHg7IHRvcDo4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOk5hdnknPjxUQUJMRSBib3JkZXI9JzAnIGNlbGxzcGFjaW5nPSczJyBjZWxscGFkZGluZz0nMCc+PFRSIHN0eWxlPSdmb250LWZhbWlseTpUYWhvbWE7IGZvbnQtc2l6ZToxMHB0OyBjb2xvcjpXaGl0ZTsgY3Vyc29yOmhhbmQ7IHRleHQtYWxpZ249Y2VudGVyJz48VEQgd2lkdGg9JzUwMCcgb25TZWxlY3RTdGFydD0ncmV0dXJuIGZhbHNlJyBvbk1vdXNlT3Zlcj0iYnJfZWxlbWVudCh0aGlzKS5zdHlsZS5iYWNrZ3JvdW5kQ29sb3I9JyMwMDY2OTknIm9uTW91c2VPdXQ9ImJyX2VsZW1lbnQodGhpcykuc3R5bGUuYmFja2dyb3VuZENvbG9yPSdOYXZ5JyJvbk1vdXNlRG93bj0idGhpcy5zdHlsZS5jb2xvcj0nQmxhY2snO2JyX3N0YXJ0KHRoaXMsZXZlbnQpIm9uTW91c2VVcD0idGhpcy5zdHlsZS5jb2xvcj0nV2hpdGUnO2RvY3VtZW50Lm9ubW91c2Vtb3ZlPWJyX21tIj48Qj5XYXJuaW5nPC9CPjwvVEQ+PFREIG9uQ2xpY2s9ImJyX2VsZW1lbnQodGhpcykuc3R5bGUudmlzaWJpbGl0eT0naGlkZGVuJztyZXR1cm4gZmFsc2UiPltjbG9zZV08L1REPjwvVEQ+PFRSPjxUUiBiZ2NvbG9yPSdZZWxsb3cnPjxURCBjb2xzcGFuPScyJyBzdHlsZT0nZm9udC1mYW1pbHk6VGFob21hOyBmb250LXNpemU6MTBwdDsgY29sb3I6QmxhY2s7IHBhZGRpbmc6NnB4Jz5UaGlzIHNjcmlwdCB3YXMgcHJvdGVjdGVkIGJ5IGRlbW8gdmVyc2lvbiBvZjxCUj4gICA8Qj48QSBIUkVGPSdodHRwOi8vd3d3LmJ5dGVydW4uY29tLz9sZHI9ZG1vJz5CeXRlUnVuIFByb3RlY3RvciBmb3IgUEhQPC9BPjwvQj4uPElNRyBTUkM9J2h0dHA6Ly93d3cuYnl0ZXJ1bi5jb20vaW1nL2RlbW8uZ2lmJz48L1REPjwvVFI+PC9UQUJMRT48L0RJVj4='));前面的时间控制先不关他。我们看
$_X=base64_decode($_X);$_X=strtr($_X,'9bWDZQCnV1TG6k=Y J0]P4[Nzl8wv{umr/5UXc>Mj
E2<B.SxioLeaRAf3g}sqh7yItdOKFHp','heuaFgT}Dri>b[wEWnBqM8l49kSxAN7Z6LKY2{H1R m=y
d]/G<O53jozcfUsv.JCQPXIp0Vt');$_R=ereg_replace('__FILE__',"'".$_F."'",$_X);eval($_R);$_R=0;$_X=0;这个部分。后面的部分,则是程序到期后的界面了。我们先看这些代码。实际上。页面程序,就在变量$_R中。但是他在这个编译过程中,将$_R值设置为0。那么他输出的,将不再是真正我们需要的内容了。而解码的关键,在于'9bWDZQCnV1TG6k=Y J0]P4[Nzl8wv{umr/5UXc>Mj
E2<B.SxioLeaRAf3g}sqh7yItdOKFHp','heuaFgT}Dri>b[wEWnBqM8l49kSxAN7Z6LKY2{H1R m=y
d]/G<O53jozcfUsv.JCQPXIp0Vt'这个部分。我现在弄不明白,他到底是什么编码方式。如果知道他是什么编码方式的话,这个加密方式,就可以破掉了。知道编码方式后,将其反编译。然后将$_R=0;$_X=0;去掉。把剩下的代码再加密一下。还原到他原来的位置。这样我们在程序后面,跟一个echo $_R或echo $_X就可以得到,我们需要的代码了。而且是完整的。