首页 > 其他分享 >js 逆向 闭包 查找变量

js 逆向 闭包 查找变量

时间:2024-04-08 18:26:03浏览次数:21  
标签:闭包 逆向 el function js && var loaded src

https://s1.hdslb.com/bfs/static/history-record/app_84bedf69.js   var l = {   install: function (e, t) {     function n() { // 目前断点在了这个函数 要查找修改变量v的逻辑,发现v是属于install这个Closure作用域。然后,v肯定就在install这里边(绿色之间的部分)定义,往下找即可。devtool没法批量折叠大括号,看起来有点麻烦。       var e = void 0,         t = void 0;       for (e = 0,         t = v.length; e < t; ++e)         o(v[e])     }
    function i() {       var e = void 0,         t = void 0;       for (e = 0,         t = m.length; e < t; ++e)         l(m[e])     }
    function o(e) {       e.loading || e.loaded || !(0,         a.checkInView)(e.el, g.preload) || h(e)     }
    function l(e) {       !e.loaded && (0,         a.checkInView)(e.el, g.preload) && (e.handler.call(),         e.loaded = !0)     }
    function u() {       n(),         i()     }
    function f(t, n) {       var i = r(v, n),         s = n.getAttribute("src"),         a = {           el: n,           src: t,           loading: !1,           loaded: !1,           defaultImg: s         };       i !== -1 ? v[i] = a : v.push(a),         e.nextTick(function () {           o(a)         })     }
    function p(t, n) {       var i = r(m, n),         o = {           el: n,           id: t.id,           loaded: !1,           handler: t.handler || function () {}         };       i !== -1 ? m[i].id !== t.id && (m[i] = o,         e.nextTick(function () {           l(o)         })) : (m.push(o),         e.nextTick(function () {           l(o)         }))     }
    function d(e, t) {       var n = "undefined" == typeof e ? "undefined" : (0,         s.default)(e);       "string" === n ? f(e, t) : "object" === n && p(e, t)     }
    function h(e) {       if (!e.loading && !e.loaded) {         e.loading = !0;         var t = new Image;         t.onload = function () {             e.el.src = e.src,               e.loading = !1,               e.loaded = !0           },           t.onerror = function () {             e.loading = !1,               e.loaded = !0,               e.el.src = e.defaultImg           },           t.src = e.src       }     }     var v = [],       m = [],       g = t || {         preload: 0       };     e.directive("lazy", {       bind: function (e) {         var t = e;         d(t, this.el)       },       update: function (e) {         var t = e;         d(t, this.el)       },       unbind: function (e) {         var t = e;         if ("object" === ("undefined" == typeof t ? "undefined" : (0,             s.default)(t))) {           var n = r(m, this.el);           n !== -1 && m.splice(n, 1)         }       }     });     for (var y = (0,         a.throttle)(u, 200, 100), b = 0; b < c.length; ++b)       window.addEventListener(c[b], y)   } };         复制到vscode里折叠,容易看    

标签:闭包,逆向,el,function,js,&&,var,loaded,src
From: https://www.cnblogs.com/hhdom/p/18121869

相关文章

  • 信息泄露漏洞的JS整改方案
     引言......
  • tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图
    文章目录前言一、实现步骤1.获取所需特征点的索引2.使用opencv.js计算俯仰角、水平角和翻滚角cv.solvePnP介绍cv.solvePnP原理运行代码查看效果3.绘制姿态示意直线添加canvas元素计算姿态直线坐标并绘制总结前言在计算机视觉领域,估算脸部姿态是一项具有挑战性......
  • three.js零基础入门超全超细的教程整理(一)
    事情是这样的:有一天我干完活看技术文章发现了three.js诶!这玩应挺有意思盘盘于是第一天找教程上官网初上手第二天找案例渲模型试VR第三天捋文档然后来活了没时间捋了下面是集百家精华教程的整理总结涉及到教程方面有加源作者和地址超详细的教程:http://ww......
  • JS--demo2录入学生信息
    实现学生信息录取。效果图:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><metahttp-equiv=&quo......
  • Node.js安装教程
    1.Node.jsNode.js是什么?我们知道,js通常情况下是基于浏览器运行的,那如果脱离了浏览器,该如何运行js呢?这就需要Node.js了。2.下载与安装下载下载地址:https://nodejs.org/en/download以windows为例,有安装版和免安装版。1号位置是官方推荐的最新版本:https://nodejs.org/dis......
  • JS中时间对象与时间的格式化
    newDate("2024-04-08T00:00:00")//输出MonApr08202400:00:00GMT+0800(中国标准时间)时间是正常的,没有多出来8个小时newDate("2024-04-0800:00:00")//输出MonApr08202400:00:00GMT+0800(中国标准时间)时间是正常的,没有多出来8个小时newDate()//MonAp......
  • NestJS 基础概念
     1.ModuleModule是NestJS的基本组织单位。模块系统基于Node.js的CommonJS模块系统,但提供了更高级别的抽象和组织方式。通过使用模块,你可以将应用程序拆分成多个独立且可复用的部分,每个模块都负责实现特定的功能或业务逻辑。模块可以封装相关的代码、配置和依赖关系,使得......
  • Chrome浏览器前端开发调试时强制更新js、css静态资源文件缓存的方法
    以Chrome浏览器为例,国产浏览器未做全面测试。前端开发静态文件时,浏览器访问会缓存样式、图片、js等,怎么快速更新缓存。以下方法特别适合只想清除某个网页的缓存,而不想清除全部浏览器缓存可以采用以下方法。一、强制刷新同时按住ctrl+f5或ctrl+shift+r进行访问页面强制刷新,一般......
  • 毕业设计jsp 手办周边商城
    摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,手办周边商城当然也不能排除在外。手办周边商城是以实际运用为开发背景,运用软件工程开发方法,采用jsp技术构建的一个管理系统。整个开发过程首先对软件系统进......
  • 毕业设计jspm贝儿米幼儿教育管理系统
    摘要随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。贝儿米幼儿教育管理系统,主要的模块包括查看;管理员;个人中心、用户管理、学生信息管理、班级信息管理、缴费信息管理、幼儿园信息管理、教师信息管理、考勤......