Есть ли способ получить исходный код из файла APK?

avatar
Frank Bozzo
29 августа 2010 в 03:40
1266575
31
1368

Жесткий диск на моем ноутбуке только что сломался, и я потерял весь исходный код приложения, над которым я работал последние два месяца. Все, что у меня есть, - это APK-файл, который хранится в моем электронном письме с того момента, когда я отправил его другу.

Есть ли способ извлечь мой исходный код из этого APK-файла?

Источник
edwin
10 февраля 2014 в 06:44
34

FYI Здесь есть онлайн-проверка декомпилятора

Meher
31 мая 2014 в 07:08
0

приложение для извлечения apk play.google.com/store/apps/details?id=com.ext.ui&hl=en

Faizan
10 января 2015 в 20:15
15

Означает ли это, что мы можем получить исходный код приложений стоимостью в миллион долларов, таких как Whatsapp или Facebook? Это все с открытым исходным кодом?

Vishwajit Palankar
9 июня 2015 в 08:58
4

@Faizan ты слышал о Proguard ??

dtech
12 февраля 2016 в 13:34
0

@SwiftArchitect - он не удален, он все еще здесь для справки. В чем проблема с его закрытием?

SwiftArchitect
12 февраля 2016 в 15:04
2

Формулировка вопроса действительно содержит нерелевантные лакомые кусочки жизненных историй и, как таковые, может быть истолкована как рекомендовать инструмент . Однако ответ потенциально мог быть javac -decompile, что тогда соответствовало бы рекомендациям SO. Мне кажется, что ответы не по теме , а не вопрос.

Ranjith Kumar
11 марта 2016 в 11:58
0

Попробуйте онлайн-декомпиляторы .. для получения дополнительной информации - coderhelper.com/a/27981520/3879847

anders
17 августа 2016 в 10:31
2

в этой статье они объясняют, как они реконструируют Pokemon Go

ishandutta2007
20 сентября 2017 в 08:20
0

Возможный дубликат Можно ли декомпилировать файл Android .apk?

htafoya
21 сентября 2021 в 15:32
0

имейте в виду, что использование онлайн-декомпиляторов может быть скомпрометировано.

Ответы (31)

avatar
Prankul Garg
20 января 2021 в 20:17
1666

Простой способ: используйте онлайн-инструмент https://www.decompiler.com/, загрузите apk и получите исходный код.


Порядок расшифровки файлов .apk, пошаговый метод:

Шаг 1:

  1. Создайте новую папку и скопируйте файл .apk, который хотите декодировать.

  2. Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть чертежи, но не файлы xml и java, так что продолжайте.

Шаг 2:

  1. Теперь извлеките этот файл .zip в ту же папку (или НОВУЮ ПАПКУ).

  2. Загрузите dex2jar и извлеките его в ту же папку (или НОВУЮ ПАПКУ).

  3. Переместите файл classes.dex в папку dex2jar.

  4. Теперь откройте командную строку и перейдите в эту папку (или НОВУЮ ПАПКУ). Затем напишите d2j-dex2jar classes.dex (для терминала Mac или ubuntu напишите ./d2j-dex2jar.sh classes.dex) и нажмите Enter. Теперь у вас есть файл classes.dex.dex2jar в той же папке.

  5. Загрузите декомпилятор java, дважды щелкните jd-gui, щелкните открытый файл и откройте файл classes.dex.dex2jar из этой папки: теперь вы получаете файлы классов.

  6. Сохраните все эти файлы классов (в jd-gui щелкните File -> Save All Sources) по имени src. На этом этапе вы получаете исходный код java, но файлы .xml все еще не читаются, поэтому продолжайте.

Шаг 3:

Теперь откройте еще одну новую папку

  1. Вставьте файл .apk, который вы хотите декодировать

  2. Загрузите последнюю версию apktool И окна установки apktool (оба могут быть загружены по той же ссылке) и поместите их в ту же папку

  3. Открыть командное окно

  4. Теперь запустите команду типа apktool if framework-res.apk (если у вас ее нет , получите ее здесь) и следующую команду

  5. apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)

теперь у вас есть папка с файлами в этой папке, и вы можете легко читать xml-файлы apk.

Шаг 4:

Это не какой-то шаг, просто скопируйте содержимое обеих папок (в данном случае обеих новых папок) в одну

и наслаждайтесь исходным кодом ...

Amit Thaper
19 июля 2011 в 09:42
2

Большое спасибо, но у меня возникла проблема после выполнения 3-го шага, все файлы приходят в формате smali, как я могу его прочитать.

user1025050
30 января 2012 в 07:00
26

@prankulgarg, в пункте 5 шага 3 я получаю следующую ошибку: Невозможно получить доступ к jarfile E: \ apktojava \ testt \\ apktool.jar

kamal_tech_view
6 марта 2012 в 06:05
2

получил проблему: «Возникла ошибка в приложении jd-gui.exe. Приложение будет закрыто. Приносим извинения за неудобства». при сохранении всего исходного кода java ..

Android
13 марта 2012 в 13:02
4

Я выполнил эти шаги, но имя файла java - d c b .... возможно настоящее имя файла java ...?

Hasmukh
15 марта 2012 в 06:43
7

привет, я попробовал этот шаг, но я не получаю файл classes.dex.dex2jar. ты можешь мне помочь, пожалуйста?

Salman von Abbas
23 июля 2012 в 14:48
4

Итак, где взять файл framework-res.apk .. Я не могу найти надежную копию: |

Sumit
18 августа 2012 в 11:36
2

Второй файл java.decompiler.free.fr/?q=jdgui недоступен по этой ссылке .. что мне делать?

Yog Guru
31 августа 2012 в 10:31
1

Как это сделать в Ubuntu, я не понял, у меня возникла проблема, может ли кто-нибудь помочь?

Sir
23 сентября 2012 в 03:24
1

@prankulgarg где мы находим "framework-res.apk"? ? Гугл ничего не придумывает ??

Anil Kocabiyik
3 февраля 2013 в 23:36
5

dex2jar не распознается как внутренняя или внешняя команда. Как я могу это решить?

Juned
4 февраля 2013 в 14:08
2

@ user1451549, если вы используете Linux, используйте ./dex2jar

Vnge
27 февраля 2013 в 05:33
2

У меня "Внутренняя ошибка" для основного класса ... есть предложения?

elsa
22 марта 2013 в 06:50
2

во время прохождения второго шага я получил dex2jar не распознается я использую окна .. любая идея .. ??

Umesh
12 апреля 2013 в 11:21
58

Вместо записи dex2jar classes.dex в cmd попробуйте d2j-dex2jar classes.dex . Поскольку dex2jar classes.dex этот cmd устарел.

Shraddha Shravagi
15 апреля 2013 в 11:55
0

Я не могу извлечь файл .aidl и интерфейсы, включенные в проект? Есть ли другой способ для этого?

Shirish Herwade
11 сентября 2013 в 09:42
5

в моем случае это просто бесполезно. Также пробовал все предложения в комментариях. Зря потратил кучу времени. Я получаю ошибки «./dex2jar: нет такого файла или каталога» и «d2j-dex2jar: команда не найдена».

Jacob Tabak
23 февраля 2014 в 23:42
4

Если вы видите такие имена классов, как «a», «b», «c», «d», вы пытаетесь реконструировать чужое приложение ProGuarded. Удачи с этим.

yashhy
2 марта 2014 в 15:50
2

Для шага 3 пункта 5 ошибка : невозможно получить доступ к jarfile Я нашел этот coderhelper.com/a/15336703/1778834

Alston
18 июня 2014 в 07:12
0

Я не могу скачать файл framework-res.apk на 4shared.com. Требуется надоедливый менеджер загрузок.

sandeepmaaram
28 июля 2014 в 09:03
0

Извлеките dex2jar-0.0.9.8.zip и скопируйте classes.dex, в котором используется команда ./d2j-dex2jar.sh classes.dex вместо dex2jar classes.dex, потому что этот dex2jar classes.dex устарел.

atulkhatri
31 июля 2014 в 13:50
25

Для тех, кто не может найти framework-res.apk. Загрузите его с здесь

Ajay Takur
18 декабря 2014 в 22:48
0

На шаге 2 после того, как src сгенерирован, когда я пытаюсь скомпилировать большинство исходных файлов Java, отображается ошибка времени компиляции «не может быть разрешена для типа».

Asad kamran
4 января 2015 в 13:04
0

Ошибка команды шага 2, из документации (code.google.com/p/dex2jar/wiki/ModifyApkWithDexTool) я успешно запустил это: # d2j-dex2jar.sh -f -o test_apk-debug_dex2jar.jar test debug.apk

user3148594
6 января 2015 в 06:22
1

в моем случае проблема на шаге 4 dex2jar: файл или папка не найдены. Разрешение: 1. введите bash в командной строке 2. откроется оболочка bash 3. перейдите в папку в dex2jar и запустите cmd: bash d2j-dex2jar.sh classes.dex, и файл jar будет сгенерирован

Jaky71
7 января 2015 в 23:44
1

Для 5-го шага 3-го шага: apktoolJARfile загрузите здесь файл jar. Поскольку в командной строке говорится: «Не удалось получить доступ к файлу jar C: \ ....» Этот файл jar находится по ссылке. Остальные шаги такие же.

Daniel Dut
3 февраля 2015 в 11:02
3

не может восстановить файлы XML, получаю эту ошибку при запуске; apktool if framework-res.apk: исключение в потоке «main» brut.androlib.AndrolibException: java.io.FileNotFound Исключение: framework-res.apk (система не может найти указанный файл) в brut.androlib.res.AndrolibResources. installFramework (AndrolibResource s.java:406) в brut.androlib.Androlib.installFramework (Androlib.java:365) в brut.apktool.Main.cmdInstallFramework (Main.java:185) в brut.apktool.Main.main (Main. java: 61) ... [усечено]

Narendra Singh
6 мая 2015 в 12:52
1

Эта ссылка dex2jar кажется неполной ... Она не содержит dex2jar.sh

offset
10 мая 2015 в 08:28
0

@DroidWormNarendra вы нашли решение? Я тоже не могу этого найти.

offset
10 мая 2015 в 09:00
2

@DroidWormNarendra Может быть, это вам поможет: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip

inquisitive
19 мая 2015 в 13:28
0

Я просто хочу добавить один класс после этого ... как мне снова создать apk без использования Eclipse или другой IDE.

Moddl
22 июня 2015 в 18:50
2

Для людей на Mac, если вы получаете отказ в разрешении при запуске d2j-dex2jar.sh, поместите sudo bash перед ним, а внутри файла в последней строке также добавьте sudo bash впереди

CoDe
1 июля 2015 в 12:35
4

.d2j-dex2jar.sh недоступен в каталоге извлечения ..! То же самое, что я пробовал с dex2jar , но то же самое, исполняемого файла там нет. предложите мне, если что-то мне здесь не хватает

Sanjeev Sangral
4 августа 2015 в 10:56
0

есть ли способ управлять кодом на самом деле я не понимаю, как управлять и делать правильный проект, у меня есть файлы java и xml

Andrew Rukin
25 августа 2015 в 14:51
1

Привет! Могу также добавить, что есть современная альтернатива этому маршруту APKTool-> dex2jar-> JD-GUI! Просто попробуйте открытый APK и декомпилятор DEX под названием Jadx: sourceforge.net/projects/jadx/files Он также имеет онлайн-версию здесь: javadecompilers.com/apk

codebased
15 сентября 2015 в 01:25
5

убедитесь, что у вас достаточно разрешений для sh с терминала. Таким образом, если вы получаете сообщение об ошибке «доступ запрещен» при выполнении sh, используйте следующее: chmod + x d2j-dex2jar.sh chmod + x d2j_invoke.sh, а затем запустите ./d2j-dex2jar.sh classes.dex

Reaz Murshed
20 октября 2015 в 04:19
13

Тем, кто не нашел d2j-dex2jar.sh, скачайте dex2jar отсюда: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip

codebased
24 ноября 2015 в 12:34
0

После запуска ./d2j-dex2jar.sh classes.dex я получил следующее: -bash: ./d2j-dex2jar.sh: Permission denied Решение: sudo chmod + x d2j-dex2jar.sh

Devendra Singh
23 декабря 2015 в 18:41
0

после всех этих шагов вы можете получить закодированные java-коды, пакеты и т. д. (на уровне сложности pro). и ваши усилия будут в духе. если у apk есть безопасность как progaurd.

siriuseteor77
29 сентября 2016 в 10:36
16

Для людей, застрявших на шаге 2: 4 скачайте эту версию, и она решит проблему: sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download это сработало для меня. @delive

ywu
15 февраля 2017 в 19:57
0

Вот последнее место для получения d2j-d2x2jar.sh в файле dex-tools * .zip: github.com/pxb1988/dex2jar/releases

d4c0d312
18 марта 2017 в 22:59
0

Если вы получаете ошибку «неизвестная команда» в Windows, вам необходимо запустить cmd.exe от имени администратора.

Zac
2 июня 2017 в 03:41
0

Для будущих читателей стоит отметить, что веб-сайт, предложенный в ответе, дал точно такой же результат, как и остальная часть ответа - так что пл. не тратьте время на попытки обоих. Также стоит отметить, что код полон случайных значений, таких как «findViewById (16908290)» и «class C07461» - и поэтому в основном непригоден для использования. Есть ли способ получить исходный код в точности так, как он был закодирован из этих случайных значений? Спасибо.

Lealo
26 июля 2017 в 22:50
0

Можно ли полностью создать XML из любого файла apk? Содержит все те же функции?

toster-cx
3 октября 2017 в 21:40
0

JD-GUI сейчас немного устарел. Попробуйте некоторые инструменты командной строки, такие как CFR или Krakatau, для более новых версий java.

Reza Hamzehei
13 октября 2017 в 06:43
0

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

KH_AJU
13 ноября 2017 в 17:01
0

Пользователи Ubuntu: переместите файлы apktool и apktool.jar в папку / usr / local / bin. Откройте путь к терминалу, указывающий на тип расположения папки apk apktool d <your-app-name.apk>

Sharad Kale
17 ноября 2017 в 07:17
0

Я декомпилировал apk несколькими способами, но всегда получаю только папку com.android.tools, мой пакет исходного кода отсутствует. как решить такую ​​проблему?

ransh
28 ноября 2017 в 13:22
0

Я пробовал все методы, но даже с простым helloworld, хотя он декомпилировал его в java. Тем не менее, попытка открыть проект в студии Android и скомпилировать его обратно в apk не удается по многим причинам (файлы дублирования и т. Д.). Есть ли какой-либо метод, который создает java, который можно скомпилировать обратно в apk?

Tushar Gogna
28 июня 2018 в 13:39
0

Я получаю это: C:\Windows>apktool if framework-res.apk S: WARNING: Could not write to (C:\Users\kbs\AppData\Local\apktool\framework), u sing C:\Users\kbs\AppData\Local\Temp\ instead... S: Please be aware this is a volatile directory and frameworks could go missing, please utilize --frame-path if the default storage directory is unavailable I: Framework installed to: C:\Users\kbs\AppData\Local\Temp\1.apk

Liggliluff
21 октября 2018 в 08:45
0

Я получил java.nio.file.NoSuchFileException: classes.dex, но я поместил classes2.dex в ту же папку, что и d2j-dex2jar, и запустил CMD из этой папки.

MindRoasterMir
10 апреля 2019 в 14:18
0

ВНИМАНИЕ: не удалось записать в (C: \ Users \ <имя-пользователя> \ AppData \ Local \ apktool \ framework), используя вместо этого C: \ Users \ <имя-пользователя> \ AppData \ Local \ Temp \ ... S : Имейте в виду, что это изменчивый каталог, и фреймворки могут исчезнуть, используйте --frame-path, если каталог хранилища по умолчанию недоступен -

MindRoasterMir
10 апреля 2019 в 14:19
0

apktool, если framework-res.apk --frame-path c: \ get-xml \

rminaj
24 июля 2019 в 06:40
0

Шаг 3 сделал слово «java» в расширении файлов во втором модуле моего приложения smali. Даже сама папка java стала smali. Как это исправить, не переименовывая их по очереди?

Kousalya
28 февраля 2020 в 12:30
0

Я пробовал ./d2j-dex2jar.sh classes.dex , но получил Permission denied Я использую Linux

Sampgun
5 апреля 2020 в 12:11
0

Вопрос: что делать, если у меня есть classes.dex, classes2.dex и classes3.dex? Я все три декомпилирую?

Palash Agrawal
24 апреля 2020 в 12:02
0

Я получаю сообщение «Система не может найти указанный путь» при запуске cmd - apktool, если framework-res.apk

rkachach
28 апреля 2020 в 13:11
0

Для тех, у кого возникает ошибка неподдерживаемой версии при запуске dex2jar, вы можете получить эту версию, которая работает без проблем: github.com/DexPatcher/dex2jar/releases/download/…

Kirtikumar A.
19 июля 2020 в 08:26
0

@Kousalya, напишите, пожалуйста, такую ​​команду sudo chmod +x ./d2j-dex2jar.sh classes.dex

Ergash Masharipov
7 декабря 2020 в 01:46
0

У меня есть весь исходный код, но все имена классов зашифрованы непонятными для человека словами вроде "Wwwwwwwwwwwwwwwww" :)

Basant
10 января 2021 в 15:04
0

если кто-то получает "разрешение отклонено: ./d2j-dex2jar.sh" на Macbook, попробуйте "sudo chmod + x ./d2j-dex2jar.sh" в терминале, затем повторите попытку "./d2j-dex2jar.sh classes.dex"

Hammad
22 мая 2021 в 03:31
0

Я использовал команду ./d2j-dex2jar.sh classes.dex, она не показывает такого файла или папки.

htafoya
21 сентября 2021 в 15:44
0

Не забудьте также предоставить разрешения для вызова файла sudo chmod +x d2j_invoke.sh

avatar
Shaybc
13 февраля 2022 в 00:46
0

Решение в один клик (только для Windows)

после прочтения этого сообщения, я решил создать автоматизированный процесс для декомпиляции APK одним щелчком мыши,

я решил поделиться им на github:
https://github.com/shaybc/apk-decompiler

simply unzip,
copy the apk you want to decompile into "apk-source" folder
and run "go.bat"
find the result in the: "apk-output" folder

все, наслаждайтесь

avatar
Abdul
25 ноября 2021 в 07:27
0

Чтобы декомпилировать APK и получить из него код, у вас есть несколько онлайн-инструментов, и я обычно предпочитаю использовать онлайн-декомпилятор APK.

Он очень прост в использовании, и через несколько минут вы сможете скачать с него исходный код.

Если вы хотите загрузить APK из playstore и декомпилировать. вы также можете легко скачать его оттуда.

avatar
w3Abhishek
27 октября 2021 в 01:16
0

APK-файлы приложений Android можно декомпилировать любым из следующих способов:

  1. APKTool (на вашем ПК должна быть установлена ​​Java)
  2. APKTool M (приложение для Android)
  3. JavaDecompilers (онлайн-инструмент включает утилиту APKTool)

Источник: https://droidmaze.com/how-to-extract-code-from-apk/

avatar
Pierre Alexandre
10 февраля 2021 в 14:22
2

Шаг 1: Создайте новую папку и скопируйте файл .apk, который хотите декодировать.

Теперь переименуйте расширение этого файла .apk в .zip (например, переименуйте из filename.apk в filename.zip) и сохраните его. Теперь вы можете получить доступ к файлам classes.dex и т. Д. На этом этапе вы можете видеть чертежи, но не файлы xml и java, так что продолжайте.

Шаг 2: Теперь извлеките этот файл .zip в ту же папку (или в НОВУЮ ПАПКУ).

Загрузить https://github.com/pxb1988/dex2jar/releases/tag/2.0: dex2jar-2.0

Теперь откройте командную строку и перейдите в эту папку (или НОВУЮ ПАПКУ). Затем выполните: d2j-dex2jar.bat classes.dex

Загрузите этот декомпилятор http://java-decompiler.github.io/ для декомпиляции классов-dex2jar.jar

Шаг 3: Теперь откройте еще одну новую папку

Вставьте файл .apk, который вы хотите декодировать

Загрузите последнюю версию apktool И apktool (https://ibotpeaches.github.io/Apktool/install/) в окне установки (оба могут быть загружены по той же ссылке) и поместите их в та же папка

Открыть командное окно

Теперь запустите команду, например apktool, если framework-res.apk (если у вас ее нет, получите здесь), а затем

apktool d myApp.apk (где myApp.apk обозначает имя файла, которое вы хотите декодировать)

теперь у вас есть папка с файлами в этой папке, и вы можете легко читать xml-файлы apk.

Копирование содержимого обеих папок в одну папку

Готово!

avatar
Rohit Patil
27 октября 2020 в 11:16
1

На рынке существует множество приложений и методов для декомпиляции файла apk в класс java, но если приложение скомпилировано с использованием правила ProGuard, у вас большие проблемы, потому что это правило сжимает все файлы dex в небольшое имя символа, и тогда вы не сможете отследить реализацию. см. https://developer.android.com/studio/build/shrink-code для уточнения режима.

Удачного кодирования ...

avatar
Hossam Hassan
10 сентября 2020 в 21:06
1

1. Извлечение исходного кода из собственного приложения Android

Исходный код собственного Android-приложения получить несложно, но для этого требуются дополнительные инструменты, совместимые с Windows, Mac и Linux. Когда дело доходит до инструментов, мне больше всего нравятся dex2jar и JD-GUI.

Если вы не знакомы с этими инструментами, dex2jar прочитает исполняемые файлы Dalvik и преобразует их в стандартный формат JAR. JD-GUI будет читать файлы JAR и декомпилировать файлы классов, найденные в них.

Чтобы упростить понимание процесса извлечения, давайте начнем с создания нового собственного проекта Android:

android create project --target 19 --name TestProject --path . --activity TestProjectActivity --package com.nraboy.testproject

Приведенная выше команда оставит вам проект Android в текущем пути командной строки.

Поскольку в наш проект уже включен класс Activity, давайте сразу перейдем к процессу сборки. Вы можете целый день беспокоиться об использовании Ant вместо Gradle или Maven, но в этом уроке я буду придерживаться этого.

ant debug

Приведенная выше команда создаст отладочную сборку, обычно находящуюся по адресу bin / TestProject-debug.apk .

Используя свой любимый инструмент для распаковки, извлеките файл APK. 7-zip - популярный инструмент, но если у вас Mac, вы можете просто запустить следующее из Терминала:

unzip TestProject-debug.apk

В результате у нас останется куча файлов и папок, но одна из них важна для нас. Обратите внимание на classes.dex, потому что он содержит весь наш исходный код. Чтобы преобразовать его во что-то читаемое, нам нужно запустить на нем dex2jar. Вы можете использовать dex2jar на Mac, Linux и Windows, но я собираюсь объяснить это с точки зрения Mac.

С файлом classes.dex в извлеченном каталоге dex2jar запустите из Терминала следующее:

./dex2jar.sh classes.dex

Откройте приложение JD-GUI, которое вы загрузили, потому что теперь пора декодировать JAR и файлы упакованных классов. Откройте только что созданный файл classes_dex2jar.jar , и вы должны увидеть что-то вроде следующего:

enter image description here Посмотрите, как легко было добраться до исходного кода вашего собственного Android APK? Что вы можете сделать, чтобы лучше защитить себя?

Android SDK поставляется с Proguard, который представляет собой модуль обфускации. Что такое обфускация, спросите вы?

Обфускация через Википедию:

затемнение (или затемнение) - это сокрытие предполагаемого значения в общение, делая общение запутанным, умышленно двусмысленным, и труднее интерпретировать.

Хотя обфускация не зашифрует ваш исходный код, ее будет сложнее понять. С настроенным Proguard запустите Ant в режиме выпуска, и ваш код должен быть запутан при сборке.

2. Извлечение исходного кода из гибридного приложения Android

Исходный код гибридных приложений, безусловно, легче всего извлечь. Вам не нужно устанавливать дополнительное программное обеспечение на компьютер, просто откройте файл APK.

Чтобы упростить понимание, давайте сначала создадим новый проект Apache Cordova, а затем извлечем его. Начните со следующего:

cordova create TestProject com.example.testproject TestProject
cd TestProject
cordova platform add android

В процессе создания проекта вы останетесь с шаблонами Apache Cordova CSS, HTML и JavaScript по умолчанию. В этом примере для нас это нормально. Давайте продолжим и скомпилируем наш проект в распределенный файл APK:

cordova build android

У вас останется platform / android / ant-build / CordovaApp-debug.apk или что-то вроде платформ / android / ant-build / * - debug.apk .

Несмотря на то, что это отладочная сборка, ее все еще можно использовать. Если установлен 7-zip или аналогичный, щелкните правой кнопкой мыши файл APK и выберите его извлечение или разархивирование. В извлеченном каталоге у вас теперь должен быть доступ ко всем вашим исходным файлам в Интернете. Я говорю «на базе Интернета», потому что любые файлы Java, используемые Apache Cordova, будут скомпилированы в файлы классов. Однако файлы CSS, HTML и JavaScript не обрабатываются.

Вы только что увидели, насколько удручающе легко получить исходный код гибридного приложения. Итак, что вы можете сделать, чтобы лучше защитить себя?

Вы можете скрыть свой код, что является формой обфускации.

Это не приведет к шифрованию вашего кода, но сделает его гораздо более трудным для понимания.

Если вы хотите уточнить свой код, я рекомендую вам установить UglifyJS, так как на данный момент это в значительной степени стандарт. Если вы предпочитаете использовать средство выполнения задач, в Grunt и Gulp есть модули для UglifyJS.

avatar
Muhammad Furqan Ul Haq
11 июня 2020 в 11:53
0

Да, это возможно.

Для обратного проектирования файла Android .apk доступно множество программ.

Недавно я составил на своем сайте полный список из 47 лучших декомпиляторов APK . Я разделил их на 4 разных раздела.

  1. Декомпиляторы APK с открытым исходным кодом
  2. Онлайн-декомпиляторы APK
  3. Декомпилятор APK для Windows, Mac или Linux
  4. APK-декомпилятор приложений

Надеюсь, эта коллекция будет вам полезна.

Ссылка: https://www.edopedia.com/blog/best-apk-decompilers/

avatar
Faxriddin Abdullayev
28 мая 2020 в 12:37
0

Воспользуйтесь этим инструментом http://www.javadecompilers.com/

Но недавно на рынок ворвалась новая волна декомпиляторов: Procyon, CFR, JD, Fernflower, Krakatau, Candle.

Вот список декомпиляторов, представленных на этом сайте:

CFR - Бесплатно, исходный код недоступен, http://www.benf.org/other/cfr/ Автор: Ли Бенфилд

Очень хорошо обновленный декомпилятор! CFR может декомпилировать современные функции Java - модули Java 9, лямбды Java 8, переключатели строк Java 7 и т. Д. Это даже неплохо превратит файлы классов из других языков JVM обратно в java!

JD - бесплатно только для некоммерческого использования, http://jd.benow.ca/ Автор: Эммануэль Дюпюи

Обновлено в 2015 году. Имеет собственный визуальный интерфейс и плагины для Eclipse и IntelliJ. Написано на C ++, очень быстро. Поддерживает Java 5.

Процион - с открытым исходным кодом, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler Автор: Майк Штробель

Фернфлауэр - открытый исходный код, https://github.com/fesh0r/fernflower Автор: Егор Ушаков

Обновлено в 2015 году. Очень многообещающий аналитический декомпилятор Java, теперь становится неотъемлемой частью IntelliJ 14. (https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler) Поддерживает Java до версии 6 (аннотации, обобщения, перечисления)

JAD - даны здесь только по историческим причинам. Бесплатно, исходный код недоступен, зеркало для загрузки jad Автор: Павел Кузнецов

avatar
Qing Xu
11 мая 2020 в 02:05
1

Я разработал инструмент - Анализатор кода, он работает на iPhone / iPad / Mac для анализа файлов Java / Android, https://decompile.io

enter image description here

enter image description here

avatar
RJ Cole
29 января 2020 в 01:37
0

Я несколько дней сводил себя с ума, пытаясь заставить dex2jar работать на ноутбуке Fedora 31 против apk, который просто не работал. Этот сценарий python 3 справился с задачей за считанные минуты, а установка jd-gui сделала файлы классов удобочитаемыми.

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

в частности, вот что я запустил:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

Теперь можно просмотреть следующее, чтобы получить файлы классов:

$> enjarify yourapkfile.apk

И для запуска jd-gui:

$> jd-gui

Тогда просто откройте файлы классов!

avatar
Rohit Patil
10 мая 2019 в 19:48
3

Android studio предлагает вам проанализировать любой apk файл.

1 - В меню сборки выберите опцию анализа apk и выберите файл apk. 2 - В результате вы получите файл classes.dex и другие файлы. 3 - Щелкните classes.dex, чтобы просмотреть список папок, пакетов, библиотек и файлов. 4 - Из настроек студии Android и установите плагин под названием «Dex to Jar». 5 - щелкните любой файл активности извлеченного проекта и выберите dex to jar в меню сборки.

В результате вы получите фактический код вашего java-файла.

Ура.

avatar
crifan
8 апреля 2019 в 06:39
4

в зависимости от вашего состояния, если ваш apk для Android:

Условие 1: НЕ затвердевать (Tencent Legu / Qihoo 360 / ...)

Вариант 1: через онлайн-сервис

например:

используя www.javadecompilers.com

перейти:

для автоматического декодирования из apk в исходный код Java

шаги:

upload файл apk + щелкните Run + подождите некоторое время + щелкните Download, чтобы получить zip + распаковать ->

sources/com/{yourCompanyName}/{yourProjectName}

- ваш ожидаемый исходный код Java

Вариант 2: самостоятельно декомпилировать / взломать

используйте соответствующий инструмент для декомпиляции / взлома самостоятельно:

использовать jadx / jadx-gui преобразовать apk в java sourcecode

скачать jadx-0.9.0.zip затем разархивировать, чтобы получить bin/jadx, затем:

  • режим командной строки:
    • в терминальном запуске: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder покажет декодированные sources и resources
      • sources/com/{yourCompanyName}/{yourProjectName} ваш ожидаемый java sourcecode
  • Режим графического интерфейса
    • дважды щелкните, чтобы запустить jadx-0.9.0/bin/jadx-gui (jadx-gui.sh в Linux / jadx-gui.bat в Windows)
    • открыть apk файл
    • он будет автоматически декодировать -> увидеть ожидаемый исходный код Java
    • save all или save as Gradle project

например:

Условие 2: упрочнение (Tencent Legu / Qihoo 360 / ...)

основной метод 3 steps:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

подробное объяснение:

Шаг 1: apk/app to dex

использовать инструмент (FDex2 / DumpDex) dump / hook out (один или несколько) dex файл из запущенного приложения

шаги:

подготовить среду

выгружать dex из запущенного приложения

  • запустите FDex2, затем щелкните свое имя apk, чтобы позже включить захват / подключение dex

  • (в телефоне / эмуляторе) запустите приложение
  • найдите и скопируйте дамп целых ресурсов apk в /data/data/com/yourCompanyName/yourProjectName
    • в своей корневой папке обычно находит несколько dex файлов

Шаг 2: dex to jar

использовать инструмент (dex2jar) преобразовать (конкретный, содержащий логику приложения) файл dex в jar файл

скачать dex2jar получить dex-tools-2.1-SNAPSHOT.zip, разархивировать получил dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh, затем <195010964213

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

например:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

Шаг 3: jar to java src

используйте один из инструментов:

преобразовать jar в java src

для эффекта преобразования из jar в java src:

Jadx> Procyon> CRF >> JD-GUI

поэтому рекомендуем использовать: Jadx / jadx-gui

шаги:

  • дважды щелкните, чтобы запустить jadx-gui
  • открыть dex файл
  • File -> save all

например:

экспортированный src java:


Более подробное объяснение можно найти в моей электронной книге Китайский учебник:

avatar
MobileMateo
26 февраля 2019 в 21:46
1

Для этого есть приложение, которое обычно занимает всего несколько щелчков мышью, и все готово. https://github.com/Nuvolect/DeepDive-Android

  1. Выберите приложения, в разделе «Установленные приложения» выберите свое приложение. Если это не так там вы можете загрузить APK.
  2. Выберите «Извлечь APK»
  3. Выберите «Распаковать APK»
  4. Выберите «Декомпилировать с помощью Jadx». Это может занять от нескольких секунд до нескольких минут в зависимости от от скорости вашего устройства

После этого вы можете просмотреть исходный код, загрузить его на другой компьютер с помощью elFinder или выполнить поиск с помощью Lucene.

В дополнение к Jadx в нем есть декомпиляторы CFR и Fernflower.

avatar
Masood Anwar
25 февраля 2019 в 22:43
1

Я нашел следующий самый простой способ:

  1. Переименуйте app.apk в app.zip (измените расширение с apk на zip)
  2. Распакуйте zip-файл в папку
  3. Используйте инструмент JADX для чтения исходного кода, представленного в файле classes.dex.
avatar
Masoud Mokhtari
16 февраля 2019 в 13:34
1

Самый простой способ - использовать Apk OneClick Decompiler. Это пакет инструментов для декомпиляции и дизассемблирования APK (пакетов Android).

ОСОБЕННОСТИ

  • Все функции интегрированы в контекстное меню Windows.
  • Декомпилируйте классы APK в исходные коды Java.
  • Дизассемблируйте APK до кода smali и расшифруйте его ресурсы.
  • Установите APK на телефон, щелкнув правой кнопкой мыши.
  • Перекомпилируйте APK после редактирования кода smali и / или ресурсов. Во время перекомпиляции:
  • Оптимизировать изображения PNG
  • Подписать apks
  • Zipalign

ТРЕБОВАНИЯ

Должна быть установлена ​​среда выполнения Java (JRE).

Вы можете скачать его по этой ссылке Apk OneClick Decompiler

Наслаждайтесь этим.

avatar
Lakshmikant Deshpande
16 ноября 2017 в 10:53
4

Вы можете попробовать DexPatcher. Он даже интегрируется с Android Studio. Он использует Apktool и Dex2Jar внутри.
Вы также можете использовать эти инструменты независимо. Apktool декомпилирует apk и извлекает файлы .dex, которые в дальнейшем можно преобразовать в jar с помощью Dex2Jar. Jar можно декомпилировать с помощью JD-GUI. Вы можете увидеть код Java с помощью этого инструмента. Хотя сходство декомпилированного кода с реальным кодом не может быть гарантировано. На рынке доступны некоторые передовые инструменты обфускации кода, которые портят код, затрудняя декомпилирование / понимание. например. Proguard

ravi152
23 января 2019 в 07:56
0

Здравствуйте, как использовать DexPatcher с Android Studio?

Lakshmikant Deshpande
20 февраля 2019 в 07:00
0

Не могу все объяснить в комментариях. Google - ваш друг :) Также есть несколько хороших руководств по YouTube.

avatar
Codelover
4 октября 2017 в 06:33
8

Я лично рекомендую Показать приложение Java Android , чтобы получить исходный код. Вы можете скачать его в магазине игр или с здесь

Sunil
10 апреля 2019 в 06:27
0

В основном онлайн-компиляторы не работают, но это приложение работает. Спасибо

avatar
M. Usman Khan
11 сентября 2017 в 06:20
8

Этот сайт https://www.apkdecompilers.com/ сделал это автоматически.

Сначала я попробовал сайт, упомянутый в принятом ответе, но у меня это не сработало.

iman kazemayni
17 сентября 2017 в 07:15
0

Я не смог получить исходный код Java ... похоже, что-то вроде прикрепленного файла и ..

M. Usman Khan
17 сентября 2017 в 08:52
0

@imankazemayni по ссылке выше, "перейдите" к своему APK-файлу и нажмите "Декомпилировать APK". Это займет некоторое время, и затем он должен предоставить вам исходный код, если код не зашифрован.

iman kazemayni
19 сентября 2017 в 10:31
0

знаете ли вы, влияет ли multidex на шифрование?

avatar
0xcaff
11 августа 2017 в 03:27
19

Есть несколько способов сделать это:

  1. Используйте функцию «Профиль или отладка APK» в Android Studio 3.0.

    Он позволяет открывать и исследовать APK-файлы в Android Studio. Классы декомпилированы в смали. Ресурсы не извлекаются, и такие вещи, как «Перейти к определению», «Найти все ссылки» и отладка не работают без исходного кода (android studio 3.0 canary 9). Некоторые дополнительные функции smali могут работать с smalidea.

    android-studio

    select-file

    code

  2. Используйте jadx.

    Jadx декомпилирует код данного APK в исходные файлы java.

    jdax-img

  3. Используйте apktool.

    Apktool - это инструмент командной строки, который извлекает ресурсы и декомпилирует код в smali для данного apk. Вы также можете перекомпилировать с помощью apktool. Вот пример этого в действии:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
    
ransh
28 ноября 2017 в 13:22
0

Я пробовал jadx, но даже с простым helloworld, хотя он декомпилирует его в java. Тем не менее, попытка открыть проект в студии Android и скомпилировать его обратно в apk не удается по многим причинам (файлы дублирования и т. Д.). Есть ли какой-либо метод, который создает java, который можно скомпилировать обратно в apk?

0xcaff
28 ноября 2017 в 21:10
1

@ransh Обычно я использую jadx для чтения кода, а затем apktool для изменения кода. apktool не создает java, но позволяет перекомпилировать.

ransh
29 ноября 2017 в 06:59
0

0xcaff, спасибо за разъяснения. теперь это имеет смысл. Из-за попытки скомпилировать декомпилированную java в студии Android не работало.

avatar
Andrew Rukin
11 июля 2017 в 05:51
5

apktool - это путь. Также существует онлайн-сервис apktool: http://www.javadecompilers.com/apktool

Очевидно, существуют некоторые ограничения из-за «онлайн-характера» службы: вы можете извлекать и исследовать ресурсы и файл манифеста, но в настоящее время невозможно перекомпилировать приложение.

Тем не менее, это простой способ "открыть" приложение для Android.

avatar
Kamil Kiełczewski
10 июня 2017 в 14:36
7

Ниже ОНЛАЙН инструмент:

http://www.javadecompilers.com/apk

он делает ВСЕ одним щелчком мыши: декомпилирует файлы .java + ресурсы + xml (в одном файле .zip) с очень хорошим декомпилятором (jadx возвращает код Java в местах / функциях, где другие компиляторы возвращают комментарии внутри функция типа "невозможно декомпилировать" или некоторый ассемблер / машинный код Android)

Zia Ur Rahman
27 февраля 2018 в 06:21
0

да, это здорово, но вместо имен функций он изменил все имена функций на CS1001 и так далее. Итак, как их распознать. и еще кое-что: можем ли мы использовать этот декомпилированный apk непосредственно в качестве проекта студии Android. Будет ли он работать?

Zia Ur Rahman
27 февраля 2018 в 10:11
0

то с какой целью мы используем для декомпиляции некоторых apk, если мы не можем использовать их функции в наших приложениях.

Kamil Kiełczewski
27 февраля 2018 в 10:58
0

@ZiaUrRahman Я не знаю. Однако в моем случае я декомпилирую код для анализа алгоритма. Вы проверяете, может ли декомпилированный код из этого инструмента быть скомпилирован студией Android полностью автоматически - или требуется некоторая "обработка человеком"?

Zia Ur Rahman
27 февраля 2018 в 11:25
1

Я импортировал декомпилированный проект в студию Android, но там нет градиента, и в проекте много файлов, но я не понял, пока мы его не запустили. Просто не вышло. Мне нужно сделать декомпилированный проект полностью функциональным в студии Android, а затем получить некоторые основные функции некоторых из них, а затем я хочу использовать / встроить его в свой собственный проект. Так есть ли способ, как это сделать?

AaA
8 августа 2021 в 18:29
0

Этот онлайн-инструмент использует Jadx, который каждый может загрузить и запустить на своем собственном компьютере, при этом реклама не будет мигать вам на лице каждые 5 секунд. Также он не работает так же, как и Jadx.

avatar
SKK
25 мая 2017 в 14:06
18

Может быть, проще всего увидеть источник:

В Android Studio 2.3: Build -> Analyze APK -> Select the apk that you want to decompile.
Вы увидите его исходный код.

Ссылка для справки:
https://medium.com/google-developers/making-the-most-of-the-apk-analyzer-c066cb871ea2

WSS
10 сентября 2017 в 12:23
11

В нем перечислены классы и методы, но не указан исходный код.

M. Usman Khan
25 сентября 2017 в 06:31
0

Вы можете получить указанные выше файлы, только изменив ".apk" на ".zip".

avatar
Biswajit Karmakar
15 мая 2016 в 08:21
5

Apktool для обратного проектирования сторонних закрытых бинарных приложений Android.

Он может декодировать ресурсы до почти исходной формы и восстанавливать их после внесения некоторых изменений.

Позволяет пошагово отлаживать smali-код. Также это упрощает работу с приложением благодаря файловой структуре проекта и автоматизации некоторых повторяющихся задач, таких как создание apk и т. Д.

http://ibotpeaches.github.io/Apktool/

avatar
Cilenco
11 января 2014 в 12:49
56

В Play Store есть новое приложение, с помощью которого можно декомпилировать apk (также системные приложения) и просмотреть исходный код прямо на вашем смартфоне. Он сохраняет файлы на SD-карту, так что вы также можете просматривать их на своем компьютере. Не требует рута или чего-то еще.

Просто установите и получайте удовольствие. Я думаю, что это самый простой способ декомпилировать приложение.

Sajeev
8 июня 2019 в 11:50
0

@MidhunVijayakumar Не могли бы вы преобразовать apk в исходный код с помощью этого?

avatar
Trinimon
13 марта 2013 в 20:09
138

Это альтернативное описание - на случай, если кто-то застрял с описанием выше. Выполните следующие действия:

  1. загрузите apktool.bat (или apktool для Linux) и <55146066360939io> / Apktool / install /
  2. переименуйте файл jar сверху в apktool.jar и поместите оба файла в одну папку

  3. откройте окно dos (cmd.exe) и перейдите в эту папку; убедитесь, что среда Java установлена ​​(для Linux также проверьте примечания относительно необходимых библиотек)
  4. Начало: apktool decode [apk file]

    Промежуточный результат : файлы ресурсов, AndroidManifest.xml

  5. распакуйте файл APK с помощью распаковщика по вашему выбору

    Промежуточный результат : classes.dex

  6. загрузить и извлечь dex2jar-0.0.9.15.zip из http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. перетащите classes.dex на dex2jar.bat (или введите <path_to>\dex2jar.bat classes.dex в поле DOS; для Linux используйте dex2jar.sh)

    Промежуточный результат : classes_dex2jar.jar

  8. распаковать classes_dex2jar.jar (может быть необязательным в зависимости от используемого декомпилятора)
  9. декомпилируйте файлы классов (например, с помощью JD-GUI или DJ Decompiler)

    Результат : исходный код

Примечание: не разрешается декомпилировать сторонние пакеты; это руководство предназначено для восстановления личного исходного кода только из файла APK; наконец, полученный код, скорее всего, будет обфусцирован

Andrew Rukin
8 сентября 2015 в 05:42
6

Могу также добавить, что есть современная альтернатива этому маршруту APKTool-> dex2jar-> JD-GUI! Просто попробуйте открытый APK и декомпилятор DEX под названием Jadx: sourceforge.net/projects/jadx/files Он также имеет онлайн-версию здесь: javadecompilers.com/apk

Rakete1111
30 апреля 2017 в 10:56
2

Разрешено (читай: законно) декомпилировать любой файл APK. См. Следующий вопрос: coderhelper.com/questions/9674557/…

rminaj
24 июля 2019 в 07:58
1

Почему эти apktool возвращают smali файлы? Как получить файл java?

user202729
10 декабря 2020 в 14:13
0

@AndrewRukin Эта ссылка перенаправляет на страницу dex2jar на sourceforge.

avatar
Franklin Hirata
25 февраля 2013 в 12:22
6

Я покажу вам другой способ декомпиляции файлов .apk .

Вы можете выполнить первые 2 шага из « prankul garg ». Итак, у вас есть другие возможности:

Шаг 3 ':

Загрузите "JD-GUI" , это легко найти. Откройте файл .jar в "jd-gui.exe". (Файл> Открыть файл> 'нашел ваш файл .jar '). После этой процедуры вы можете сохранить все ресурсы в файле .zip, .

Итак,

1-й - вам необходимо переименовать файл .apk в .zip

2-й - вы должны декодировать файл .dex (если хотите, декодируйте файл .apk в dex2jar <9108098012679>, возможно>

3-й - вам необходимо декодировать файл .jar с помощью JD-GUI

Jørgen R
25 февраля 2013 в 12:30
20

Что дает этот ответ такого, чего нет у других?

miva2
27 марта 2015 в 10:07
0

Вам действительно не нужно переименовывать его в zip. Я мог открыть файл apk напрямую с помощью 7-zip.

avatar
Tom Hennen
6 декабря 2012 в 01:38
26

В этих двух статьях описывается, как объединить использование apktool и dex2jar для получения файла APK и создания проекта Eclipse, который может его построить и запустить.

http://blog.inyourbits.com/2012/11/exnding-existing-android-applications.html

http://blog.inyourbits.com/2012/12/exnding-existing-android-applications.html

Обычно вы:

  1. Используйте apktool, чтобы получить файлы ресурсов из apk
  2. Используйте dex2jar, чтобы получить файл jar, содержащий классы в формате, который понравится Eclipse.
  3. Создайте проект Eclipse, указав его на файлы ресурсов и новый файл jar
  4. Откройте файл jar с помощью утилиты zip и удалите существующие ресурсы
  5. Откройте файл jar с помощью JDGui, чтобы просмотреть исходный код
  6. Возьмите любой нужный вам исходный код из JDGui, вставьте его в класс внутри Eclipse и измените его
  7. Удалите этот класс из файла jar (чтобы один и тот же класс не определялся несколько раз)
  8. Запустить.
Snehal Masne
15 июня 2014 в 10:03
2

Я знаю, что на этот вопрос все еще есть ответ, я хотел бы передать информацию: есть онлайн-декомпилятор для android apks decompileandroid.com Загрузите apk с локального компьютера, подождите несколько секунд, загрузите исходный код в формате zip.

DDSports
12 апреля 2015 в 17:42
2

Звучит хорошо. Кроме того, на сайте декомпиляции Android также есть копия всего вашего исходного кода! Умный!

user9049996
21 июня 2018 в 17:30
0

Один вопрос, у меня декомпилирован apk, но в jd gui я не знаю, есть ли настоящие классы java, знаете ли вы, если apk декомпилирован, есть ли настоящие классы Java?

avatar
Macarse
29 августа 2010 в 12:17
31

apktool - лучшее, что вы можете попробовать. Я сохранил с ним немного xml, но, честно говоря, я не знаю, как он будет работать с кодом .java.

Я бы порекомендовал вам иметь репозиторий кода, даже если вы единственный кодировщик. Я использую Project Locker для своих собственных проектов. Он дает вам бесплатные репозитории svn и git.

Andrew Rukin
30 июня 2017 в 21:22
0

Вы найдете apktool незаменимым, если хотите извлекать ресурсы (например, изображения из приложения Android. На самом деле, у этого инструмента вообще нет конкурентов!) Онлайн-версия apktool доступна здесь: www.javadecompilers.com/apktool

avatar
Ryan Berger
29 августа 2010 в 04:02
23

apktool будет работать. Вам даже не нужно знать хранилище ключей, чтобы извлечь исходный код (что немного пугает). Основным недостатком является то, что исходный код представлен в формате Smali вместо Java. Однако другие файлы, такие как icon и main.xml, проходят отлично, и, возможно, стоит потратить время, по крайней мере, на их восстановление. В конечном итоге вам, скорее всего, придется переписать код Java с нуля.

Вы можете найти apktool здесь. Просто скачайте apktool и соответствующий помощник (для Windows, Linux или Mac OS). Я рекомендую использовать такой инструмент, как 7-zip, чтобы распаковать их.

avatar
Ryan Gooler
29 августа 2010 в 03:58
116

Хотя вы можете декомпилировать файл APK, вы, скорее всего, столкнетесь с одной большой проблемой:

он не вернет написанный вами код. Вместо этого он будет возвращать все, что встроено компилятором, с переменными с произвольными именами, а также с функциями с произвольными именами. На то, чтобы попытаться декомпилировать и восстановить его в код, который у вас был, может потребоваться значительно больше времени, чем на то, чтобы начать заново.

К сожалению, подобные вещи убили многие проекты.
На будущее я настоятельно рекомендую изучить систему управления версиями, например CVS , SVN и git и т. Д.

и как сделать резервную копию.

Jeremy Logan
29 августа 2010 в 08:19
19

Также поможет такой сервис, как Dropbox.

GorvGoyl
20 февраля 2019 в 03:55
3

и всегда есть способ записать компакт-диски

Dorin Baba
21 августа 2021 в 08:42
0

И всегда есть способ написать исходный код на папирусе