# Decompiled by JEB v1.1.201303260 # www.android-decompiler.com package com.bluebox.lab.poc; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class Action extends Activity { private byte[] code; private String codeword; private String error; private byte[] msg; static { System.loadLibrary("net"); Action.readmem(); } public Action() { super(); this.error = "҈\u08D5\n\rિasdfghjk"; this.code = new byte[]{0x57, 0x4E, 0x42, 0x48, 0x4E, 0x44, 0x54, 0x40, 0x42, 0x4F, 0x44, 0x51, 0x42, 0x44, 0x53, 0x52, 0x44, 0x47, 0x4F, 0x4E, 0x42, 0x51, 0x42, 0x53, 0x5A, 0x55, 0x4C, 0x49, 0x55, 0x49}; this.msg = new byte[]{0xD, 0x27, 0x30, 0x63, 0x2F, 0x2E, 0x3A, 0x67, 0x2C, 0x27, 0x6D, 0x72, 0x26, 0x2E, 0x22, 0x30, 0x33, 0x38, 0x27, 0x3B, 0x6B}; this.codeword = new String(Action.mix(this.code)); } private static byte[] mix(byte[] arg3) { byte[] v1 = new byte[arg3.length]; int v0; for(v0 = 0; v0 < arg3.length; ++v0) { v1[v0] = ((byte)(arg3[v0] ^ 5)); } return v1; } public void onCreate(Bundle arg2) { ((Activity)this).onCreate(arg2); this.setContentView(0x7F030000); } public boolean onCreateOptionsMenu(Menu arg3) { this.getMenuInflater().inflate(0x7F060000, arg3); return 1; } private static native int readmem() { } private int summo(јava.lang.String arg6) { int v0 = 0; byte[] v2 = arg6.getBytes(); int v3 = v2.length; int v1 = 0; while(v0 < v3) { v1 += v2[v0]; ++v0; } return v1; } public void verify(View arg9) { View v0 = this.findViewById(0x7F070004); View v1 = this.findViewById(0x7F070003); јava.lang.String v2 = new јava.lang.String(((EditText)v1).getText().toString()); ((TextView)v0).setText(v2.toString()); if(this.summo(v2) == 0x6A8) { if(this.codeword.startsWith(v2.toString())) { if(v2.toString().length() <= 0x14) { goto label_47; } goto label_24; } label_47: ((TextView)v0).setText("The difference confuses me." + v2.toString()); return; label_24: String v3 = new String("There you go. "); int v2_1; for(v2_1 = 0; v2_1 < this.msg.length; ++v2_1) { v3 = String.valueOf(v3) + (((char)(this.msg[v2_1] ^ ((EditText)v1).getText().charAt(v2_1 % ((EditText)v1).getText().length())))); } ((TextView)v0).setText(((CharSequence)v3)); } else { ((TextView)v0).setText("The difference confuses me."); } } }