PHP中代码编码解码的一些问题总结(base64+gzinflate|gzdeflate+str_rot13)
2013-12-10 13:14
621 查看
在github上下了个PHP的webshell,代码如下图
中间省略几百行代码......
一开始没有头绪,以为是采用了PHP官方的ZendGuard加密算法,所以会自动解码
百度了下发现其实不然,用ZendGuard加密的话,在PHP代码中会显示@zend字样。
其实是自己没弄懂PHP,忽视了前面的变量,想当然的以为用的PHP自带的编码解码算法
函数问题:
1.str_rot13():对字符串执行 ROT13 编码,是一种每一个字母被另一个字母代替的方法。这个代替字母是由原来的字母向前移动
13 个字母而得到的。数字和非字母字符保持不变。编码和解码都是由相同的函数完成的。如果把一个已编码的字符串作为参数,那么将返回原始字符串
2.strrev():原型是extern char *strrev(char *s)把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)
3.gzinflate(),gzdeflate()是压缩与解压缩算法
4.eval():把字符串按照 PHP 代码来计算,该字符串必须是合法的
PHP 代码,且必须以分号结尾
那么经过计算变量$_,$__,$___的值如下变化
最后一个即为每个变量的值,它们都对应着函数名。
最终在eval函数中,把变量$_,$__,$___替换后,代码转换成:gzinflate(base64_decode(str_rot13('bEzgeKTPKxTZIQvPBRf······'))),这个式子执行后会返回被加密的PHP代码,然后执行。
总结:
所以得出原PHP文件的编码顺序为:gzdeflate(压缩)->base64_encode(base64编码)->str_rot13(ROT 13编码)
经过这样方式加密的方式可以有效的阻拦别人查看、修改源代码。
具体的base64+gzinflate压缩编码和解码代码实现:脚本之家
中间省略几百行代码......
一开始没有头绪,以为是采用了PHP官方的ZendGuard加密算法,所以会自动解码
百度了下发现其实不然,用ZendGuard加密的话,在PHP代码中会显示@zend字样。
其实是自己没弄懂PHP,忽视了前面的变量,想当然的以为用的PHP自带的编码解码算法
函数问题:
1.str_rot13():对字符串执行 ROT13 编码,是一种每一个字母被另一个字母代替的方法。这个代替字母是由原来的字母向前移动
13 个字母而得到的。数字和非字母字符保持不变。编码和解码都是由相同的函数完成的。如果把一个已编码的字符串作为参数,那么将返回原始字符串
2.strrev():原型是extern char *strrev(char *s)把字符串s的所有字符的顺序颠倒过来(不包括空字符NULL)
3.gzinflate(),gzdeflate()是压缩与解压缩算法
4.eval():把字符串按照 PHP 代码来计算,该字符串必须是合法的
PHP 代码,且必须以分号结尾
那么经过计算变量$_,$__,$___的值如下变化
最后一个即为每个变量的值,它们都对应着函数名。
最终在eval函数中,把变量$_,$__,$___替换后,代码转换成:gzinflate(base64_decode(str_rot13('bEzgeKTPKxTZIQvPBRf······'))),这个式子执行后会返回被加密的PHP代码,然后执行。
总结:
所以得出原PHP文件的编码顺序为:gzdeflate(压缩)->base64_encode(base64编码)->str_rot13(ROT 13编码)
经过这样方式加密的方式可以有效的阻拦别人查看、修改源代码。
具体的base64+gzinflate压缩编码和解码代码实现:脚本之家
相关文章推荐
- PHP编码gzdeflate与Golang解码DEFLATE
- PHP编码gzdeflate与Golang解码DEFLATE
- UTF-8编码问题总结:HTML,PHP,MYSQL,JS,FLASH
- PHP解码unicode编码的中文字符代码分享
- phpmailer发邮件常见的一些问题总结
- php代码优化及php相关问题总结
- PHP代码规范的一些总结
- python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
- PHP页面和Mysql数据库的转UTF8编码问题总结
- php代码优化及php相关问题总结
- python 处理中文遇到的编码问题总结 以及 字符str的编码如何判断
- php文件代码采用UTF-8编码的BOM问题
- php代码优化及php相关问题总结
- PHP使用eval(gzinflate(str_rot13(base64_decode('BASE64加密后内容'))))核心代码的解密
- 安装iis和php环境时遇到的一些问题总结
- PHP页面和Mysql数据库的转UTF8编码问题总结
- PHP(5)--总结php原生态的一些代码(不定时补充)
- Ajax跟PHP交互时编码问题的总结
- php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
- PHP页面和Mysql数据库的转UTF8编码问题总结