Skip to content

Instantly share code, notes, and snippets.

@Surdi Surdi/App.java
Created Mar 26, 2018

Embed
What would you like to do?
App.java decompiled with Proycon after encrypting 'my_prefs.xml'
package com.securepreferences.sample;
import android.app.*;
import o.*;
import android.content.*;
public class App extends Application
{
protected static App instance;
private static int \u02bb;
private static int \u02bd;
private static int \u02ca;
private static int \u02cb;
private static short[] \u02ce;
private static byte[] \u02cf;
private static int \u0971;
private \u1d2e mSecurePrefs;
static {
App.\u02bb = 0;
App.\u02bd = 1;
App.\u02cb = 822016385;
App.\u0971 = 81;
App.\u02ca = -1999280546;
App.\u02cf = new byte[] { -1, -11, 74, -69, 13, 1, -13, 2, 17, -26, 12, 0 };
}
public App() {
App.instance = this;
}
public static App get() {
final int n = App.\u02bb + 79;
App.\u02bd = n % 128;
if (n % 2 == 0) {}
final App instance = App.instance;
final int n2 = App.\u02bb + 33;
App.\u02bd = n2 % 128;
int n3;
if (n2 % 2 == 0) {
n3 = 59;
}
else {
n3 = 24;
}
switch (n3) {
default: {
return instance;
}
case 24: {
return instance;
}
case 59: {
final int length = null.length;
return instance;
}
}
}
private static String \u02ce(final byte p0, final short p1, final int p2, final int p3, final int p4) {
//
// This method could not be decompiled.
//
// Original Bytecode:
//
// 0: goto 231
// 3: getstatic com/securepreferences/sample/App.\u02cf:[B
// 6: getstatic com/securepreferences/sample/App.\u02cb:I
// 9: iload_3
// 10: iadd
// 11: baload
// 12: getstatic com/securepreferences/sample/App.\u0971:I
// 15: iadd
// 16: i2b
// 17: istore 4
// 19: goto 101
// 22: iconst_1
// 23: istore 7
// 25: goto 571
// 28: bipush 30
// 30: istore 8
// 32: goto 473
// 35: getstatic com/securepreferences/sample/App.\u02bb:I
// 38: bipush 41
// 40: iadd
// 41: istore 4
// 43: iload 4
// 45: sipush 128
// 48: irem
// 49: putstatic com/securepreferences/sample/App.\u02bd:I
// 52: iload 4
// 54: iconst_2
// 55: irem
// 56: ifne 62
// 59: goto 640
// 62: goto 554
// 65: new Ljava/lang/StringBuilder;
// 68: dup
// 69: invokespecial java/lang/StringBuilder.<init>:()V
// 72: astore 9
// 74: getstatic com/securepreferences/sample/App.\u0971:I
// 77: iload 4
// 79: iadd
// 80: istore 4
// 82: iload 4
// 84: istore 6
// 86: iload 4
// 88: iconst_m1
// 89: if_icmpne 95
// 92: goto 646
// 95: goto 246
// 98: goto 527
// 101: iload 4
// 103: ifle 109
// 106: goto 253
// 109: goto 467
// 112: getstatic com/securepreferences/sample/App.\u02bb:I
// 115: bipush 67
// 117: iadd
// 118: istore 4
// 120: iload 4
// 122: sipush 128
// 125: irem
// 126: putstatic com/securepreferences/sample/App.\u02bd:I
// 129: iload 4
// 131: iconst_2
// 132: irem
// 133: ifne 139
// 136: goto 341
// 139: goto 3
// 142: getstatic com/securepreferences/sample/App.\u02cf:[B
// 145: ifnull 151
// 148: goto 112
// 151: goto 322
// 154: iconst_0
// 155: istore 6
// 157: goto 372
// 160: goto 22
// 163: iconst_0
// 164: istore 7
// 166: goto 35
// 169: getstatic com/securepreferences/sample/App.\u02bd:I
// 172: bipush 17
// 174: iadd
// 175: istore 6
// 177: iload 6
// 179: sipush 128
// 182: irem
// 183: putstatic com/securepreferences/sample/App.\u02bb:I
// 186: iload 6
// 188: iconst_2
// 189: irem
// 190: ifeq 196
// 193: goto 601
// 196: goto 511
// 199: iconst_1
// 200: istore 6
// 202: goto 372
// 205: iload 6
// 207: tableswitch {
// 0: 517
// 1: 538
// default: 228
// }
// 228: goto 517
// 231: goto 65
// 234: iload_3
// 235: iload 4
// 237: if_icmpge 243
// 240: goto 656
// 243: goto 517
// 246: bipush 51
// 248: istore 4
// 250: goto 259
// 253: iconst_1
// 254: istore 6
// 256: goto 205
// 259: iload 4
// 261: lookupswitch {
// 51: 163
// 85: 611
// default: 288
// }
// 288: goto 163
// 291: getstatic com/securepreferences/sample/App.\u02ce:[S
// 294: astore 10
// 296: iload_2
// 297: iconst_1
// 298: isub
// 299: istore 6
// 301: aload 10
// 303: iload_2
// 304: saload
// 305: iload_1
// 306: iadd
// 307: i2s
// 308: iload_0
// 309: ixor
// 310: iload 7
// 312: iadd
// 313: i2c
// 314: istore 5
// 316: iload 6
// 318: istore_2
// 319: goto 417
// 322: getstatic com/securepreferences/sample/App.\u02ce:[S
// 325: getstatic com/securepreferences/sample/App.\u02cb:I
// 328: iload_3
// 329: iadd
// 330: saload
// 331: getstatic com/securepreferences/sample/App.\u0971:I
// 334: iadd
// 335: i2s
// 336: istore 4
// 338: goto 101
// 341: getstatic com/securepreferences/sample/App.\u02cf:[B
// 344: astore 10
// 346: aload 10
// 348: getstatic com/securepreferences/sample/App.\u02cb:I
// 351: iload_3
// 352: ixor
// 353: baload
// 354: istore 4
// 356: getstatic com/securepreferences/sample/App.\u0971:I
// 359: istore 6
// 361: iload 4
// 363: iload 6
// 365: isub
// 366: i2b
// 367: istore 4
// 369: goto 101
// 372: iload_3
// 373: iload 4
// 375: iadd
// 376: iconst_2
// 377: isub
// 378: iload 8
// 380: iadd
// 381: iload 6
// 383: iadd
// 384: istore 6
// 386: getstatic com/securepreferences/sample/App.\u02ca:I
// 389: iload_2
// 390: iadd
// 391: i2c
// 392: istore 5
// 394: aload 9
// 396: iload 5
// 398: invokevirtual java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
// 401: pop
// 402: iconst_1
// 403: istore_3
// 404: iload 6
// 406: istore_2
// 407: iload 5
// 409: istore 7
// 411: goto 234
// 414: goto 527
// 417: aload 9
// 419: iload 5
// 421: invokevirtual java/lang/StringBuilder.append:(C)Ljava/lang/StringBuilder;
// 424: pop
// 425: iload_3
// 426: iconst_1
// 427: iadd
// 428: istore_3
// 429: iload 5
// 431: istore 7
// 433: goto 234
// 436: iload 4
// 438: lookupswitch {
// 5: 98
// 45: 414
// default: 464
// }
// 464: goto 414
// 467: iconst_0
// 468: istore 6
// 470: goto 205
// 473: iload 6
// 475: istore 4
// 477: iload 8
// 479: lookupswitch {
// 30: 101
// 63: 142
// default: 504
// }
// 504: iload 6
// 506: istore 4
// 508: goto 101
// 511: goto 199
// 514: goto 527
// 517: aload 9
// 519: invokevirtual java/lang/StringBuilder.toString:()Ljava/lang/String;
// 522: astore 9
// 524: aload 9
// 526: areturn
// 527: iload 7
// 529: ifeq 535
// 532: goto 604
// 535: goto 28
// 538: getstatic com/securepreferences/sample/App.\u02cb:I
// 541: istore 8
// 543: iload 7
// 545: ifeq 551
// 548: goto 169
// 551: goto 154
// 554: bipush 45
// 556: istore 4
// 558: goto 436
// 561: astore 9
// 563: aload 9
// 565: athrow
// 566: astore 9
// 568: aload 9
// 570: athrow
// 571: getstatic com/securepreferences/sample/App.\u02bb:I
// 574: bipush 83
// 576: iadd
// 577: istore 4
// 579: iload 4
// 581: sipush 128
// 584: irem
// 585: putstatic com/securepreferences/sample/App.\u02bd:I
// 588: iload 4
// 590: iconst_2
// 591: irem
// 592: ifne 598
// 595: goto 514
// 598: goto 653
// 601: goto 199
// 604: bipush 63
// 606: istore 8
// 608: goto 473
// 611: getstatic com/securepreferences/sample/App.\u02bd:I
// 614: iconst_1
// 615: iadd
// 616: istore 4
// 618: iload 4
// 620: sipush 128
// 623: irem
// 624: putstatic com/securepreferences/sample/App.\u02bb:I
// 627: iload 4
// 629: iconst_2
// 630: irem
// 631: ifeq 637
// 634: goto 160
// 637: goto 22
// 640: iconst_5
// 641: istore 4
// 643: goto 436
// 646: bipush 85
// 648: istore 4
// 650: goto 259
// 653: goto 527
// 656: getstatic com/securepreferences/sample/App.\u02cf:[B
// 659: astore 10
// 661: aload 10
// 663: ifnull 669
// 666: goto 672
// 669: goto 291
// 672: getstatic com/securepreferences/sample/App.\u02cf:[B
// 675: astore 10
// 677: iload_2
// 678: iconst_1
// 679: isub
// 680: istore 6
// 682: aload 10
// 684: iload_2
// 685: baload
// 686: iload_1
// 687: iadd
// 688: i2b
// 689: iload_0
// 690: ixor
// 691: iload 7
// 693: iadd
// 694: i2c
// 695: istore 5
// 697: iload 6
// 699: istore_2
// 700: goto 417
// Exceptions:
// Try Handler
// Start End Start End Type
// ----- ----- ----- ----- ---------------------
// 341 346 561 566 Ljava/lang/Exception;
// 346 356 561 566 Ljava/lang/Exception;
// 346 356 566 571 Ljava/lang/Exception;
// 356 361 561 566 Ljava/lang/Exception;
// 517 524 561 566 Ljava/lang/Exception;
// 656 661 561 566 Ljava/lang/Exception;
//
// The error that occurred was:
//
// java.lang.IllegalStateException: Expression is linked from several locations: Label_0372:
// at com.strobel.decompiler.ast.Error.expressionLinkedFromMultipleLocations(Error.java:27)
// at com.strobel.decompiler.ast.AstOptimizer.mergeDisparateObjectInitializations(AstOptimizer.java:2592)
// at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:235)
// at com.strobel.decompiler.ast.AstOptimizer.optimize(AstOptimizer.java:42)
// at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:214)
// at com.strobel.decompiler.languages.java.ast.AstMethodBodyBuilder.createMethodBody(AstMethodBodyBuilder.java:99)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethodBody(AstBuilder.java:757)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createMethod(AstBuilder.java:655)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.addTypeMembers(AstBuilder.java:532)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeCore(AstBuilder.java:499)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createTypeNoCache(AstBuilder.java:141)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.createType(AstBuilder.java:130)
// at com.strobel.decompiler.languages.java.ast.AstBuilder.addType(AstBuilder.java:105)
// at com.strobel.decompiler.languages.java.JavaLanguage.buildAst(JavaLanguage.java:71)
// at com.strobel.decompiler.languages.java.JavaLanguage.decompileType(JavaLanguage.java:59)
// at the.bytecode.club.bytecodeviewer.decompilers.ProcyonDecompiler.decompileClassNode(ProcyonDecompiler.java:120)
// at the.bytecode.club.bytecodeviewer.gui.ClassViewer$15.doShit(ClassViewer.java:1130)
// at the.bytecode.club.bytecodeviewer.gui.PaneUpdaterThread.run(PaneUpdaterThread.java:16)
//
throw new IllegalStateException("An error occurred while decompiling this method.");
}
public SharedPreferences getSharedPreferences() {
final int n = App.\u02bd + 65;
App.\u02bb = n % 128;
Label_0045: {
if (n % 2 != 0) {
final int n2 = 1;
break Label_0045;
}
final int n2 = 0;
break Label_0045;
Label_0074_Outer:
while (true) {
while (true) {
Label_0085: {
try {
final int n3 = App.\u02bd + 17;
App.\u02bb = n3 % 128;
final \u1d2e mSecurePrefs;
if (n3 % 2 != 0) {
return (SharedPreferences)mSecurePrefs;
}
return (SharedPreferences)mSecurePrefs;
// switch([Lcom.strobel.decompiler.ast.Label;@357a085d, n2)
Label_0068:
while (true) {
Label_0032: {
break Label_0032;
Label_0042: {
break Label_0074;
}
break Label_0085;
}
continue;
}
}
// iftrue(Label_0042:, this.mSecurePrefs != null)
catch (Exception ex) {}
final \u1d2e mSecurePrefs = this.mSecurePrefs;
continue Label_0074_Outer;
}
this.mSecurePrefs = new \u1d2e((Context)this, (String)null, \u02ce((byte)0, (short)0, 1999280655, -822016385, -69).intern());
\u1d2e.\u02cf(true);
continue;
}
Label_0153: {
final \u1d2e mSecurePrefs2 = this.mSecurePrefs;
}
throw new NullPointerException();
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.