04.03.2014 13:36, by Dor1s
Event:
Дано андроид приложение.
Распаковываем, декомпилим. Видим, что проверяется 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
Mysneakers | Air Jordan 1 Low White/Black-Midnight Navy For Sale – Fitforhealth