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

发布了50 篇原创文章 · 获赞 29 · 访问量 5731
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术工厂 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览