无法在 window.webpackJsonp 对象内的匿名函数上注入代码

Posted

技术标签:

【中文标题】无法在 window.webpackJsonp 对象内的匿名函数上注入代码【英文标题】:Can't inject code on anonymous function inside a window.webpackJsonp object 【发布时间】:2020-01-24 12:02:43 【问题描述】:

好吧,我正在尝试在缩小的 javascript 中执行一个函数,以重现上下文菜单函数的行为。

我使用带有事件侦听器断点的 Chrome 开发工具,正如 Rory 在 this comment 上建议我的那样。而且我发现上下文菜单事件的回调来自这个路径:

window.webpackJsonp[1][1][5754]

在索引器之后使用这个匿名函数:

5754: function(t, n, e) 
            "use strict";
// ...

在this question,有人建议使用此代码:

eval(doSomething.toString().replace(/\s*$/, ' return id; $&');

我尝试注入此代码:

eval(window.webpackJsonp[1][1][5754].toString().replace(/\s*$/, ' console.log(t); console.log(n); console.log(e); $&'));

我使用console.log 知道哪些对象与此参数相关。

但是提示这个错误:

未捕获的语法错误:函数语句需要函数名。

所以我不知道从哪里继续......

【问题讨论】:

【参考方案1】:

eval(...) 更改为eval('(' + ... + ')') 对我有用。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval 的定义说 eval 采用表达式,例如 function () 或语句,例如 function foo () ,所以你已经被 eval 实现错误所困扰。

【讨论】:

以上是关于无法在 window.webpackJsonp 对象内的匿名函数上注入代码的主要内容,如果未能解决你的问题,请参考以下文章

“无法保存对SAM权限所做的更改”对这样的限制怎么突破

无法对非静态方法 getAssets() 进行静态引用 - 无法在片段中播放音频

无法在 nodeJS 中对用户进行身份验证:TypeError:无法使用“in”运算符在 fs 中搜索“用户名”

Pyomo 无法在抽象 Set 构建之前对其进行迭代

无法对推送通知自定义按钮执行操作

无法对 ArrayList 执行操作 [重复]