javascript - 浏览器如何解码这些混淆的类名?
问题描述
这个 javascript 文件似乎被混淆了,类名不是人类可读的,看起来像lt$nkqmr
. 但是,当浏览器运行 javascript 时,例如here或here,浏览器显然会解码类名,因为控制台可以自动完成类名,例如lt.ImageLoader
. 浏览器如何解码这些混淆的类名,我该怎么做?
解决方案
TL; DR:不,通常这是不可能的。
如果您检查链接页面的来源,您可以看到该lt.ImageLoader
函数定义如下:
lt[lt$tyopy(0x3ca)] = function() { /* function body */ }
如您所见,它的名称是评估的结果lt$tyopy(0x3ca)
。
该lt$tyopy
函数在执行大量函数调用和其他不可读的代码后,返回字符串'ImageLoader'
,因此是函数的名称。
但是lt.ImageGroupLoader
,例如,如果您进行检查,您会注意到它的名称是由 functionlt$sarzm
以类似但不同的方式生成的。
而且,这些函数旨在仅重构“公共”函数的名称,并且由页面的作者创建。
而且我们仍然在谈论单个站点:其他具有其他混淆算法的站点可能会使用完全不同的方式来重构公共名称。
因此,除非您创建了混淆代码并留下了这样做的方法,否则无法重建被混淆的名称。
推荐阅读
- javascript - 如何从 VueJs 中的 body 获取参数值?
- sql - 将两个不同查询的结果相加
- html - sqPaymentForm 不适用于 IOS 自动填充
- codenameone - 应用停止/恢复后将代号一组件保持在无效位置
- .net - .Net WebApi - CustomValidation 方法调用两次
- c++ - 使用 CURL 上传构建
- git - 我可以从组织中的其他存储库全局访问 Git LFS 文件吗?
- javascript - Javascript如何将字符串转换为uint64类型
- php - CakePhp 3中无法识别模型中的函数
- javascript - 在 odoo 中添加 npm pckage