最近开始鼓捣ckplay,在论坛上下了某大牛提供的插件编码,文件是php文件,被加密成如下所示的编码,当前文件为原始文件就命名为:0.php吧。
<?php // 三方全能代理升级版,支持清晰度选择和id模式,ck用法ckid=/url=,cmp用法cmpid=/cmp=,隆虎科技网出品,20141227 $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=562140;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';eval(($$O0O0000O0('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAwTzBPMDA9JE9PME9PMDAwMCgkT09PME8wTzAwLCdyYicpOyRPTzBPTzAwME89JE9PTzAwMDAwMHsxN30uJE9PTzAwMDAwMHsyMH0uJE9PTzAwMDAwMHs1fS4kT09PMDAwMDAwezl9LiRPT08wMDAwMDB7MTZ9OyRPTzBPTzAwTzA9JE9PTzAwMDAwMHsxNH0uJE9PTzAwMDAwMHswfS4kT09PMDAwMDAwezIwfS4kT09PMDAwMDAwezB9LiRPT08wMDAwMDB7MjB9OyRPTzBPTzAwME8oJE8wMDBPME8wMCwxMjQxKTskT08wME8wME8wPSgkT09PMDAwME8wKCRPTzBPTzAwTzAoJE9PME9PMDAwTygkTzAwME8wTzAwLDU1MiksJ0pvS0dmaFdZVXIwVHArdTI5ek44bGJxaXNDZ3dFM0RrTUF0SS9hWFp2NHh5MVZtZUY3SFBuUTZPUkJqZDVMY1M9JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;?> 36A4wWlv3WaVCNM42Ifn+GlRp8E6pGJ4CWaa0KDHP1yLVuOu5ju17cm5dTT411d0SguAPkIKB5611y6QB5y81xqO7EwOvjM5sNovEXbX2Nrv3YzFut5ebhsm8fATNaEm9nL+UIBlbtBpNfV0bHBG8nn5T6fcvjXPL1gOvjfZ081/8n5Fpf5Fpf5F2i+nEaLHCio1sq+a0K3kinCr8fbkiHE1UtEtTtz28n5F8Po2pGJmUtEtTKM/8nL2pGJFpf5F0Kz28Po28PJF8PJvrfL2pfL2pGJF8HM/8PJFpf5F8PJFTKz28PJF8PJFpGJ4TK30wnVYCXAiqbbHphzF0OlHui4uuW7tEqaP963Oz8+fgnQo3f/esbAg3IzRD8hqwqbW+nA9waf68QrKgX9Q8W+82NE1rnhK9nzhz/3UNl4T8fQu8Qozla+lbbCiqhagsqrICWbXC6A4gXV1wqBeEYhHEOzQ3Z3RDivFp8UP+Gl6+PMB0H5Z0N/408VXs67eE6lvrf5FpGo2pf5FpK/dCiCAwKM/8n5Fpf5Fpf5F081=G94aEZreEaLHCioeEZz4wXEvpK/dgWbACWbH0KrGw6BnCqBnTbzBEWljUYzaDY9eDWQ1uHoIgWhHE6bn2ibnCtnRUt/drhL8zbrqzbrwrnAlbhokbb+hlaLoznbubK332N3+wO44wW7ATPlmpKJvb6amCWLOEHoubKJQTIf4UfhFEW7ab6btN6anTPlP+HRP+tJvNnAl8lF1UW74g6lMz6bIg654Uf+vEXLVCN5P+HRFTIUF+IUmp8JPUh+ACXhHgN5QpPEmpPsZuHz1p8f7wGf7pqF7p8f7p8f7wGh1p8f7wGf7p8f7wGf7p8f7p8h1pqF7p8h1pqF7p8f7wGh1pqF7p8h1wGf7pqF7p8f7pqF7wWF7p8h1p8f7wGf7wGh1p8f7p8f7pq71p8f7wGf7p8f7wGf7pq71p8f7……此处省略编码若干……
很少接触php加密,所以刚开始蒙了,不知道是怎么加密的,就只能手动解密了。后来才发现原来是用威盾解密的,网上也已经有了相应的解密软件,所以如果遇到如上面所示的代码的话,直接找“黑刀威盾解密专家”这款软件就可以了。
虽然走了冤枉路,当好歹最后解密成功了,也了解了整个加密的过程,所以还是把整个手动解密的过程发出来和大家共享下吧,下面是解密过程。
1x0
发现0.php中存在eval,那么直接把eval替换成 echo,修改后的文件为:1.php
<?php // 三方全能代理升级版,支持清晰度选择和id模式,ck用法ckid=/url=,cmp用法cmpid=/cmp=,隆虎科技网出品,20141227 $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=562140;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';echo(($$O0O0000O0('JE9PME9PMDAwMD0kT09PMDAwMDAwezE3fS4kT09PMDAwMDAwezEyfS4kT09PMDAwMDAwezE4fS4kT09PMDAwMDAwezV9LiRPT08wMDAwMDB7MTl9O2lmKCEwKSRPMDAwTzBPMDA9JE9PME9PMDAwMCgkT09PME8wTzAwLCdyYicpOyRPTzBPTzAwME89JE9PTzAwMDAwMHsxN30uJE9PTzAwMDAwMHsyMH0uJE9PTzAwMDAwMHs1fS4kT09PMDAwMDAwezl9LiRPT08wMDAwMDB7MTZ9OyRPTzBPTzAwTzA9JE9PTzAwMDAwMHsxNH0uJE9PTzAwMDAwMHswfS4kT09PMDAwMDAwezIwfS4kT09PMDAwMDAwezB9LiRPT08wMDAwMDB7MjB9OyRPTzBPTzAwME8oJE8wMDBPME8wMCwxMjQxKTskT08wME8wME8wPSgkT09PMDAwME8wKCRPTzBPTzAwTzAoJE9PME9PMDAwTygkTzAwME8wTzAwLDU1MiksJ0pvS0dmaFdZVXIwVHArdTI5ek44bGJxaXNDZ3dFM0RrTUF0SS9hWFp2NHh5MVZtZUY3SFBuUTZPUkJqZDVMY1M9JywnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLycpKSk7ZXZhbCgkT08wME8wME8wKTs=')));return;?> 36A4wWlv3WaVCNM42Ifn+GlRp8E6pGJ4CWaa0KDHP1yLVuOu5ju17cm5dTT411d0SguAPkIKB5611y6QB5y81xqO7EwOvjM5sNovEXbX2Nrv3YzFut5ebhsm8fATNaEm9nL+UIBlbtBpNfV0bHBG8nn5T6fcvjXPL1gOvjfZ081/8n5Fpf5Fpf5F2i+nEaLHCio1sq+a0K3kinCr8fbkiHE1UtEtTtz28n5F8Po2pGJmUtEtTKM/8nL2pGJFpf5F0Kz28Po28PJF8PJvrfL2pfL2pGJF8HM/8PJFpf5F8PJFTKz28PJF8PJFpGJ4TK30wnVYCXAiqbbHphzF0OlHui4uuW7tEqaP963Oz8+fgnQo3f/esbAg3IzRD8hqwqbW+nA9waf68QrKgX9Q8W+82NE1rnhK9nzhz/3UNl4T8fQu8Qozla+lbbCiqhagsqrICWbXC6A4gXV1wqBeEYhHEOzQ3Z3RDivFp8UP+Gl6+PMB0H5Z0N/408VXs67eE6lvrf5FpGo2pf5FpK/dCiCAwKM/8n5Fpf5Fpf5F081=G94aEZreEaLHCioeEZz4wXEvpK/dgWbACWbH0KrGw6BnCqBnTbzBEWljUYzaDY9eDWQ1uHoIgWhHE6bn2ibnCtnRUt/drhL8zbrqzbrwrnAlbhokbb+hlaLoznbubK332N3+wO44wW7ATPlmpKJvb6amCWLOEHoubKJQTIf4UfhFEW7ab6btN6anTPlP+HRP+tJvNnAl8lF1UW74g6lMz6bIg654Uf+vEXLVCN5P+HRFTIUF+IUmp8JPUh+ACXhHgN5QpPEmpPsZuHz1p8f7wGf7pqF7p8f7p8f7wGh1p8f7wGf7p8f7wGf7p8f7p8h1pqF7p8h1pqF7p8f7wGh1pqF7p8h1wGf7pqF7p8f7pqF7wWF7p8h1p8f7wGf7wGh1p8f7p8f7pq71p8f7wGf7p8f7wGf7pq71p8f7……此处省略编码若干……
运行后输出结果如下:1.txt
$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19};if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb');$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};$OO0OO000O($O000O0O00,1241);$OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,552),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));eval($OO00O00O0);
用1.txt的结果替换1.php中那个echo,得到:1a.php
<?php // 三方全能代理升级版,支持清晰度选择和id模式,ck用法ckid=/url=,cmp用法cmpid=/cmp=,隆虎科技网出品,20141227 $OOO0O0O00=__FILE__;$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');$OO00O0000=562140;$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5};$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16};$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};$O0O0000O0='OOO0000O0';$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19};if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb');$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};$OO0OO000O($O000O0O00,1241);$OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,552),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));eval($OO00O00O0);return;?> 36A4wWlv3WaVCNM42Ifn+GlRp8E6pGJ4CWaa0KDHP1yLVuOu5ju17cm5dTT411d0SguAPkIKB5611y6QB5y81xqO7EwOvjM5sNovEXbX2Nrv3YzFut5ebhsm8fATNaEm9nL+UIBlbtBpNfV0bHBG8nn5T6fcvjXPL1gOvjfZ081/8n5Fpf5Fpf5F2i+nEaLHCio1sq+a0K3kinCr8fbkiHE1UtEtTtz28n5F8Po2pGJmUtEtTKM/8nL2pGJFpf5F0Kz28Po28PJF8PJvrfL2pfL2pGJF8HM/8PJFpf5F8PJFTKz28PJF8PJFpGJ4TK30wnVYCXAiqbbHphzF0OlHui4uuW7tEqaP963Oz8+fgnQo3f/esbAg3IzRD8hqwqbW+nA9waf68QrKgX9Q8W+82NE1rnhK9nzhz/3UNl4T8fQu8Qozla+lbbCiqhagsqrICWbXC6A4gXV1wqBeEYhHEOzQ3Z3RDivFp8UP+Gl6+PMB0H5Z0N/408VXs67eE6lvrf5FpGo2pf5FpK/dCiCAwKM/8n5Fpf5Fpf5F081=G94aEZreEaLHCioeEZz4wXEvpK/dgWbACWbH0KrGw6BnCqBnTbzBEWljUYzaDY9eDWQ1uHoIgWhHE6bn2ibnCtnRUt/drhL8zbrqzbrwrnAlbhokbb+hlaLoznbubK332N3+wO44wW7ATPlmpKJvb6amCWLOEHoubKJQTIf4UfhFEW7ab6btN6anTPlP+HRP+tJvNnAl8lF1UW74g6lMz6bIg654Uf+vEXLVCN5P+HRFTIUF+IUmp8JPUh+ACXhHgN5QpPEmpPsZuHz1p8f7wGf7pqF7p8f7p8f7wGh1p8f7wGf7p8f7wGf7p8f7p8h1pqF7p8h1pqF7p8f7wGh1pqF7p8h1wGf7pqF7p8f7pqF7wWF7p8h1p8f7wGf7wGh1p8f7p8f7pq71p8f7wGf7p8f7wGf7pq71p8f7……此处省略编码若干……
又看到了eval,那就再换成echo吧!遗憾的是,这样做不能得到正确的结果。原因是:
文件末有大量的类似64位编码的数据,这些数据应该包含了经过编码的程序代码。
开头的解码脚本从__FILE__变量获取当前执行的文件名,然后定位到编码数据内部的某个位置(可能是开头或中间),解码并执行那些数据中蕴藏的程序。
从0.php变换到1a.php的过程中,开头的解码脚本的长度被改变,造成不能定位到正确的位置。
在1a.php已经可以看到三个数字:562140、1241、552。但是,无法判断这些数字将使解码脚本定位到编码数据的哪个位置。
现在只能分析这段解码脚本的流程。先把代码整理一下,得到1b.php:
<?php // 三方全能代理升级版,支持清晰度选择和id模式,ck用法ckid=/url=,cmp用法cmpid=/cmp=,隆虎科技网出品,20141227 $OOO0O0O00=__FILE__; $OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72'); $OO00O0000=562140; $OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; $OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; $OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5}; $O0O0000O0='OOO0000O0'; $OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19}; if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb'); $OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; $OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20}; $OO0OO000O($O000O0O00,1241); $OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,552),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))); eval($OO00O00O0); return;?> 36A4wWlv3WaVCNM42Ifn+GlRp8E6pGJ4CWaa0KDHP1yLVuOu5ju17cm5dTT411d0SguAPkIKB5611y6QB5y81xqO7EwOvjM5sNovEXbX2Nrv3YzFut5ebhsm8fATNaEm9nL+UIBlbtBpNfV0bHBG8nn5T6fcvjXPL1gOvjfZ081/8n5Fpf5Fpf5F2i+nEaLHCio1sq+a0K3kinCr8fbkiHE1UtEtTtz28n5F8Po2pGJmUtEtTKM/8nL2pGJFpf5F0Kz28Po28PJF8PJvrfL2pfL2pGJF8HM/8PJFpf5F8PJFTKz28PJF8PJFpGJ4TK30wnVYCXAiqbbHphzF0OlHui4uuW7tEqaP963Oz8+fgnQo3f/esbAg3IzRD8hqwqbW+nA9waf68QrKgX9Q8W+82NE1rnhK9nzhz/3UNl4T8fQu8Qozla+lbbCiqhagsqrICWbXC6A4gXV1wqBeEYhHEOzQ3Z3RDivFp8UP+Gl6+PMB0H5Z0N/408VXs67eE6lvrf5FpGo2pf5FpK/dCiCAwKM/8n5Fpf5Fpf5F081=G94aEZreEaLHCioeEZz4wXEvpK/dgWbACWbH0KrGw6BnCqBnTbzBEWljUYzaDY9eDWQ1uHoIgWhHE6bn2ibnCtnRUt/drhL8zbrqzbrwrnAlbhokbb+hlaLoznbubK332N3+wO44wW7ATPlmpKJvb6amCWLOEHoubKJQTIf4UfhFEW7ab6btN6anTPlP+HRP+tJvNnAl8lF1UW74g6lMz6bIg654Uf+vEXLVCN5P+HRFTIUF+IUmp8JPUh+ACXhHgN5QpPEmpPsZuHz1p8f7wGf7pqF7p8f7p8f7wGh1p8f7wGf7p8f7wGf7p8f7p8h1pqF7p8h1pqF7p8f7wGh1pqF7p8h1wGf7pqF7p8f7pqF7wWF7p8h1p8f7wGf7wGh1p8f7p8f7pq71p8f7wGf7p8f7wGf7pq71p8f7……此处省略编码若干……
然后,便是一行行弄清解码脚本中每个变量的值,这样就可以看懂其运行流程了。例如$OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72');,可以在其后面加一句die($OOO000000);,就能看到这个变量的值是'th6sbehqla4co_sadfpnr',接着就能得到其他相关变量的值,进行替换整理后得到:1c.php
<?php // 三方全能代理升级版,支持清晰度选择和id模式,ck用法ckid=/url=,cmp用法cmpid=/cmp=,隆虎科技网出品,20141227 $OOO0O0O00=__FILE__; // $OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72'); $OOO000000='th6sbehqla4co_sadfpnr'; $OO00O0000=562140; /*$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; $OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; $OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5};*/ $OOO0000O0='base64_decode'; $O0O0000O0='OOO0000O0'; // $OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19}; $OO0OO0000='fopen'; // if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb'); $O000O0O00=fopen($OOO0O0O00,'rb'); // $OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; $OO0OO000O='fread'; // $OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20}; $OO0OO00O0='strtr'; // $OO0OO000O($O000O0O00,1241); fread($O000O0O00,1241); // $OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,552),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))); $OO00O00O0=(base64_decode(strtr(fread($O000O0O00,552),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))); eval($OO00O00O0); return;?> 36A4wWlv3WaVCNM42Ifn+GlRp8E6pGJ4CWaa0KDHP1yLVuOu5ju17cm5dTT411d0SguAPkIKB5611y6QB5y81xqO7EwOvjM5sNovEXbX2Nrv3YzFut5ebhsm8fATNaEm9nL+UIBlbtBpNfV0bHBG8nn5T6fcvjXPL1gOvjfZ081/8n5Fpf5Fpf5F2i+nEaLHCio1sq+a0K3kinCr8fbkiHE1UtEtTtz28n5F8Po2pGJmUtEtTKM/8nL2pGJFpf5F0Kz28Po28PJF8PJvrfL2pfL2pGJF8HM/8PJFpf5F8PJFTKz28PJF8PJFpGJ4TK30wnVYCXAiqbbHphzF0OlHui4uuW7tEqaP963Oz8+fgnQo3f/esbAg3IzRD8hqwqbW+nA9waf68QrKgX9Q8W+82NE1rnhK9nzhz/3UNl4T8fQu8Qozla+lbbCiqhagsqrICWbXC6A4gXV1wqBeEYhHEOzQ3Z3RDivFp8UP+Gl6+PMB0H5Z0N/408VXs67eE6lvrf5FpGo2pf5FpK/dCiCAwKM/8n5Fpf5Fpf5F081=G94aEZreEaLHCioeEZz4wXEvpK/dgWbACWbH0KrGw6BnCqBnTbzBEWljUYzaDY9eDWQ1uHoIgWhHE6bn2ibnCtnRUt/drhL8zbrqzbrwrnAlbhokbb+hlaLoznbubK332N3+wO44wW7ATPlmpKJvb6amCWLOEHoubKJQTIf4UfhFEW7ab6btN6anTPlP+HRP+tJvNnAl8lF1UW74g6lMz6bIg654Uf+vEXLVCN5P+HRFTIUF+IUmp8JPUh+ACXhHgN5QpPEmpPsZuHz1p8f7wGf7pqF7p8f7p8f7wGh1p8f7wGf7p8f7wGf7p8f7p8h1pqF7p8h1pqF7p8f7wGh1pqF7p8h1wGf7pqF7p8f7pqF7wWF7p8h1p8f7wGf7wGh1p8f7p8f7pq71p8f7wGf7p8f7wGf7pq71p8f7……此处省略编码若干……
其中涉及文件操作的,也就是这几句:
$OOO0O0O00=__FILE__;//获取当前文件名 $O000O0O00=fopen($OOO0O0O00,'rb');//打开文件 fread($O000O0O00,1241);//跳过1241字节 $OO00O00O0=(base64_decode(strtr(fread($O000O0O00,552),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')));//读取552字节,根据代码表替换字符,base64解码 eval($OO00O00O0);//执行解码后的代码
在1a.php中把eval替换为echo之所以行不通,就是因为这里写着的跳过1182字节。跳过1182字节是针对原始文件而言的,修改过后文件大小改变,需要跳过的字节数就不一定是1182字节了。现在,只要从原始文件中跳过1182字节后复制908字节,替换掉fread($O000O0O00,908),然后把eval换成echo就可以了,得到2.php
<?php $OOO0O0O00=__FILE__; // $OOO000000=urldecode('%74%68%36%73%62%65%68%71%6c%61%34%63%6f%5f%73%61%64%66%70%6e%72'); $OOO000000='th6sbehqla4co_sadfpnr'; $OO00O0000=562140; //$OOO0000O0=$OOO000000{4}.$OOO000000{9}.$OOO000000{3}.$OOO000000{5}; //$OOO0000O0.=$OOO000000{2}.$OOO000000{10}.$OOO000000{13}.$OOO000000{16}; //$OOO0000O0.=$OOO0000O0{3}.$OOO000000{11}.$OOO000000{12}.$OOO0000O0{7}.$OOO000000{5}; $OOO0000O0='base64_decode'; $O0O0000O0='OOO0000O0'; // $OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19}; $OO0OO0000='fopen'; // if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb'); $O000O0O00=fopen($OOO0O0O00,'rb'); // $OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16}; $OO0OO000O='fread'; // $OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20}; $OO0OO00O0='strtr'; // $OO0OO000O($O000O0O00,1241); fread($O000O0O00,1241); $A='36A4wWlv3WaVCNM42Ifn+GlRp8E6pGJ4CWaa0KDHP1yLVuOu5ju17cm5dTT411d0SguAPkIKB5611y6QB5y81xqO7EwOvjM5sNovEXbX2Nrv3YzFut5ebhsm8fATNaEm9nL+UIBlbtBpNfV0bHBG8nn5T6fcvjXPL1gOvjfZ081/8n5Fpf5Fpf5F2i+nEaLHCio1sq+a0K3kinCr8fbkiHE1UtEtTtz28n5F8Po2pGJmUtEtTKM/8nL2pGJFpf5F0Kz28Po28PJF8PJvrfL2pfL2pGJF8HM/8PJFpf5F8PJFTKz28PJF8PJFpGJ4TK30wnVYCXAiqbbHphzF0OlHui4uuW7tEqaP963Oz8+fgnQo3f/esbAg3IzRD8hqwqbW+nA9waf68QrKgX9Q8W+82NE1rnhK9nzhz/3UNl4T8fQu8Qozla+lbbCiqhagsqrICWbXC6A4gXV1wqBeEYhHEOzQ3Z3RDivFp8UP+Gl6+PMB0H5Z0N/408VXs67eE6lvrf5FpGo2pf5FpK/dCiCAwKM/8n5Fpf5Fpf5F081='; $OO00O00O0=(base64_decode(strtr($A,'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))); echo($OO00O00O0); return; ?>运行得到2.txt
while(time()>1445817600)die('参数错误,请检查参数!网络同步电视播放器(TV.LHKJW.COM)出品!');$OO00O00O0=str_replace('__FILE__',"'".$OOO0O0O00."'",($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,$OO00O0000),'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))));fclose($O000O0O00);eval($OO00O00O0);再次出现eval,还是没有解完。将2.txt内容替换掉2.php的echo部分,然后再整理代码、分析各变量,处理方法就很明显了,从原始文件的编码数据开头起,跳过552字节,复制562140字节,替换掉fread($O000O0O00,562140),eval换成echo。前面那次解码使用的代码也需要删除,但是$OOO0O0O00=__FILE__;这句要留着,因为str_replace里用到了这个变量。得到3.php:
<?php $OOO0O0O00=__FILE__; $A='此处为编码数据,由于数据太大,就不贴代码了';//从原始文件的编码数据开头起,跳过552字节,复制562140字节 while(time()>1445817600)die('参数错误,请检查参数!网络同步电视播放器(TV.LHKJW.COM)出品!'); $OO00O00O0=str_replace('__FILE__',"'".$OOO0O0O00."'",(base64_decode(strtr($A,'JoKGfhWYUr0Tp+u29zN8lbqisCgwE3DkMAtI/aXZv4xy1VmeF7HPnQ6ORBjd5LcS=','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/')))); echo($OO00O00O0); return; ?>运行完3.php,应该就可以得到解码后的源码了,解这代码,确实很费时间,其实PHP是一个自由、开源的世界,既然肯将程序分享出来,就没必要将代码弄成这样,影响执行效率不说,更是不便于修改、拓展,何必呢?
希望大家都自觉起来吧,对于引用的代码请标记出处,这样,分享者就不用这么麻烦了。