让我们假设您的网页只包含脚本标记内eval(...)函数形式的混淆Javascript。
Dean Edwards'在线解包器(link)正确解压缩此Javascript。
我想编写一个简单的Java类来加载初始网页(我使用HttpClient),从HTML中提取eval(...)函数,并解压缩它,以获得去混淆的Javascript
我已经尝试过Rhino,这是我的代码:
int start = html.indexOf("<script>eval") + "<script>".length();
int end = html.indexOf("</script>");
javascript = html.substring(start, end);
evaled = eval(javascript);
NativeFunction fEvaled = (NativeFunction) evaled;
String encodedSource = fEvaled.getEncodedSource();
log.info("encodedSource: " + encodedSource);
和&#34; eval&#34; java函数调用:
private Object eval(String javascript){
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
Object eval = null;
try {
eval = engine.eval(javascript);
} catch (ScriptException e) {
// TODO Auto-generated catch block
log.error("Exception evaluating javascript " + javascript, e);
}
return eval;
}
但是,这不起作用,返回的代码远不是正确的代码(由Edwards&#39; unpacker返回)。我检查过Rhino变量,发现没有用。
我做错了吗?
我可以接受任何建议,例如,如果有一个可以运行的命令行工具,我可以进行系统调用。
我在Ubuntu上。
感谢。