赞
踩
本文章主要分享爬虫的js方面的知识和特别的知识点 文末有惊喜,最近Chat GPT很火,有想体验的小伙伴文末提供一个GPT体验地址。如果想经常使用可以加入我的知识星球 星球链接地址知识星球
关于js中一些很基础的东西不在去详细介绍了,有兴趣的可以去js教学网 去学习了解(后面的补环境也需要用到这个网站),本文讲解一写比较重要和特殊的知识点。
在js中不管是一个实例还是一个原型都存在原型链这个说法(其实就是浏览器中各种对象之间的继承关系,不管是原型还是实例最终都会指向null)
实例访问原型链的方法 实例.__proto__ 访问到第一个原型对象,可以通过不断地.__proto__ 访问原型对象直到最后为null为止。
- 示例 document 访问原型链的过程
- document.__proto__ //HTMLDocument
- document.__proto__.__proto__ //Document
- document.__proto__.__proto__.__proto__ //Node
- document.__proto__.__proto__.__proto__.__proto__ //EventTarget
- document.__proto__.__proto__.__proto__.__proto__.__proto__ // EventTarget 下面的方法 __proto__ 指向为null
原型访问原型链的方法 原型.prototype 访问到第一个原型对象,然后可以通过.__proto__访问原型链。
- //例如Element 原型对象访问原型链的方法 并且能看到该原型链下所包含的方法
- Element.prototype //访问到 第一个原型对象 Node
- Element.prototype.__proto__ //访问到 第二个原型对象 EventTarget
- Element.prototype.__proto__.__proto__ //访问到 第三个个原型对象 Object
- Element.prototype.__proto__.__proto__.__proto__ // 查看Object 下拥有的方法 并且在这看到 他的__proto指向null
- //函数的定义
- 关键词 function 函数名(参数){
- 函数内部处理
- }
-
- (function(){})--匿名方法 可以直接用变量接受
- 自执行方法--在脚本文件一被加载就会执行。
- 定义方式:在匿名方法后面加个()即(function(){})()
arguments 获得函数参数数组
true+"" 返回 true 任何类型和文本类型相加返回的是文本类型 除文本类型以外的任何类型和整数相加返回的是整数类型
浏览器是js逆向中经常用到的工具,笔者在这里建议使用360极速浏览器进行js逆向(360极速浏览器是基于v8引擎开发的和谷歌使用同一款引擎)。
浏览器的布局设置---保留日志和停用缓存一定要勾上
笔者的浏览器布局
js中的断点分为以下几种断点:条件断点、页面元素断点 、dom断点、事件断点(XHR 断点)
常见的反调试:格式化检测、无限debugger、禁止控制台调试、
将扣下来的代码,在node环境中运行,缺啥补啥。
两个原则要么删要么补。
删 --删除的代码没有参与最后的计算
补 --参与了本地计算或者提交到服务器
浏览器的vmp一般是基于栈式虚拟机,找到总栈,对他进行输出能很快的定位到一些很
vmp 基于栈式虚拟机 或 寄存器虚拟机(有栈)
性能更快 可以简化复杂语法
需要找到总栈、op、局部栈
在vmp中不容忽视的关键词:eval、apply、call
还有两个不容忽视的API charCodeAt()、String.fromCharCode()
js逆向无他为手熟尔,多调多练。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。