关于如何利用eval hook添加sourceURL调试eval代码
比如现在有一个代码```js
eval(`
function add(a,b){
return a + b
}
console.log(add(1,2))
`)
```
关于如何调试可能就束手无测了
这个时候可以对eval进行hook
添加一个sourceURL
就会在source里生成一个js文件片段
然后打上断点刷新即可
我们加一个hook
```js
const oldEval=window.eval
window.eval=function(str){
return oldEval.call(this,str+'//# sourceURL=test.js')
}
eval(`
function add(a,b){
return a + b
}
console.log(add(1,2))
`)
```
可以发现多了一个test.js的代码片段
进行下断点后刷新即可正常断下

# 结语
撒花~ 本帖最后由 steven026 于 2023-1-12 21:55 编辑
!(data/attachment/forum/202301/12/215311nl22kt24v500v5g9.png)
 steven026 发表于 2023-1-12 21:54
!(data/attachment/forum/202301/12/215311nl22kt24v500v5g9.png)


> > 这种eval方式主要用于源码使用大量的eval进行构建
如果使用debugger难以做精准化的注入
而且调试在多文件 ...
!(data/attachment/forum/202301/13/090213c1aaw173t5ct1535.png)
那就直接在开头加debugger 然后手动打断点😘
页:
[1]