首页 > 解决方案 > 浏览器如何解码这些混淆的类名?

问题描述

这个 javascript 文件似乎被混淆了,类名不是人类可读的,看起来像lt$nkqmr. 但是,当浏览器运行 javascript 时,例如herehere,浏览器显然会解码类名,因为控制台可以自动完成类名,例如lt.ImageLoader. 浏览器如何解码这些混淆的类名,我该怎么做?

标签: javascriptobfuscationdeobfuscation

解决方案


TL; DR:不,通常这是不可能的。


如果您检查链接页面的来源,您可以看到该lt.ImageLoader函数定义如下:

lt[lt$tyopy(0x3ca)] = function() { /* function body */ }

如您所见,它的名称是评估的结果lt$tyopy(0x3ca)

lt$tyopy函数在执行大量函数调用和其他不可读的代码后,返回字符串'ImageLoader',因此是函数的名称。

但是lt.ImageGroupLoader,例如,如果您进行检查,您会注意到它的名称是由 functionlt$sarzm以类似但不同的方式生成的。

而且,这些函数旨在仅重构“公共”函数的名称,并且由页面的作者创建。

而且我们仍然在谈论单个站点:其他具有其他混淆算法的站点可能会使用完全不同的方式来重构公共名称。


因此,除非您创建了混淆代码并留下了这样做的方法,否则无法重建被混淆的名称。


推荐阅读