Skip to content Skip to navigation

NEOQUEST 2014 Quals - Hasta la vista

Category: 

Дано андроид приложение.

Распаковываем, декомпилим. Видим, что проверяется deviceId -> нет смысла запускать, т.к. будет работать только на одном устройстве.

Анализируем исходники, полученные с помощью декомпилятора:

1) Замечаем формирование ссылки и скачиваение файла с адреса вида:

String paramString1 = "http://hastalavistababy.ru/index.php";
String strTime  = Long.valueOf(System.currentTimeMillis() / 1000L).toString();
String paramQueryString = "cmd=1&time=" + strTime + "&command_name=download_image&path=neoquest_2014";

 Таким образом, конечная ссылка для скачивания: paramString1 + "?" + paramQueryString, размер файла: 59,856 байт. Далее по коду видно, что происходит расшифрование скачанного файла, который кладется в бандл приложения.

 

2) Формирование ключа:

String key = md5("352276054393855" + "25001" + md5("neoquest_2014"));

  

3) Расшифрование:

byte[] paramArrayOfByte = key.substring(0, 16).getBytes();
SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramArrayOfByte, "AES");
Cipher localCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
localCipher.init(1, localSecretKeySpec);
localCipher.init(2, localSecretKeySpec);
byte[] arrayOfByte2 = localCipher.doFinal(arrayOfByte1);

 

4) В итоге получается картинка с ключом:

Ключ: 1a0d37c6878202010b617c58c3184bfe