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

问题描述 投票:0回答:1

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

正如Rory在this comment上建议的那样,我将Chrome开发人员工具与事件监听器断点一起使用。我发现上下文菜单事件的回调来自此路径:

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知道哪些对象与此参数相关。

但是提示此错误:

未捕获的SyntaxError:函数语句需要函数名称。

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

javascript code-injection anonymous-function
1个回答
0
投票

eval(...)更改为eval(Object(...))对我有用。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval处的定义表示eval同时使用了function () {}等表达式和例如function foo () {}的语句,因此您被eval实现错误所困扰。

© www.soinside.com 2019 - 2024. All rights reserved.