应用场景:最近搞一个爬PDD的玩意儿,但是人家前端有加密,js里面一大坨加密混淆的代码,怎么整?不管它三七二十八,把js加密代码整理出来,直接用Go调用它的加密生成算法,钥匙有了,接下去,想咋偷,就看你了
- 先创建一个简单的js测试文件:test.js
function add(a,b) {
return a+b
}
- Go调用示例:
package main
import (
"fmt"
"github.com/robertkrimen/otto"
"io/ioutil"
)
/*
调用js脚本
*/
func JsParser(filePath string, functionName string, args ...interface{}) (result string) {
//读入文件
bytes, err := ioutil.ReadFile(filePath)
if err != nil {
panic(err)
}
vm := otto.New()
_, err = vm.Run(string(bytes))
if err != nil {
panic(err)
}
value, err := vm.Call(functionName, nil, args...)
if err != nil {
panic(err)
}
return value.String()
}
func main() {
rt := JsParser("./test.js", "add", 1, 2)
fmt.Println(rt)
}
参考:
https://github.com/robertkrimen/otto
https://github.com/SergioJune/Spider-Crack-JS/tree/master/pinduoduo