Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
+1
118 / 89 / 8
Регистрация: 24.08.2010
Сообщений: 667
#1

Как достать исходный код из APK? - Программирование Android

27.07.2016, 15:46. Просмотров 1105. Ответов 14
Метки нет (Все метки)

Сразу оговорюсь, пытаюсь "вскрыть" свою программу, дабы увидеть её внутренности глазами взломщика и помешать ему.
Тот же apktool запросто выковыривает ресурсы. Мне это не страшно, все критичные данные я аккуратно зашифровал.
А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец.
Сабж.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
27.07.2016, 18:08     Как достать исходный код из APK? #2
+1, ну а как используете ресурсы? Куда-то распаковываете или всё в оперативной памяти?
+1
118 / 89 / 8
Регистрация: 24.08.2010
Сообщений: 667
27.07.2016, 22:21  [ТС]     Как достать исходный код из APK? #3
Всё в оперативке. там немного.
А картинки и звуки ничего ценного не представляют.
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
27.07.2016, 22:53     Как достать исходный код из APK? #4
+1, если понадобится доберутся, чтобы ты не сделал.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
28.07.2016, 11:34     Как достать исходный код из APK? #5
Цитата Сообщение от DarkVortex Посмотреть сообщение
+1, если понадобится доберутся, чтобы ты не сделал.
Не понимаю, за что тут "спасибо".
Кто вообще не защищается, первый кандидат на то, что у него всё утащат. Чтобы не быть голословным, приведу пример. Зная, что у соседнего отдела есть пароль от sa к БД, я хотел защитить структуру и данные. Однако на известном форуме по БД все тролли были способны лишь на советы типа "как ни защищайся, всё равно всё украдут", ни одного грамотного совета не было. В итоге структуру БД украли. Поменять пароль я тогда не рискнул, т.к. это могло привести к нехорошим последствиям. Вот и результат. Им за это даже ничего не было, хотя их вину я доказал. После уже сделал комплекс мероприятий и поменял пароль от sa.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
28.07.2016, 11:48     Как достать исходный код из APK? #6
Цитата Сообщение от DarkVortex Посмотреть сообщение
если понадобится доберутся, чтобы ты не сделал.
Цитата Сообщение от CoolMind Посмотреть сообщение
Не понимаю, за что тут "спасибо".
не, ну по факту то, так и есть...однако не стоит расценивать данную фразу как призыв никак не защищаться
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
28.07.2016, 12:42     Как достать исходный код из APK? #7
androbro, если фраза стоит сама по себе одна, то по-другому её и не расценить
Vladimir93
36 / 36 / 4
Регистрация: 28.06.2015
Сообщений: 151
28.07.2016, 13:21     Как достать исходный код из APK? #8
Защищать обязательно, максимально. А с такой политикой можно и мыться перестать. А зачем, все равно испачкаешься.
Чем больше стоит защиты, тем дороже взлом, тем сильнее нужно мотивировать, того кто будет ломать. А если защита еще и самопальная, то это еще сложнее, не стандартный алгоритм, нужно еще больше времени, следовательно еще больше денег.

Добавлено через 2 минуты
Цитата Сообщение от +1 Посмотреть сообщение
А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец.
Это кому то должно быть очень нужно. Главное что бы школьники не смогли, они первые хакеры.
Опять же сейчас к примеру в зоне ru, стало намного легче защищать авторское право. Не так конечно просто, как хотелось бы, но тем не менее. Можно блокировать сайты на которых будут распространять, пиратский контент. Более того если взяться за дело, можно привлечь администратора сайта. На самые реальные деньги, при этом не важно сам админ ломал прогу, или не сам, на сайте есть значит он виноват.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
28.07.2016, 13:48     Как достать исходный код из APK? #9
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Защищать обязательно, максимально.
да что вы говорите.
надо взвешивать то, какие потери вы понесете от взлома, и то, какие затраты времени и денег потребует защита. после чего найти золотую середину.
согласитесь, глупо для какой нибудь офлайн аркады городить "максимальную" защиту, что бы какой нить школьник Вася не мог накрутит себе каких либо монеток
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
28.07.2016, 18:04     Как достать исходный код из APK? #10
androbro, здесь я склонен согласиться и с вами, и с Vladimir93 тоже. Вопрос в данном контексте такой: что значит максимально? Это субъективно. Один человек разрабатывал программу год и готов защитить её, потратив месяц. Другой вложил N килорублей и заказал дизайн, потратил тоже год. В защиту он вложится несколько подороже. Для него это будет другой максимум.
Performans
6 / 6 / 3
Регистрация: 29.06.2014
Сообщений: 44
28.07.2016, 20:43     Как достать исходный код из APK? #11
делал для автошколы небольшое приложение в виде увлекательной игры тренажера с вопросами ПДД. Ничего особенного, вопросы и варианты ответов. Решил сделать на Эйр, т.к. нужен был красочный интерфейс со многими эффектами и т.д., да и вообще, нравится мне писать на as3.
Так вот, долго думал как же спрятать ответы от кулхацкеров и конечно тот самый секретный ключ для расшифровки xml файлов. Решил просто запутать код

Чтение файла
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
file = File.applicationStorageDirectory.resolvePath(path);
               var bytes:ByteArray = new ByteArray();
               fileStream = new FileStream();
               fileStream.open(file, FileMode.READ);
               fileStream.readBytes(bytes);
               fileStream.close();
               var key:ByteArray = Hex.toArray(gen() as String);
               var md5:MD5 = new MD5();
               key = md5.hash(key);
               var pad:IPad = new PKCS5;
               var aes:ICipher = Crypto.getCipher("simple-aes-128-cbc", key, pad);
               pad.setBlockSize(aes.getBlockSize());
               aes.decrypt(bytes);
               bytes.position = 0;
               prefsXML = XML(bytes.readObject());
Функция генерирующий нужный ключ
ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
private function gen():String
        {
            var arr:Array = [];
            for (var i:int = 1; i < 5; ++i)
            {
                var b:String = "t1NH0WQ?oStPcyN2qq_CU1RHRw";
                var diff:int = 185;
                arr.push(Global.EMAIL.length * i * Global.APP_NAME.length);
                var alt1:String = "Pfl+8LoVh4Uu186Y";
                var alt2:String = "kohDZ/F0suaAiW9lhWJc";
                var alt3:String = "rz8xzZuKpLB2B";
                var alt4:String = "jX59yie4PzdLylDfQFbn+";
                if (arr.length > 82 && arr.length < 65 && 87 && diff)
                {
                    arr.reverse();
                    for each (var item:String in arr)
                    {
                        var def:int = arr.length + Math.random() * 12;
                        
                        for (var j:int = 0; j < b.length; j++)
                        {
                            def++;
                            def + arr.length * (Math.random() * Global.EMAIL.length);
                            if (def > b.length || def < diff && b.length != 0)
                            {
                                return arr[12] + [13] + [28] + [4] + arr[11];
                            }
                            else if (b.length > arr[12] + [13])
                            {
                                return b;
                            }
                            else
                            {
                                return alt1.concat(alt2 + alt3 + alt4);
                            }
                            
                        }
                    }
                }
                
            }
            
            var arrr:String = "4XFErS37bt+Os6";
            return String(arr[0] + [1] + [2] + [3] + arr[0]);
        
        }
Представьте себя на месте взломщика, какой ключ может выдать это функция?
Вот таким простым способом можно защитить свои данные
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 839
29.07.2016, 09:40     Как достать исходный код из APK? #12
Цитата Сообщение от Performans Посмотреть сообщение
долго думал как же спрятать ответы от кулхацкеров
вы серьезно?
вот он, пример с явной переоценкой интереса взлома своего приложения...вот смысл взламывать приложение если ответы заведомо известны(задачники, как я помню, уже идут с ответами, или тот же самый интернет)...тут если только "хакер" преследует исключительно спортивный интерестак как тренить на взломанном приложении, где к примеру сразу виден ответ, результата никакого не даст.
Однако если защита была сделана в первую очередь для себя, так сказать набить руку, то весьма похвально
Performans
6 / 6 / 3
Регистрация: 29.06.2014
Сообщений: 44
29.07.2016, 11:18     Как достать исходный код из APK? #13
Цитата Сообщение от androbro Посмотреть сообщение
вот он, пример с явной переоценкой интереса взлома своего приложения...вот смысл взламывать приложение если ответы заведомо известны(задачники, как я помню, уже идут с ответами, или тот же самый интернет)...
Имелось в виду защита от плагиата, отличиться уникальностью своего контента с конкурирующими школами. Хотя, если сильно захотеть можно и без взлома заскринить экран и переписывать все ручками)
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
29.07.2016, 11:48     Как достать исходный код из APK? #14
переписывают на себя приложения только для того чтобы туда свою рекламу вставить

можно ли от этого защититься? вряд ли

есть идеи?

все придет к тому что логику надо писать на сервере, а это уже не мобильное программирование по сути
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2016, 07:36     Как достать исходный код из APK?
Еще ссылки по теме:
Как получить apk? Android
Как установить apk на эмулятор? Android
Как в готовый apk внести изменения? Android
Как упаковать весь проект в APK Android
Android Как из готового apk-файла собрать проект?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
30.07.2016, 07:36     Как достать исходный код из APK? #15
Performans,
Есть хороший способ решить вашу проблему, но он тоже, увы, не гарантирует 100% защиту.
Это вообще убрать ответы из приложения. Ответы должны храниться на сервере, на который пользователь будет посылать свой выбор по картинкам ПДД.
Не стоит бояться применять сервер в мобильных приложениях, учитывая распространение мобильного интернета. Да и при грамотном планировании трафик будет не слишком большой.
Yandex
Объявления
30.07.2016, 07:36     Как достать исходный код из APK?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru