https://itho.cn/ https://itho.cn/
首页
  • 首页
  • 小工具
搜索历史 清空
写文章

登录

账号密码登录
扫码登录
扫码登录
请使用手机扫码登录
注册登录即表示同意用户协议和隐私政策
NOTES
NETWORK
Cisco Huawei H3C RouterOS OpenVPN
SYSTEM
Windows Linux macOS
DEV
Python PHP
OPS
CI/CD Nginx MySQL Redis Zabbix
SECURE
CLOUD
Docker Kubernetes VMware OpenStack
推荐 最新
aaencode颜文字加密JS分析,并使用PHP进行编码解码
myluzh 2020-5-23

aaencode颜文字加密JS分析,并使用PHP进行编码解码

0x01 前言 今天在看一个网站JS代码的时候发现,JS代码为一串颜文字,而且还能被解析使用,搜索后得知为aaencode加密,此加密能把js代码转化成颜文字。 原作者的aaencode编码地址 https://utf-8.jp/public/aaencode.html 0x02编码过程 网页源码里可以查看到具体的编码过程,摘录如下。 function aaencode( text ) { var t; var b = [ "(c^_^o)", "(゚Θ゚)", "((o^_^o) - (゚Θ゚))", "(o^_^o)", "(゚ー゚)", "((゚ー゚) + (゚Θ゚))", "((o^_^o) +(o^_^o))", "((゚ー゚) + (o^_^o))", "((゚ー゚) + (゚ー゚))", "((゚ー゚) + (゚ー゚) + (゚Θ゚))", "(゚Д゚) .゚ω゚ノ", "(゚Д゚) .゚Θ゚ノ", "(゚Д゚) ['c']", "(゚Д゚) .゚ー゚ノ", "(゚Д゚) .゚Д゚ノ", "(゚Д゚) [゚Θ゚]" ]; var r = "゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); "; if( /ひだまりスケッチ×(365|356)\s*来週も見てくださいね[!!]/.test( text ) ){ r += "X=_=3; "; r += "\r\n\r\n X / _ / X < \"来週も見てくださいね!\";\r\n\r\n"; } r += "(゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);"+ "(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] "+ ",゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] "+ ",゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];"+ "(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];"+ "(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];"+ "(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + "+ "((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+"+ "((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+"+ "((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+"+ "((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];"+ "(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+"+ "((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+"+ "((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; "+ "(゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\\\'; "+ "(゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];"+ "(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];"+//TODO "(゚Д゚) [゚o゚]='\\\"';"+ "(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+"; r += "(゚Д゚)[゚o゚]+ "; for( var i = 0; i < text.length; i++ ){ n = text.charCodeAt( i ); t = "(゚Д゚)[゚ε゚]+"; if( n <= 127 ){ t += n.toString( 8 ).replace( /[0-7]/g, function(c){ return b[ c ] + "+ "; } ); }else{ var m = /[0-9a-f]{4}$/.exec( "000" + n.toString(16 ) )[0]; t += "(o゚ー゚o)+ " + m.replace( /[0-9a-f]/gi, function(c){ return b[ parseInt( c,16 ) ] + "+ "; } ); } r += t; } r += "(゚Д゚)[゚o゚]) (゚Θ゚)) ('_');"; return r; } 0x03 PHP加解密脚本 <?php //实现两个PHP没有的JS常用函数,兼容中文。 function charCodeAt($str, $index) { $char = mb_substr($str, $index, 1, 'UTF-8'); if (mb_check_encoding($char, 'UTF-8')) { $ret = mb_convert_encoding($char, 'UTF-32BE', 'UTF-8'); return hexdec(bin2hex($ret)); } else { return null; } } function uchr ($codes) { if (is_scalar($codes)) $codes= func_get_args(); $str= ''; foreach ($codes as $code){ $buf = html_entity_decode('&#'.$code.';',ENT_NOQUOTES,'UTF-8'); $buf == '&#'.$code.';' && ($buf = mb_convert_encoding('&#' . intval($code) . ';', 'UTF-8', 'HTML-ENTITIES')); $str.= $buf; } return $str; } $b = [ "(c^_^o)", "(゚Θ゚)", "((o^_^o) - (゚Θ゚))", "(o^_^o)", "(゚ー゚)", "((゚ー゚) + (゚Θ゚))", "((o^_^o) +(o^_^o))", "((゚ー゚) + (o^_^o))", "((゚ー゚) + (゚ー゚))", "((゚ー゚) + (゚ー゚) + (゚Θ゚))", "(゚Д゚) .゚ω゚ノ", "(゚Д゚) .゚Θ゚ノ", "(゚Д゚) ['c']", "(゚Д゚) .゚ー゚ノ", "(゚Д゚) .゚Д゚ノ", "(゚Д゚) [゚Θ゚]" ]; //编码的过程 function aaencode($text){ global $b; $r = "゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); "; if(preg_match('/ひだまりスケッチ×(365|356)\s*来週も見てくださいね[!!]/', $text)){ $r .= "X=_=3; "; $r .= "\r\n\r\n X / _ / X < \"来週も見てくださいね!\";\r\n\r\n"; } $r .= "(゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);". "(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ". ",゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ". ",゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];". "(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];". "(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];". "(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ". "((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+". "((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+". "((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+". "((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];". "(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+". "((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+". "((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; ". "(゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\\\'; ". "(゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];". "(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];". "(゚Д゚) [゚o゚]='\\\"';". "(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+"; $r .= "(゚Д゚)[゚o゚]+ "; for( $i = 0; $i < mb_strlen($text); $i++ ){ $n = charCodeAt($text,$i); $t = "(゚Д゚)[゚ε゚]+"; if( $n <= 127 ){ $t .= preg_replace_callback('/[0-7]/', function($c)use ($b){ return $b[$c[0]]."+ "; }, ((string)decoct($n))); }else{ if(preg_match('/[0-9a-f]{4}$/', '000'.((string)dechex($n)),$result)){ $m = $result[0]; }else{ $m = ''; } $t .= "(o゚ー゚o)+ " . preg_replace_callback('/[0-9a-f]/i',function($c)use ($b){ return $b[ hexdec($c[0]) ] . "+ "; },$m); } $r .= $t; } $r .= "(゚Д゚)[゚o゚]) (゚Θ゚)) ('_');"; return $r; } //解码的过程 function aadecode($text){ global $b; $text = strtr($text, ["(゚Д゚)[゚o゚]) (゚Θ゚)) ('_');" => '']); for($i=0;$i<count($b);$i++){ $buf = $b[$i]; if($i <=7){ //8进制逆向 $str = (($i)); $text = strtr($text, [$buf."+ "=>$str]); }else{ //16进制逆向 $text = strtr($text, [$buf."+ " => dechex($i)]); } } $text = preg_replace_callback('/\(゚Д゚\)\[゚ε゚\]\+(\d+)/', function($c){ return uchr(octdec($c[1])); }, $text); $text = preg_replace_callback('/\(゚Д゚\)\[゚ε゚\]\+\(o゚ー゚o\)\+\s+([0-9a-f]{4})/', function($c){ return uchr(hexdec($c[1])); }, $text); $pre = [ "゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); ", "X=_=3; ", "\r\n\r\n X / _ / X < \"来週も見てくださいね!\";\r\n\r\n", "(゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);", "(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ", ",゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ", ",゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];", "(゚Д゚) ['c'] = ((゚Д゚)+'_') [ (゚ー゚)+(゚ー゚)-(゚Θ゚) ];", "(゚Д゚) ['o'] = ((゚Д゚)+'_') [゚Θ゚];", "(゚o゚)=(゚Д゚) ['c']+(゚Д゚) ['o']+(゚ω゚ノ +'_')[゚Θ゚]+ ((゚ω゚ノ==3) +'_') [゚ー゚] + ", "((゚Д゚) +'_') [(゚ー゚)+(゚ー゚)]+ ((゚ー゚==3) +'_') [゚Θ゚]+", "((゚ー゚==3) +'_') [(゚ー゚) - (゚Θ゚)]+(゚Д゚) ['c']+", "((゚Д゚)+'_') [(゚ー゚)+(゚ー゚)]+ (゚Д゚) ['o']+", "((゚ー゚==3) +'_') [゚Θ゚];(゚Д゚) ['_'] =(o^_^o) [゚o゚] [゚o゚];", "(゚ε゚)=((゚ー゚==3) +'_') [゚Θ゚]+ (゚Д゚) .゚Д゚ノ+", "((゚Д゚)+'_') [(゚ー゚) + (゚ー゚)]+((゚ー゚==3) +'_') [o^_^o -゚Θ゚]+", "((゚ー゚==3) +'_') [゚Θ゚]+ (゚ω゚ノ +'_') [゚Θ゚]; ", "(゚ー゚)+=(゚Θ゚); (゚Д゚)[゚ε゚]='\\\\'; ", "(゚Д゚).゚Θ゚ノ=(゚Д゚+ ゚ー゚)[o^_^o -(゚Θ゚)];", "(o゚ー゚o)=(゚ω゚ノ +'_')[c^_^o];", "(゚Д゚) [゚o゚]='\\\"';", "(゚Д゚) ['_'] ( (゚Д゚) ['_'] (゚ε゚+", "(゚Д゚)[゚o゚]+ ", ]; $rA = []; foreach($pre as $val){ $rA[$val] = ''; } $text = strtr($text,$rA); return $text; } //加密 $crytext = aaencode('console.log("唐宋元明清");'); echo $crytext;//゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚)...... //解密 echo aadecode($crytext);//console.log("唐宋元明清"); 参考链接:https://my.oschina.net/u/2366984/blog/1621119

1373 27 0
phpjs加密aaencode

搜索

搜索历史 清空

热门文章

  • 1 VMware vCenter vSphere ESXi 7.0 许可证&下载链接
  • 2 DS918+,DS3617xs黑群晖洗白码
  • 3 黑群晖各版本引导下载
  • 4 Kali Liunx下msfvenom利用方法
  • 5 python base64加解密脚本(可变换码表)
  • 6 Kali Liunx字典生成工具Crunch,Cupp,Cewl
  • 7 解决VM虚拟机Kali Liunx连不上网
  • 8 JIS-CTF-VulnUpload-CTF01靶机渗透测试笔记

最新文章

  • 1 测试
  • 2 K8S 部署 Redis Exporter
  • 3 K8S 部署OpenTelemetry(用于 Kubernetes ≤ v1.22 )
  • 4 Windows Server 重置RDS宽限期
  • 5 配置RDP远程桌面连接,开启GPU加速、60FPS
  • 6 使用LLM+MCP,实现对话式运维的Demo
  • 7 K8S 部署Redis集群(ot-redis-operator方式)
  • 8 iptables 四表五链

最新评论

  • 99用户头像
    99
    5 个月前
    作者这个很有用
  • myluzh用户头像
    myluzh
    7 个月前
    @顶顶顶:https://www.ela...
  • 顶顶顶用户头像
    顶顶顶
    7 个月前
    版本对应关系去哪看呢
  • 冬天里的火用户头像
    冬天里的火
    1 年前
    可以,现在弄k8s 的越来越多了,确实都...

存档

  • 2025年7月 (3)
  • 2025年6月 (1)
  • 2025年5月 (3)
  • 2025年4月 (1)
  • 2025年3月 (6)
  • 2025年2月 (5)
  • 2025年1月 (3)
  • 2024年12月 (2)
  • 2024年11月 (8)
  • 2024年10月 (8)
  • 2024年9月 (6)
  • 2024年8月 (2)
  • 2024年7月 (7)
  • 2024年6月 (3)
  • 2024年5月 (6)
  • 2024年4月 (1)
  • 2024年3月 (3)
  • 2024年2月 (6)
  • 2024年1月 (11)
  • 2023年12月 (13)
  • 2023年11月 (15)
  • 2023年10月 (8)
  • 2023年9月 (11)
  • 2023年8月 (4)
  • 2023年7月 (18)
  • 2023年6月 (16)
  • 2023年5月 (16)
  • 2023年4月 (4)
  • 2023年3月 (7)
  • 2023年2月 (26)
  • 2023年1月 (10)
  • 2022年12月 (7)
  • 2022年11月 (2)
  • 2022年10月 (5)
  • 2022年9月 (8)
  • 2022年8月 (9)
  • 2022年7月 (4)
  • 2022年6月 (3)
  • 2022年5月 (3)
  • 2022年4月 (3)
  • 2022年3月 (7)
  • 2022年2月 (1)
  • 2022年1月 (2)
  • 2021年12月 (6)
  • 2021年11月 (3)
  • 2021年10月 (5)
  • 2021年9月 (8)
  • 2021年8月 (3)
  • 2021年7月 (3)
  • 2021年6月 (3)
  • 2021年5月 (3)
  • 2021年4月 (4)
  • 2021年3月 (3)
  • 2021年2月 (1)
  • 2021年1月 (1)
  • 2020年12月 (8)
  • 2020年11月 (6)
  • 2020年10月 (1)
  • 2020年9月 (3)
  • 2020年8月 (1)
  • 2020年7月 (5)
  • 2020年6月 (1)
  • 2020年5月 (2)
  • 2020年4月 (7)
  • 2020年3月 (20)
  • 2020年2月 (12)
  • 2020年1月 (3)
  • 2010年10月 (3)

链接

  • operatorhub.io
  • CNFF landscape
关于 友链 rss
51.LA

备案号:

153.12ms