Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

horribleJSHack

import java.nio.charset.StandardCharsets;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class HelloWorld{
    public static void main(String[] args) throws ScriptException {
	    ScriptEngineManager mgr = new ScriptEngineManager();
	    ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
	    jsEngine.eval("function getArray() {"
	            + "var hex_0d = parseInt(\"0D\", 16);" //<CR> character
	            + "var hex_09 = parseInt(\"09\", 16);" //<TAB> character
	            + "var hex_1b = parseInt(\"1B\", 16);" //<ESC> character
	            + "var hex_04 = parseInt(\"04\", 16);" //<EOT> character
	            + "var hex_84 = parseInt(\"84\", 16);" //<> character
	            + "var hex_0a = parseInt(\"0A\", 16);" //<LF> character
	            + "var hex_0e = parseInt(\"0E\", 16);" //<SO> character
	            + "var hex_0b = parseInt(\"0B\", 16);" //<VT> character
	            + "return [hex_0d, hex_09, hex_1b, hex_04, hex_04, hex_84, hex_0a, hex_0e, hex_0b];"
	            + "};");
	    String convertFuncSrc =
	         "function convertArray(type, arr) {"
	       + "  var jArr = java.lang.reflect.Array.newInstance(type, arr.length);"
	       + "  for (var i = 0; i < arr.length; i++) { "
	       + "    jArr[i] = arr[i];"
	       + "  }"
	       + "  return jArr;"
	       + "};";
	    jsEngine.eval(convertFuncSrc);
	    Object result = jsEngine.eval("convertArray(java.lang.Byte.TYPE, getArray());");
	    byte[] javaArray = (byte[])result;
	    for(byte i : javaArray) {
	        byte[] chr = new byte[1];
	        chr[0] = i;
	        System.out.println(String.format("%d : %02X : %s", i, i, new String(chr, StandardCharsets.UTF_8)));
	    }
	}
}

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.