前言
在日常逆向中,一些前端的加密代码用java复现出来比较难,所以经常需要调用js文件来实现加密操作,接下来将介绍两种常用调用js的思路,第一种适用于普通js文件,第二种则适用于比较新的V8引擎。在实现的过程中,也会展示可能遇到的问题以及解决办法,废话不多话,正文开始!
方法一
本方法用的是jdk自带的ScriptEngine
来实现,大概流程是:加载引擎->绑定环境->预编译js文件->调用文件内方法,具体实现代码:
读取完js后,就可以使用js引擎来直接用invokeFunction
方法来调用文件内函数,代码如下
在上边代码invoke.invokeFunction("Enc", data, key)
中,Enc
为js文件内的函数名,data
和key
是需要方法需要传递的参数,如果方法只有一个参数,则传入一个,如果是多个参数,则按顺序排列在后边即可。
上边代码在执行普通js时比较方便使用,但是如果是比较新的开发版本,有些语法会不支持,像lambda表达式等,如下图:
方法二
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。