java j2v8执行js代码报错

一只会写代码的猴子 2017-06-20 04:13:11
public static void main(String[] args) throws ClientProtocolException, IOException {
String url="http://www.cnvd.org.cn";
CloseableHttpClient client = HttpClients.createDefault();
HttpHost proxy = new HttpHost("192.167.5.13", 808, "http");
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
HttpGet get=new HttpGet(url);
get.setConfig(config);
get.setHeader("Accept", "Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

get.setHeader("Accept-Charset", "GB2312,utf-8;q=0.7,*;q=0.7");

get.setHeader("Accept-Encoding", "gzip, deflate");

get.setHeader("Accept-Language", "zh-cn,zh;q=0.5");

get.setHeader("Connection", "keep-alive");

get.setHeader("Host", "www.cnvd.org.cn");

get.setHeader("referer", "http://www.cnvd.org.cn/");

get.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:6.0.2) Gecko/20100101 Firefox/6.0.2");
CloseableHttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
String html=EntityUtils.toString(entity,"utf-8");
System.out.println(html);
String html1=html.replace("<script>", "").replace("</script>", "").replace("eval(y.replace(/\\b\\w+\\b/g, function(y){return x[f(y,z)-1]}))","y.replace(/\\b\\w+\\b/g, function(y){return x[f(y,z)-1]})");

System.out.println(html1);
V8 runtime = V8.createV8Runtime();
String html2="var x=\"attachEvent@i@__jsl_clearance@for@captcha@dc@Hw@catch@href@while@addEventListener@@onreadystatechange@__phantomas@TxHw@var@20@setTimeout@charAt@@_phantom@2@GMT@challenge@D@false@window@location@cd@orders@replace@Tue@17@else@if@@07@pgM@8@join@@length@DvkZ@try@7@return@l@function@@Array@1497939752@0@Path@1500@32@cookie@e@DOMContentLoaded@Expires@933@document@3@22@Jun\".replace(/@*$/,\"\").split(\"@\"),y=\"g 1h=1i(){a(r.l||r.e){};g t,6='3=1l.20|1m|';g 10=[[-~[]+[~~{}]-(-~[])],[(+!+[])+(+!+[])+(+!+[])+(+!+[])],[((+!+[])<<(+!+[]))+(+!+[])+(+!+[])+(+!+[])],(m+[[], []][(+[])]),(22+[]+[[]][~~!{}]),(19+[]),(~~[]+[]+[]),[(+!+[])+([((+!+[])<<(+!+[]))]+~~[]>>((+!+[])<<(+!+[])))],(((+!+[])+[-~((+!+[])+(+!+[])+(+!+[]))]>>(+!+[]))+[]),[-~[]]];t=1k(10.1c);4(g 2=1m;2<10.1c;2++){t[10[2]]=['p',[!-[]+[]+[]][1m].j(-~!{})+[(+!+[])+(+!+[])+(+!+[])+(+!+[])]+[-~[]]+[((+!+[])<<(+!+[]))+(+!+[])+(+!+[])+(+!+[])]+[+[-~{}, -~{}]+[]+[]][1m].j((+!+[])+(+!+[]))+(19+[])+[{}+[[]+[[]][~~!{}], []][-~{}]][1m].j(-~[1f])+([(+!+[])+(+!+[])]/(+[])+[[]][~~!{}]).j(((+!+[])<<(+!+[]))+(+!+[])+(+!+[])+(+!+[]))+({}+[[], []][(+[])]).j((-~-~{}^-~{}))+[{}+[[]+[[]][~~!{}], []][-~{}]][1m].j(-~~~!{}+22)+({}+[[], []][(+[])]).j((-~-~{}^-~{})),'1d',(m+[[], []][(+[])]),'f',(22+[]+[[]][~~!{}]),[-~[]],[-~~~!{}/(+[])+[]+[[]][~~!{}]][1m].j(-~[(-~[]+[((+!+[])<<(+!+[]))])/[((+!+[])<<(+!+[]))]]),'7%','18'][2]};t=t.1a('');6+=t;i('s.9=s.9.11(/[\\?|&]5-o/,\\'\\')',1o);21.1q=(6+';1t=12, h-24-13 17:23:1p n;1n=/;');};15((1i(){1e{1g !!r.b;}8(1r){1g q;}})()){21.b('1s',1h,q);}14{21.1('d',1h);}\",z=0,f=function(x,y){var a=0,b=0,c=0;x=x.split(\"\");y=y||99;while((a=x.shift())&&(b=a.charCodeAt(0)-77.5))c=(Math.abs(b)<13?(b+48.5):parseInt(a,36))+y*c;return c},g=y.match(/\\b\\w+\\b/g).sort(function(x,y){return f(x)-f(y)}).pop();while(f(g,++z)-x.length){};y.replace(/\\b\\w+\\b/g, function(y){return x[f(y,z)-1]});";

System.out.println(html2);
System.out.println(html1.equals(html2));
String result=runtime.executeStringScript(html1);

//String result=runtime.
System.out.println(result);
runtime.release();
}


拿到页面的js代码处理完直接执行就报错,复制出来赋值给一个String就可以使用,研究了一下午,好想python也不行
...全文
274 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
问题已解决,请求响应回来的js前后有很多空白,之前没有去空白
elasticdump报错: FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 1: node::Abort() [node] 2: 0x8cd49c [node] 3: v8::Utils::ReportOOMFailure(char const*, bool) [node] 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node] 5: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [node] 6: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqTwoByteString, unsigned short>(v8::internal::Handle<v8::internal::String>, int, int) [node] 7: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqTwoByteString, unsigned short>(v8::internal::Handle<v8::internal::String>, int, int) [node] 8: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 9: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 10: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 11: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 12: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 13: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 14: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 15: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 16: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 17: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 18: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::SlowScanJsonString<v8::internal::SeqOneByteString, unsigned char>(v8::internal::Handle<v8::internal::String>, int, int) [node] 19: v8::internal::Handle<v8::internal::String> v8::internal::JsonParser::ScanJsonString() [node] 20: v8::internal::JsonParser::ParseJsonValue() [node] 21: v8::internal::JsonParser::ParseJsonObject() [node] 22: v8::internal::JsonParser::ParseJsonValue() [node] 23: v8::internal::JsonParser::ParseJsonObject() [node] 24: v8::internal::JsonParser::ParseJsonValue() [node] 25: v8::internal::JsonParser::ParseJsonArray() [node] 26: v8::internal::JsonParser::ParseJsonValue() [node] 27: v8::internal::JsonParser::ParseJsonObject() [node] 28: v8::internal::JsonParser::ParseJsonValue() [node] 29: v8::internal::JsonParser::ParseJsonObject() [node] 30: v8::internal::JsonParser::ParseJsonValue() [node] 31: v8::internal::JsonParser::ParseJson() [node] 32: v8::internal::Builtin_JsonParse(int, v8::internal::Object**, v8::internal::Isolate*) [node] 33: 0x384a51e8697d 增加: export NODE_OPTIONS=--max_old_space_size=4096

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧