mirror of
https://github.com/luzhisheng/js_reverse.git
synced 2025-04-19 09:24:46 +08:00
补环境
This commit is contained in:
parent
274a3a5448
commit
e5253b6a6b
@ -1,19 +0,0 @@
|
|||||||
## 补环境
|
|
||||||
|
|
||||||
1.调试环境
|
|
||||||
|
|
||||||
2.在环境框架中直接运行某js文件,补修改原js文件
|
|
||||||
|
|
||||||
## 自己写一个浏览器
|
|
||||||
|
|
||||||
1.BOM 浏览器实现的代码历史记录浏览器版本信息之类的
|
|
||||||
2.DOM 根据id取元素
|
|
||||||
3.网络请求 xhr jsonp
|
|
||||||
jsonp_3213123({ayf:1})
|
|
||||||
4.跨窗口worker
|
|
||||||
|
|
||||||
目的: 运行环境
|
|
||||||
|
|
||||||
难点:如何找到缺少的那些环境,如何很好的实现环境代码
|
|
||||||
|
|
||||||
伪造:我给你啥,你能正确返回啥可以了
|
|
43
zy-补环境框架/补环境1.md
Normal file
43
zy-补环境框架/补环境1.md
Normal 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);
|
||||||
|
|
16
zy-补环境框架/补环境2.md
Normal file
16
zy-补环境框架/补环境2.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
## 如何更加好的补环境
|
||||||
|
|
||||||
|
https://github.com/jsdom/jsdom
|
||||||
|
|
||||||
|
jsdom 是许多 web 标准的纯 JavaScript 实现,特别是 WHATWG DOM和HTML标准,用于 Node.js。一般来说,该项目的目标是模拟足够多的 Web 浏览器子集,以用于测试和抓取真实世界的 Web 应用程序。
|
||||||
|
|
||||||
|
|
||||||
|
## 框架
|
||||||
|
|
||||||
|
调试框架要有封装的思想,功能单一,可扩展性强,
|
||||||
|
js调试框架 监控所有的环境
|
||||||
|
代理,在自己伪造的环境代理,任意代理,包座代理不会被检测,某些对象不能完美被伪造
|
||||||
|
利用谷歌开源浏览器,进行修改内核代码
|
||||||
|
|
||||||
|
代码如果被检测
|
||||||
|
tostring,node
|
Loading…
x
Reference in New Issue
Block a user