Go调用Javascript

应用场景:最近搞一个爬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

你可能感兴趣的:(Go语言)