从devtools控制台的匿名Javascript函数中读取变量。

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

我试图从一个小型化的网站脚本中读取一个变量,这个脚本是由一个巨大的匿名函数组成的,用于反向工程。根据我的理解,通常情况下,不可能访问这个闭包中的变量。

(function() {
  var af = function (a) { ... }
  var ge = function() {
      var obj = {};
      obj.foo = 'bar';
      af(obj);
  }
})();

然而,我可以通过在该作用域内的一行上放置一个断点来做到这一点。有什么方法可以在开发者控制台中的Javascript中或以其他方式在不修改脚本的情况下重现这种情况吗?

我已经尝试过将 Function.prototype.apply 脚本重新定义了 globals,如 console 这使得这个问题相当烦人。

javascript debugging google-chrome-devtools reverse-engineering firefox-developer-tools
1个回答
0
投票

找到了一个实现这个问题的方法,由我提供的 wOxxOm.

Object.defineProperty(Object.prototype, "foo", {
    set: function(val) {
        console.log("Intercepted:", val);
        this._foo = val;
    },
    get: function() {
        return this._foo;
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.