· 7 years ago · Apr 19, 2018, 01:00 PM
1package derp.derp;
2
3import android.os.Bundle;
4import android.support.v7.app.AppCompatActivity;
5import android.util.Base64;
6import android.util.Log;
7import java.io.UnsupportedEncodingException;
8import java.security.InvalidKeyException;
9import java.security.NoSuchAlgorithmException;
10import java.security.spec.InvalidKeySpecException;
11import javax.crypto.BadPaddingException;
12import javax.crypto.Cipher;
13import javax.crypto.IllegalBlockSizeException;
14import javax.crypto.NoSuchPaddingException;
15import javax.crypto.SecretKey;
16import javax.crypto.SecretKeyFactory;
17import javax.crypto.spec.DESKeySpec;
18
19public class MainActivity extends AppCompatActivity {
20 protected String obvious_flag = "Overdrive2018: You find some flag, congratulations!";
21 protected String part_1 = "T3ZlcmRyaXZlMjAxOA==";
22 protected String part_2 = "vfIrelpbby";
23 protected String part_3 = "5GEHDq0Xajujbs+9J6oMOw==";
24
25 protected String crypto_1(String coolCrypto, int shift) {
26 String s = "";
27 int len = coolCrypto.length();
28 for (int x = 0; x < len; x++) {
29 if (((char) (coolCrypto.charAt(x) + shift)) > 'z') {
30 s = s + ((char) (coolCrypto.charAt(x) - (26 - shift)));
31 } else {
32 s = s + ((char) (coolCrypto.charAt(x) + shift));
33 }
34 }
35 return s;
36 }
37
38 protected String crypto_2(String coolCrypto) {
39 byte[] valueDecoded = new byte[0];
40 try {
41 valueDecoded = Base64.decode(coolCrypto.getBytes("UTF-8"), 0);
42 } catch (UnsupportedEncodingException e) {
43 e.printStackTrace();
44 }
45 return new String(valueDecoded);
46 }
47
48 protected String crypto_3(String coolCrypto) {
49 byte[] valueDecoded = new byte[0];
50 try {
51 SecretKey key = SecretKeyFactory.getInstance("DES").generateSecret(new DESKeySpec("VerySecureKey11".getBytes()));
52 Cipher cipher = Cipher.getInstance("DES");
53 cipher.init(1, key);
54 valueDecoded = cipher.doFinal(crypto_2(coolCrypto).getBytes());
55 } catch (NoSuchAlgorithmException e) {
56 e.printStackTrace();
57 return "1";
58 } catch (InvalidKeyException e2) {
59 e2.printStackTrace();
60 return "2";
61 } catch (NoSuchPaddingException e3) {
62 e3.printStackTrace();
63 return "3";
64 } catch (BadPaddingException e4) {
65 e4.printStackTrace();
66 return "4";
67 } catch (IllegalBlockSizeException e5) {
68 e5.printStackTrace();
69 return "6";
70 } catch (InvalidKeySpecException e6) {
71 e6.printStackTrace();
72 }
73 return new String(valueDecoded);
74 }
75
76 protected void onCreate(Bundle savedInstanceState) {
77 super.onCreate(savedInstanceState);
78 Log.d("DERP", "No easy solution for you :0");
79 String flag = crypto_1(this.part_2, 13) + crypto_2(this.part_1) + crypto_3(this.part_3);
80 }
81}