2013-04-04 93 views
1

我一直在JS混淆中大量训练,开始了解我所有高级概念的方法,但最近我发现了一个混淆代码,我相信它是某种形式的“Native Javascript代码”,我可以“找不到这种类型混淆的任何文件:高级Javascript混淆

这里是一个小摘录:

'\141\75\160\162\157\155\160\164\50\47\105\156\164\162\145\172\40' 

它被称为是这样的:

eval(eval('\141\75\160\162\157\155\160\164\50\47\105\156\164\162\145\172\40')) 

由于代码为t他工作的另一个,我鼓励它在JS挑战我没有发布完整的代码,所以我给的例子将无法正常工作,但完整的代码确实工作。


所以这里是我的问题: 这是什么类型的代码?我在哪里可以了解更多信息?


任何建议表示赞赏:)

+0

只需将该字符串粘贴到浏览器的控制台中即可,并且很惊讶...... – robertklep 2013-04-04 08:41:44

回答

6

它只是一个字符串中的字符转义。您可以在JavaScript控制台在任何浏览器中读取数据:

console.log('\141\75\160\162\157\155\160\164\50\47\105\156\164\162\145\172\40') 

会打印:

"a=prompt('Entrez " 
+2

您不需要通过函数传递它。这只是字符转义序列。 – Blender 2013-04-04 08:42:38

+0

你打败了我! [这里](http://www.javascriptkit.com/jsref/escapesequence.shtml)是一个解释JavaScript转义序列的页面。 – MTCoster 2013-04-04 08:43:36

+0

谢谢:)不知道我是怎么不认识的......也许是因为我希望它会更先进...... – user2243892 2013-04-04 08:43:42

1

这只是转义字符,一部分输出查询字符串,另一个实际运行返回的字符串 - 尝试在控制台中调用它。

eval('\160\162\157\155\160\164\50\47\105\156\164\162\145\172\47\51') 

可能对您有帮助吗?

+1

'escape'和'unescape'用于百分比编码。 – Blender 2013-04-04 08:46:58

+0

编辑并制作成工作脚本 – marksyzm 2013-04-04 12:57:17

0

这些数字是字符的ASCII码(http://www.asciitable.com/index/asciifull.gif)(以八进制表示形式)。 您可以将其转换为字符。当有人想要制作一个XSS attack或想要隐藏js代码时使用。

所以你写了什么的字符串表示:

a=prompt('Entrez 

的JS引擎,浏览器可以在八进制格式转换为“真实”的字符串。使用eval函数可以运行。 (如果“翻译”代码没有语法错误)