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

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

Войти
Регистрация
Восстановить пароль
 
+1
122 / 93 / 9
Регистрация: 24.08.2010
Сообщений: 680
#1

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

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

Сразу оговорюсь, пытаюсь "вскрыть" свою программу, дабы увидеть её внутренности глазами взломщика и помешать ему.
Тот же apktool запросто выковыривает ресурсы. Мне это не страшно, все критичные данные я аккуратно зашифровал.
А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец.
Сабж.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2016, 15:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как достать исходный код из APK? (Программирование Android):

Как конвертивровать apk файл если имеется exe, jar и исходный код программы? - Программирование Android
Как конвертивровать apk файл если имеется exe, jar и исходный код программы?

Как java код скомпилировать в apk? - Программирование Android
Здравствуйте , интересует вариант компиляции java кода , под андроид .У меня стоит 3 ide netbeans,eclipse и android studio , как в них...

Исходный код - Программирование Android
Помогите, пожалуйста, извлечь исходный код этого приложения.

Исходный код приложений - Программирование Android
Существуют ли сайты с исходниками приложений под андроид ? все что нашел только вот http://4pda.ru/forum/index.php?showtopic=200537

Исходный код любой 3D игры - Программирование Android
Здравствуйте. Помогите найти исходный код какой-нибудь простой игры типа кубика Рубика. Вобщем, необходимо, чтобы в центре был куб, он...

WebView. Получить исходный код - Программирование Android
В моем приложении есть WebView. Я выполняю манипуляции в нем и мне нужно получить исходный код страницы после манипуляции в переменную. Как...

14
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
27.07.2016, 18:08 #2
+1, ну а как используете ресурсы? Куда-то распаковываете или всё в оперативной памяти?
0
+1
122 / 93 / 9
Регистрация: 24.08.2010
Сообщений: 680
27.07.2016, 22:21  [ТС] #3
Всё в оперативке. там немного.
А картинки и звуки ничего ценного не представляют.
0
DarkVortex
103 / 69 / 18
Регистрация: 07.07.2014
Сообщений: 239
27.07.2016, 22:53 #4
+1, если понадобится доберутся, чтобы ты не сделал.
1
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
28.07.2016, 11:34 #5
Цитата Сообщение от DarkVortex Посмотреть сообщение
+1, если понадобится доберутся, чтобы ты не сделал.
Не понимаю, за что тут "спасибо".
Кто вообще не защищается, первый кандидат на то, что у него всё утащат. Чтобы не быть голословным, приведу пример. Зная, что у соседнего отдела есть пароль от sa к БД, я хотел защитить структуру и данные. Однако на известном форуме по БД все тролли были способны лишь на советы типа "как ни защищайся, всё равно всё украдут", ни одного грамотного совета не было. В итоге структуру БД украли. Поменять пароль я тогда не рискнул, т.к. это могло привести к нехорошим последствиям. Вот и результат. Им за это даже ничего не было, хотя их вину я доказал. После уже сделал комплекс мероприятий и поменял пароль от sa.
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 846
28.07.2016, 11:48 #6
Цитата Сообщение от DarkVortex Посмотреть сообщение
если понадобится доберутся, чтобы ты не сделал.
Цитата Сообщение от CoolMind Посмотреть сообщение
Не понимаю, за что тут "спасибо".
не, ну по факту то, так и есть...однако не стоит расценивать данную фразу как призыв никак не защищаться
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
28.07.2016, 12:42 #7
androbro, если фраза стоит сама по себе одна, то по-другому её и не расценить
0
Vladimir93
36 / 36 / 4
Регистрация: 28.06.2015
Сообщений: 159
28.07.2016, 13:21 #8
Защищать обязательно, максимально. А с такой политикой можно и мыться перестать. А зачем, все равно испачкаешься.
Чем больше стоит защиты, тем дороже взлом, тем сильнее нужно мотивировать, того кто будет ломать. А если защита еще и самопальная, то это еще сложнее, не стандартный алгоритм, нужно еще больше времени, следовательно еще больше денег.

Добавлено через 2 минуты
Цитата Сообщение от +1 Посмотреть сообщение
А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец.
Это кому то должно быть очень нужно. Главное что бы школьники не смогли, они первые хакеры.
Опять же сейчас к примеру в зоне ru, стало намного легче защищать авторское право. Не так конечно просто, как хотелось бы, но тем не менее. Можно блокировать сайты на которых будут распространять, пиратский контент. Более того если взяться за дело, можно привлечь администратора сайта. На самые реальные деньги, при этом не важно сам админ ломал прогу, или не сам, на сайте есть значит он виноват.
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 846
28.07.2016, 13:48 #9
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Защищать обязательно, максимально.
да что вы говорите.
надо взвешивать то, какие потери вы понесете от взлома, и то, какие затраты времени и денег потребует защита. после чего найти золотую середину.
согласитесь, глупо для какой нибудь офлайн аркады городить "максимальную" защиту, что бы какой нить школьник Вася не мог накрутит себе каких либо монеток
0
CoolMind
419 / 402 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
28.07.2016, 18:04 #10
androbro, здесь я склонен согласиться и с вами, и с Vladimir93 тоже. Вопрос в данном контексте такой: что значит максимально? Это субъективно. Один человек разрабатывал программу год и готов защитить её, потратив месяц. Другой вложил N килорублей и заказал дизайн, потратил тоже год. В защиту он вложится несколько подороже. Для него это будет другой максимум.
0
Performans
6 / 6 / 3
Регистрация: 29.06.2014
Сообщений: 44
28.07.2016, 20:43 #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]);
        
        }
Представьте себя на месте взломщика, какой ключ может выдать это функция?
Вот таким простым способом можно защитить свои данные
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 846
29.07.2016, 09:40 #12
Цитата Сообщение от Performans Посмотреть сообщение
долго думал как же спрятать ответы от кулхацкеров
вы серьезно?
вот он, пример с явной переоценкой интереса взлома своего приложения...вот смысл взламывать приложение если ответы заведомо известны(задачники, как я помню, уже идут с ответами, или тот же самый интернет)...тут если только "хакер" преследует исключительно спортивный интерестак как тренить на взломанном приложении, где к примеру сразу виден ответ, результата никакого не даст.
Однако если защита была сделана в первую очередь для себя, так сказать набить руку, то весьма похвально
0
Performans
6 / 6 / 3
Регистрация: 29.06.2014
Сообщений: 44
29.07.2016, 11:18 #13
Цитата Сообщение от androbro Посмотреть сообщение
вот он, пример с явной переоценкой интереса взлома своего приложения...вот смысл взламывать приложение если ответы заведомо известны(задачники, как я помню, уже идут с ответами, или тот же самый интернет)...
Имелось в виду защита от плагиата, отличиться уникальностью своего контента с конкурирующими школами. Хотя, если сильно захотеть можно и без взлома заскринить экран и переписывать все ручками)
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
29.07.2016, 11:48 #14
переписывают на себя приложения только для того чтобы туда свою рекламу вставить

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

есть идеи?

все придет к тому что логику надо писать на сервере, а это уже не мобильное программирование по сути
0
Alexvp
108 / 72 / 8
Регистрация: 03.08.2014
Сообщений: 348
30.07.2016, 07:36 #15
Performans,
Есть хороший способ решить вашу проблему, но он тоже, увы, не гарантирует 100% защиту.
Это вообще убрать ответы из приложения. Ответы должны храниться на сервере, на который пользователь будет посылать свой выбор по картинкам ПДД.
Не стоит бояться применять сервер в мобильных приложениях, учитывая распространение мобильного интернета. Да и при грамотном планировании трафик будет не слишком большой.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.07.2016, 07:36
Привет! Вот еще темы с ответами:

Исходный код Android Studio - Программирование Android
Добрый день, имеется исходный код написанный в Android studio Очень срочно нужно этот код вывести в рабочую программу, кто может помочь?

Как получить apk? - Программирование Android
Я пишу на C++/Qt. хочу получить apk, что бы на мобильный себе скинуть, друзьям, там, дать или ещё, что с ним сделать. Как собрать проект...

Как установить apk на эмулятор? - Программирование Android
Собственно вот...

Как в готовый apk внести изменения? - Программирование Android
Сразу скажу что я не программист. Встала такая задача- поставить сыну Вк приложение чтоб он не мог просматривать и качать всякую фигню....


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
30.07.2016, 07:36
Ответ Создать тему
Опции темы

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