配合chrome浏览器console解密一段JSFuck代码["\x66\x69\x6c\x74\x65\x72"]

2019-11-16 / 1 评论 技术文章 / Mrxn

本文共计 1602 字,感谢您的耐心浏览与评论.

在测试某个项目的时候,发现一段JavaScript代码,省略不重要的部分如下:
// 原内容如下,只知道有个正则
['mmh']["\x66\x69\x6c\x74\x65\x72"]["\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"](((['mmh'] + [])[
    "\x63\x6f\x6e\x73\x74\x72\x75\x63\x74\x6f\x72"]['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'][
    '\x61\x70\x70\x6c\x79'](null,
    "33s102Y117y110O99L116H105n111u110Z40g41U123u102m117c110M99m116T105y111d110"[
        '\x73\x70\x6c\x69\x74'](/[a-zA-Z]{1,}/))))('mmh');
// 在JavaScript中对于\x66这种开头的,\x代表这是一个16进制,直接在console里面打印出来就ok
// console.log('\x66\x69\x6c\x74\x65\x72') => filter
// 然后依次打印所有的类似字节即可得到如下转码后的JavaScript代码
// 如果你到这里不知道如何下手的话,怎么办?搜索啊!Google搜索以下 XXXX是什么 就有结果了
// 或者把全部\x66这种解密后得到的相关字符串去搜索就有结果了
jsfuck对照表.png
// 下面看一下jsfuck对照表,然后解密
// false       =>  ![]
// true        =>  !![]
// undefined   =>  [][[]]
// NaN         =>  +[![]]
// 0           =>  +[]
// 1           =>  +!+[]
// 2           =>  !+[]+!+[]
// 10          =>  [+!+[]]+[+[]]
// Array       =>  []
// Number      =>  +[]
// String      =>  []+[]
// Boolean     =>  ![]
// Function    =>  []["filter"]
// eval        =>  []["filter"]["constructor"]( CODE )()
// window      =>  []["filter"]["constructor"]("return this")()
// 解码后的代码如下,为了节省字符,使用mrxn123代替代码中的超长字符串
['mmh']["filter"]["constructor"](((['mmh'] + [])["constructor"]['fromCharCode']['apply'](null,"mrxn123"['split'](/[a-zA-Z]{1,}/))))('mmh');
// 根据jsfuck对照表,我们去掉mmh,这样就是熟悉的原滋原味的jsfuck格式的代码了
[]["filter"]["constructor"]((([] + [])["constructor"]['fromCharCode']['apply'](null,"mrxn123"['split'](/[a-zA-Z]{1,}/))))();
// 根据eval对照[]["filter"]["constructor"]( CODE )(),我们只需要把code部分代码直接console.log()出来就好
console.log(((([] + [])["constructor"]['fromCharCode']['apply'](null,"mrxn123"['split'](/[a-zA-Z]{1,}/)))));
// 输出:{
console.log测试.png
// 同样的姿势将开始用mrxn123替换掉的字符串替换回去,回车,OK!JavaScript源码就出现在控制台了
jsfuck解密后源码.png 
注意:上面的步骤中,替换需要去掉原内容中的空格,不然会报错。

标签: JavaScript 解密

转载:转载请注明原文链接 - 配合chrome浏览器console解密一段JSFuck代码["\x66\x69\x6c\x74\x65\x72"]


1条回应:“配合chrome浏览器console解密一段JSFuck代码["\x66\x69\x6c\x74\x65\x72"]”

  1. 冬日

    测试一下回复


发表评论

{view_code_no}