三行埋点脚本
徽码安全的前端陆翊拿到一段第三方埋点代码,满眼 \x 转义加 _0x4c1 下标,只想知道它往控制台打了什么。贴进去的是三行:首行声明 _0x4c1 数组,次行是 track 函数,末行调 track()。'\x63\x6c\x69\x63\x6b' 就是 click,'\x62\x61\x6e\x6e\x65\x72' 是 banner,'\x73\x65\x6e\x64' 是 send;数组里三项只用了 [0] 和 [1]。原文只读得出 console['log'],读不出打的是什么词。

四个开关都留着
四个 checkbox 默认全勾,分别是"转义字符串还原""常量数组替换""eval 打包还原""按缩进重新排版",只在点按钮那一下被读取。勾掉一项或改了代码,右侧都不会自己变,得重新点一次才按新配置跑;这一步最容易被当成失灵。陆翊保持四项全勾,他要把字面扒干净,四段正好各管一处。

按还原看字面
"开始还原"是唯一算的入口。结果给出 var _0x4c1=['click','banner','send'];,函数体里那行变成 console['log']("click"+': '+"banner");,陆翊要的那两个词就露出来了。deobUnescape 把 \x 扒成能读的字面,deobArrays 把 _0x4c1[0] 与 _0x4c1[1] 替回词。引号从单的换成双的、函数体多出空行,是 deobBeautify 排版弄的,不是原脚本长这样。

四条账各管一段
下方四条记录各交一句账。"没发现 eval 打包(或格式不支持),跳过"是 deobUnpack 没认出这段 eval 形态;"转义字符串还原:已处理"对应开头那串 \x 被扒开;"常量数组替换:替换了 2 处"只算 [0] 和 [1],'send' 对应的 [2] 没人引用;末条"已按缩进重新排版"对应多出的空行。字面还原到位,数组变量 _0x4c1 还在,不算彻底复原。

企业知识网( www.qiyezhishi.com )提供的结果为参考性内容,不构成法律、税务或投资建议。具体请以主管部门口径与最新法规为准。