Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/75: Рейтинг темы: голосов - 75, средняя оценка - 4.88
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028

Как достать исходный код из APK?

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

Студворк — интернет-сервис помощи студентам
Сразу оговорюсь, пытаюсь "вскрыть" свою программу, дабы увидеть её внутренности глазами взломщика и помешать ему.
Тот же apktool запросто выковыривает ресурсы. Мне это не страшно, все критичные данные я аккуратно зашифровал.
А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец.
Сабж.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2016, 15:46
Ответы с готовыми решениями:

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

Как достать исходный код?
Имеется программа, написанная на Delphi. Нужен исходный код программы. Возможно ли это? Если да - то как сделать?!

достать исходный код из .exe
я прекрасно понимаю, что не первая с этой проблемой, но просто ужас как срочно нужен код! декомпиляторы не спасают(( они дают мне...

14
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
27.07.2016, 18:08
+1, ну а как используете ресурсы? Куда-то распаковываете или всё в оперативной памяти?
0
+1
345 / 178 / 53
Регистрация: 24.08.2010
Сообщений: 1,028
27.07.2016, 22:21  [ТС]
Всё в оперативке. там немного.
А картинки и звуки ничего ценного не представляют.
0
103 / 69 / 19
Регистрация: 07.07.2014
Сообщений: 240
27.07.2016, 22:53
+1, если понадобится доберутся, чтобы ты не сделал.
1
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
28.07.2016, 11:34
Цитата Сообщение от DarkVortex Посмотреть сообщение
+1, если понадобится доберутся, чтобы ты не сделал.
Не понимаю, за что тут "спасибо".
Кто вообще не защищается, первый кандидат на то, что у него всё утащат. Чтобы не быть голословным, приведу пример. Зная, что у соседнего отдела есть пароль от sa к БД, я хотел защитить структуру и данные. Однако на известном форуме по БД все тролли были способны лишь на советы типа "как ни защищайся, всё равно всё украдут", ни одного грамотного совета не было. В итоге структуру БД украли. Поменять пароль я тогда не рискнул, т.к. это могло привести к нехорошим последствиям. Вот и результат. Им за это даже ничего не было, хотя их вину я доказал. После уже сделал комплекс мероприятий и поменял пароль от sa.
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
28.07.2016, 11:48
Цитата Сообщение от DarkVortex Посмотреть сообщение
если понадобится доберутся, чтобы ты не сделал.
Цитата Сообщение от CoolMind Посмотреть сообщение
Не понимаю, за что тут "спасибо".
не, ну по факту то, так и есть...однако не стоит расценивать данную фразу как призыв никак не защищаться
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
28.07.2016, 12:42
androbro, если фраза стоит сама по себе одна, то по-другому её и не расценить
0
145 / 134 / 22
Регистрация: 28.06.2015
Сообщений: 674
28.07.2016, 13:21
Защищать обязательно, максимально. А с такой политикой можно и мыться перестать. А зачем, все равно испачкаешься.
Чем больше стоит защиты, тем дороже взлом, тем сильнее нужно мотивировать, того кто будет ломать. А если защита еще и самопальная, то это еще сложнее, не стандартный алгоритм, нужно еще больше времени, следовательно еще больше денег.

Добавлено через 2 минуты
Цитата Сообщение от +1 Посмотреть сообщение
А вот если кто-либо доберется до алгоритма дешифрования, то это будет конец.
Это кому то должно быть очень нужно. Главное что бы школьники не смогли, они первые хакеры.
Опять же сейчас к примеру в зоне ru, стало намного легче защищать авторское право. Не так конечно просто, как хотелось бы, но тем не менее. Можно блокировать сайты на которых будут распространять, пиратский контент. Более того если взяться за дело, можно привлечь администратора сайта. На самые реальные деньги, при этом не важно сам админ ломал прогу, или не сам, на сайте есть значит он виноват.
0
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
28.07.2016, 13:48
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Защищать обязательно, максимально.
да что вы говорите.
надо взвешивать то, какие потери вы понесете от взлома, и то, какие затраты времени и денег потребует защита. после чего найти золотую середину.
согласитесь, глупо для какой нибудь офлайн аркады городить "максимальную" защиту, что бы какой нить школьник Вася не мог накрутит себе каких либо монеток
0
426 / 406 / 68
Регистрация: 06.10.2012
Сообщений: 1,748
28.07.2016, 18:04
androbro, здесь я склонен согласиться и с вами, и с Vladimir93 тоже. Вопрос в данном контексте такой: что значит максимально? Это субъективно. Один человек разрабатывал программу год и готов защитить её, потратив месяц. Другой вложил N килорублей и заказал дизайн, потратил тоже год. В защиту он вложится несколько подороже. Для него это будет другой максимум.
0
319 / 13 / 7
Регистрация: 29.06.2014
Сообщений: 65
28.07.2016, 20:43
делал для автошколы небольшое приложение в виде увлекательной игры тренажера с вопросами ПДД. Ничего особенного, вопросы и варианты ответов. Решил сделать на Эйр, т.к. нужен был красочный интерфейс со многими эффектами и т.д., да и вообще, нравится мне писать на 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
400 / 343 / 85
Регистрация: 17.10.2014
Сообщений: 1,015
29.07.2016, 09:40
Цитата Сообщение от Performans Посмотреть сообщение
долго думал как же спрятать ответы от кулхацкеров
вы серьезно?
вот он, пример с явной переоценкой интереса взлома своего приложения...вот смысл взламывать приложение если ответы заведомо известны(задачники, как я помню, уже идут с ответами, или тот же самый интернет)...тут если только "хакер" преследует исключительно спортивный интерестак как тренить на взломанном приложении, где к примеру сразу виден ответ, результата никакого не даст.
Однако если защита была сделана в первую очередь для себя, так сказать набить руку, то весьма похвально
0
319 / 13 / 7
Регистрация: 29.06.2014
Сообщений: 65
29.07.2016, 11:18
Цитата Сообщение от androbro Посмотреть сообщение
вот он, пример с явной переоценкой интереса взлома своего приложения...вот смысл взламывать приложение если ответы заведомо известны(задачники, как я помню, уже идут с ответами, или тот же самый интернет)...
Имелось в виду защита от плагиата, отличиться уникальностью своего контента с конкурирующими школами. Хотя, если сильно захотеть можно и без взлома заскринить экран и переписывать все ручками)
0
 Аватар для Valakin
435 / 101 / 15
Регистрация: 21.02.2015
Сообщений: 845
29.07.2016, 11:48
переписывают на себя приложения только для того чтобы туда свою рекламу вставить

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

есть идеи?

все придет к тому что логику надо писать на сервере, а это уже не мобильное программирование по сути
0
100 / 79 / 9
Регистрация: 03.08.2014
Сообщений: 447
30.07.2016, 07:36
Performans,
Есть хороший способ решить вашу проблему, но он тоже, увы, не гарантирует 100% защиту.
Это вообще убрать ответы из приложения. Ответы должны храниться на сервере, на который пользователь будет посылать свой выбор по картинкам ПДД.
Не стоит бояться применять сервер в мобильных приложениях, учитывая распространение мобильного интернета. Да и при грамотном планировании трафик будет не слишком большой.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.07.2016, 07:36
Помогаю со студенческими работами здесь

Достать исходный код application из Oracle Application Server
Господа, возникла проблема. Понадобилось вытянуть исходники одного приложения из Oracle Application Server. С java не знаком, а нужно...

Как узнать исходный код метода из dll через код C#?
Как узнать исходный код метода из dll через код C#? помогите, пожалуйста!! :sorry:

Как получить исходный код *.exe или отредактировать его исполняемый код?
Собственно возможно ли декомпилить его так, чтобы можно было потом обратно скомпилировать? Или хотя-бы отредактировать код, только не...

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

Как вставить исходный код ?
Извиняюсь за глупый вопрос (ибо я начинающий), как вставить исходный код программы в Delphi ? Если тупо скопировать из блокнота и...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru