Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / Получить хеш-код приложения / 21 сообщений из 21, страница 1 из 1
04.02.2015, 09:08
    #38871006
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Требуется получить уникальную строку, описывающую само приложение.
Т.е. чтобы при каждом изменении кода приложения эта строка изменялась.
Можно ли получить что-то типа хеш-кода приложения?
...
Рейтинг: 0 / 0
04.02.2015, 09:25
    #38871029
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Встречный вопрос: а где будет храниться этот хеш? Если в апк, то не будет-ли это считаться изменением приложения?

Вообще, странное требование, т.к. приложение далеко не только код. Зачастую ресурсов в нем куда больше.
Если это элемент защиты, то надежнее вынести часть логики в интернет, чем проверять изменения локально (что обходится часто автоматически).
...
Рейтинг: 0 / 0
04.02.2015, 09:45
    #38871055
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
wadman,
Да, я имел в виду всё приложение, вместе с ресурсами. От первого байта до последнего.
Хочется получить что-то типа md5(_my_application_).
Хэш не будет храниться в приложении.
И да, я знаю, что два одинаковых хэша не гарантируют, что объекты одинаковые.
...
Рейтинг: 0 / 0
04.02.2015, 10:28
    #38871102
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
...
Рейтинг: 0 / 0
04.02.2015, 11:43
    #38871172
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
wadman, я видел такой код. Пробовал так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
    public String getSignature() {

        String result = "";

        Signature[] sigs = new Signature[0];
        try {
            sigs = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES).signatures;
        } catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        if(sigs.length > 0)
            result = sigs[0].toCharsString();

        return result;
    }
...
Рейтинг: 0 / 0
04.02.2015, 11:44
    #38871176
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747, в результате получаю строку в 1570 символов. Но при изменении кода приложения и последующей компиляции получаю ту же строку.
...
Рейтинг: 0 / 0
04.02.2015, 11:55
    #38871192
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Дак тебе подпись нужна или хеш?
...
Рейтинг: 0 / 0
04.02.2015, 13:01
    #38871297
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
wadman,
что-нибудь, что однозначно указывало но то, что приложение было изменено.
...
Рейтинг: 0 / 0
04.02.2015, 13:47
    #38871367
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747wadman,
что-нибудь, что однозначно указывало но то, что приложение было изменено.
По ссылке ходил, вникал?
...
Рейтинг: 0 / 0
04.02.2015, 13:52
    #38871376
Микола Питерский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747, по моему в андроиде ты не сможешь прочитать APK из самого APK, поэтому про контрольную сумму забудь, кроме того ты же в коде эту сумму и будешь проверять - так что найти и "обезвредить" это не проблема.
Я вот перенес часть важного кода в с++, где также и проверяю "валидность".
...
Рейтинг: 0 / 0
04.02.2015, 14:01
    #38871395
Микола Питерский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747, чтобы написать приложение под андроид надо иметь хорошую подготовку, а чтобы сломать его достаточно 8 классов средней школы. Поэтому достаточно той защиты, которую предлагает гугл - сделай лучше автообновление приложения - сломает кто-то его и выложит в инет, его скачают пользуются бесплатно - потом оно обновится на платное - тебе дополнительно только пользователи добавятся.
...
Рейтинг: 0 / 0
04.02.2015, 14:03
    #38871399
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
wadman, пробовал оба варианта. Возвращает одни и те же значения независимо от изменения приложения
...
Рейтинг: 0 / 0
04.02.2015, 14:21
    #38871427
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747Возвращает одни и те же значения независимо от изменения приложения
Значит там подпись из файла с ключем...
...
Рейтинг: 0 / 0
05.02.2015, 10:39
    #38871974
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Микола ПитерскийSlon747, по моему в андроиде ты не сможешь прочитать APK из самого APK, поэтому про контрольную сумму забудь, кроме того ты же в коде эту сумму и будешь проверять - так что найти и "обезвредить" это не проблема.
Я вот перенес часть важного кода в с++, где также и проверяю "валидность".

конечно нет, так как он распаковывается.
...
Рейтинг: 0 / 0
06.02.2015, 13:21
    #38873310
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Всем спасибо.
Но скажите, как такое может быть?
Есть код, возвращающий дату компиляции. У одного из пользователей, скачавших демо-версию программы (пользователь мне не знаком), эта ф-я вернула дату 2008 года.
Вот я и думаю, может ли такое быть без изменения кода приложения?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    public static String getDateCompilation() {

        String date = "";

        try {
            ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), 0);
            ZipFile zf = new ZipFile(ai.sourceDir);
            ZipEntry ze = zf.getEntry("classes.dex");
            long time = ze.getTime();
            SimpleDateFormat SQLiteDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            date = new StringBuilder(SQLiteDateFormat.format(time)).toString();
            zf.close();
        } catch (Exception e) {
        }

        return date;
    }
...
Рейтинг: 0 / 0
06.02.2015, 13:34
    #38873331
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747эта ф-я вернула дату 2008 года.
Каким путем это было выяснено?
...
Рейтинг: 0 / 0
06.02.2015, 14:02
    #38873363
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
wadman, с помощью передачи статистики на HTTP-сервер
...
Рейтинг: 0 / 0
06.02.2015, 15:31
    #38873487
Микола Питерский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747, апк при установке распаковывается, некоторые zip архиваторы при распаковке любят устанавливать дату-время файла равную времени на устройстве.
...
Рейтинг: 0 / 0
06.02.2015, 15:32
    #38873489
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747Вот я и думаю, может ли такое быть без изменения кода приложения?
А в смарте нельзя время поменять? :-) Другое дело, что гугл плей и его сервисы начнут глючить при большой разнице в дате/времени между смартом и сервером.
...
Рейтинг: 0 / 0
06.02.2015, 17:37
    #38873610
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Микола Питерский , Так это же дата компиляции. Разве она может измениться?
Вот есть apk? скачанный с сайта на смартфон. Т.к. он был скачал, то дата модификации у него 05.01.2015.
Устанавливаю и запускаю программу, ф-я возвращает 29.01.2015
wadman , а при чем тут время смартфона? Речь идет о дате компиляции.
...
Рейтинг: 0 / 0
06.02.2015, 17:39
    #38873614
Slon747
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получить хеш-код приложения
Slon747Т.к. он был скачал, то дата модификации у него 05.01.2015.
Устанавливаю и запускаю программу, ф-я возвращает 29.01.2015
Простите, читать надо так:
Т.к. он был скачал, то дата модификации у него 05.02.2015.
Устанавливаю и запускаю программу, ф-я возвращает 29.01.2015
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / Получить хеш-код приложения / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]