最简单的方式来解开"解包"在Java程序中混淆了javascript

时间:2015-06-10 01:08:39

标签: java javascript rhino

让我们假设您的网页只包含脚本标记内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上。

感谢。

0 个答案:

没有答案