补环境

This commit is contained in:
luzhisheng 2022-03-18 18:06:02 +08:00
parent 274a3a5448
commit e5253b6a6b
3 changed files with 59 additions and 19 deletions

View File

@ -1,19 +0,0 @@
## 补环境
1.调试环境
2.在环境框架中直接运行某js文件补修改原js文件
## 自己写一个浏览器
1.BOM 浏览器实现的代码历史记录浏览器版本信息之类的
2.DOM 根据id取元素
3.网络请求 xhr jsonp
jsonp_3213123({ayf:1})
4.跨窗口worker
目的: 运行环境
难点:如何找到缺少的那些环境,如何很好的实现环境代码
伪造:我给你啥,你能正确返回啥可以了

View File

@ -0,0 +1,43 @@
## 补环境
1.调试环境
2.在环境框架中直接运行某js文件补修改原js文件
## 自己写一个浏览器
1.BOM 浏览器实现的代码历史记录浏览器版本信息之类的
2.DOM 根据id取元素
3.网络请求 xhr jsonp
jsonp_3213123({ayf:1})
4.跨窗口worker
目的: 运行环境
难点:如何找到缺少的那些环境,如何很好的实现环境代码
伪造:我给你啥,你能正确返回啥可以了
# vm2 纯净的v8环境
https://github.com/patriksimek/vm2
var fs = require('fs');
const {VM} = require('vm2');
const vm = new VM();
var data = fs.readFileSync('./src/code.js', 'utf8')
vm.run(data)
调试沙盒代码
const {VM, VMScript} = require('vm2');
const fs = require('fs');
// 运行的code代码
const file = `${__dirname}/code.js`;
// 需要补的window环境
const windowfile = `${__dirname}/window.js`;
const vm = new VM();
const script = new VMScript(fs.readFileSync(windowfile)+fs.readFileSync(file), "我正在调试的代码");
vm.run(script);

View File

@ -0,0 +1,16 @@
## 如何更加好的补环境
https://github.com/jsdom/jsdom
jsdom 是许多 web 标准的纯 JavaScript 实现,特别是 WHATWG DOM和HTML标准用于 Node.js。一般来说该项目的目标是模拟足够多的 Web 浏览器子集,以用于测试和抓取真实世界的 Web 应用程序。
## 框架
调试框架要有封装的思想,功能单一,可扩展性强,
js调试框架 监控所有的环境
代理,在自己伪造的环境代理,任意代理,包座代理不会被检测,某些对象不能完美被伪造
利用谷歌开源浏览器,进行修改内核代码
代码如果被检测
tostringnode