Kunnen de gebruikers het apk-bestand van mijn applicatie terug converteren naar de daadwerkelijke code?
Als ze dat doen – is er een manier om dit te voorkomen?
Antwoord 1, autoriteit 100%
Ten eerste is een apk-bestandslechts een aangepast jar-bestand. Dus de echte vraag is of ze de dex-bestanden erin kunnen decompileren. Het antwoord is een soort van. Er zijn al disassemblers, zoals dedexeren smali. Je kunt verwachten dat deze alleen maar beter worden, en theoretisch zou het uiteindelijk mogelijk moeten zijn om te decompileren naar de daadwerkelijke Java-bron (althans soms). Zie de vorige vraag DEX decompileren in Java-broncode.
Wat je moet onthouden is dat verduistering nooit werkt. Kies een goede licentie en doe je best om deze via de wet af te dwingen. Verspil geen tijd met onbetrouwbare technische maatregelen.
Antwoord 2, autoriteit 45%
Gebruik Aapt(onderdeel van de Android SDK) of AXMLParser(van AndroGuard) om informatie van een APK-bestand te analyseren en te bekijken
-
Haalt de inhoud van het AndroidManifest.xml-bestand op
-
Toont verschillende informatie (bijv. machtigingen, activiteiten, services, ontvangers van uitzendingen, …)
-
Opdracht:
Aapt
aapt dump badging sampleApp.apk aapt dump permissions sampleApp.apk aapt dump xmltree sampleApp.apk
AXMLParser
apkinfo sampleApp.apk
Gebruik ApkToolof NinjaDroidom de bronnen van een APK-bestand te demonteren en te bekijken
-
Demonteert de bytecode naar smali/assembly
-
Extracteert het AndroidManifest.xml, het CERT.RSA-bestand en alles in de res-map (lay-out xml-bestanden, afbeeldingen, html’s die in webview worden gebruikt, enz.)
-
Opdracht:
ApkTool
apktool.bat d sampleApp.apk java -jar apktool.jar -q decode -f sampleApp.apk -o myOutputDir
NinjaDroid
ninjadroid MyApk.apk --all --extract myOutputDir/
-
OPMERKING:je kunt iets soortgelijks bereiken door een zip-hulpprogramma zoals 7-zip te gebruiken. Maar deze tools extraheren ook de .smali-bestanden van alle .class-bestanden.
Gebruik dex2jarom de DEX-bestanden van een APK-bestand in Java-code te decompileren
-
Genereert het .jar-bestand van een .apk-bestand (merk op dat de Java-code van Android-apps meestal versluierd is)
-
JD-GUI nodig om de broncode van het .jar-uitvoerbestand te bekijken
-
Opdracht:
dex2jar sampleApp.apk d2j-dex2jar.sh -f sampleApp.apk -o myOutputDir/sampleApp.jar
Gebruik JD-GUI om het .jar-bestand te bekijken
- Decompileert de .class-bestanden (verdoezeld in het geval van Android-apps, maar niet in het geval van andere .jar-bestanden) en toont de bijbehorende Java-code
Antwoord 3, autoriteit 4%
Ik kan er ook aan toevoegen dat het tegenwoordig mogelijk is om de Android-applicatie online te decompileren, geen software nodig!
Hier zijn 2 opties voor jou:
Antwoord 4
Download deze jadx-tool https://sourceforge.net/projects/jadx/files/
Pak het uit en in de lib-map voer je het jadx-gui-0.6.1.jar-bestand uit en blader je nu door je apk-bestand.
Het is klaar. APK zal automatisch decompileren en opslaan door op de knop Opslaan te drukken.
Hoop dat het voor je zal werken.
Bedankt
Antwoord 5
Kunnen de gebruikers het apk-bestand van mijn applicatie terug converteren naar de daadwerkelijke code?
ja.
Mensen kunnen verschillende tools gebruiken om:
- analyse: uw APK
- decodeer/hack je apk
FDex2
gebruiken om hetdex
-bestand te dumpen- gebruik vervolgens
dex2jar
om te converteren naarjar
- vervolgens
jadx
gebruiken om te converteren naarjava
broncode
- vervolgens
- gebruik vervolgens
Als ze dat doen, is er een manier om dit te voorkomen?
ja. Verschillende (kunnen gecombineerde) manieren om dit (in zekere mate) te voorkomen:
- laag niveau: code verduistering
- met Android
ProGuard
- met Android
- hoog niveau: gebruik Android Harden-scenario
Meer details vind je in mijn Chinesetutorial: 安卓应用的
Antwoord 6
Soms krijg je gebroken code als je dex2jar
/apktool
gebruikt, met name in loops. Om dit te voorkomen, gebruikt u jadx, dat dalvik-bytecode decompileert in Java-broncode, zonder een .jar
/.class
bestand eerst zoals dex2jar
doet (apktool gebruikt dex2jar denk ik). Het is ook open-source en in actieve ontwikkeling. Het heeft zelfs een GUI, voor GUI-fanaten. Probeer het!
Antwoord 7
Ja, er is heel veel software beschikbaar om een .apk-bestand te decompileren.
Onlangs had ik een ultieme lijst samengesteld van 47 beste APK-decompilersop mijn website. Ik heb ze in 4 verschillende secties ingedeeld.
- Open source APK-decompilers
- Online APK-decompilers
- APK-decompiler voor Windows, Mac of Linux
- APK-decompiler-apps
Ik hoop dat deze verzameling u zal helpen.