Ma partendo da un file APK scaricato dal net, si può modificare qualcosa? Ho visto che sono quasi tutti file XML ma .. non credo siano file comuni, aprendoli con notepad o simili e quasi tutto cifrato
Visualizzazione stampabile
Ma partendo da un file APK scaricato dal net, si può modificare qualcosa? Ho visto che sono quasi tutti file XML ma .. non credo siano file comuni, aprendoli con notepad o simili e quasi tutto cifrato
con l'apk no, ma se hai i sorgenti si
Gli XML possono essere decompressi e ricompressi con appositi tool
Il programma può essere modificato usando disassembler e assembler (io l'ho fatto)
Poi il pacchetto va risegnato
Una guida per questi due programmi esiste?
Qualcuno mi sa dire come si usa apktool, ho aperto l'exe ma non succede nulla o_O
Ok ho aperto il terminale ma ci sono veramente troppe opzioni roftl
ho provato a lanciare una cosa del genere:
aapt d WHAT nomefile.apk
ma mi dice comando non valido...magari vuole qualche altro paramentro ma non so cosa mettere:-[
dovrebbe bastare
apktool nome.apk
E' qui dentro che si vuole modificare un programma compilato?
in teoria si.
Io dovrei modificare open home (la grandezza delle icone nella home e della percentuale della batteria) ma non so dove trovare le impostazioni, nonstante lo disassemblato con baksmali.
Da terminale secondo me bisogna usare aapt, almeno questo ho capito dalla guida...se lancio apktool mi diche che java non è un programma valido
Scusate non so se ho capito bene... volete modificare un programma in assembly? roftl
Non esce in assembly viene fuori uno pseudo codice tipo java
L' uso di apktool è abbastanza semplice
Per "decompilare" un .apk si usa
dove file.apk è l' apk da modificare e nome-cartella è un nome valido per una cartellacodice:apktool d file.apk nome-cartella
Fatto questo in nome-cartella ci troveremo tutti i file e cartelle di cui è composto l' apk, tutto pronto per essere modificato, anche i files .xml si possono aprire con un editor
Una volta terminato il lavoro basta dare
ATTENZIONE! Per decompilare si usa d "come domodossola" (decompile) per ricompilare si usa b "come bologna" (build), è facile confondersi ;)codice:apktool b nome-cartella
In nome-cartella dovrebbe esserci una sottocatella di nome dist, dentro ci dovrebbe essere il nostro file.apk modificato
Ciao
berna
ciao a tutti, veramente interessante questo thread...
io ho un'apk e vorrei modificare il file classes.dex
ho provato a estrarlo con 7zip dal file apk e l'ho modificato con il notepad
poi ho sostituito sempre con 7zip il file e ho signato l'applicazione modificata ma non funziona.
ho anche cancellato la cartella “META-INF” (dove sono salvati i vecchi certificati) prima di signare nuovamente l'app ma niente...
credo quindi che il problema sia nel modo in cui ho modificato il file classes.dex...
qualche idea su come modificare il file classes.dex con successo?
grazie
scusa ma il file in formato .dex non ha nemmeno una parola in inglese, cosa modifichi???
Devi "convertirlo" con smali-baksmali..
smali - Project Hosting on Google Code
Copi baksmali nella cartella dove hai il file .dex, poi da terminale dai questo comando
codice:java -jar baksmali.jar classes.dex
Ciao ;-)
Scusate solo ora leggo questo thrend...ma quindi se io faccio un programma qualsisi persona che vuole vedere il codice lo può decompilare con apktools?? Ma gli esce pari pari come ho scritto il codice?
Ah ok alora è diverso pensavo che si ottenesse il file java :)
si possono anche ottenere i file .java con un decompilatore...
ed è tutto mostruosamente facile ed efficace...
è il risvolto della medaglia di usare bytecode, jvm, dalvik vm etc...
è tutto molto standardizzato e quindi vulnerabile al reverse engeneering...
si può prendere un .apk, estrarne le risorse e il codice senza troppi problemi, si ottiene un codice corretto o quasi corretto molte volte.. (ovviamente senza i commenti).
le tecniche di offuscamento ci sono, ma stai li a romperti mentre fai il programma e alla fine perdi anche in leggibilità e poi alla fine te lo decompilano lo stesso...
a quel punto forse ti devi chiedere se hai sbagliato piattaforma roftl
Apk Manager 4.9 - Makes Modifying Ur Apk A Breeze (Windows/Linux) - xda-developers
Semplice ed Efficace ;)
A Me non risulta che su ottengano file java cosi leggibili ma asl massimo file smali tipo linguaggio macchina
jd java decompiler
Scusa con APK Manager ottengo gli smali e poi che ci faccio JD decompiler non li accetta vuole i .class...
Ok ho utilizzato tutti i programmi esistenti, conclusione che si possono ottenere i drawable, gli xml ma non i file java dagli apk al massimo si possono ottenere dei file smali che però sono una specie di linguaggio macchina...tutto qui
Devi estrarre il file dex con winrar. Poi usare dex2jar per estrarre ii class poi usare jd.
Ora sono fuori e non posso scrivere troppo, però sei un po presuntuoso a dire così, non è che la gente scrive roba a caso.
Scusami ma non voglio essere presuntuoso, avevo provato anche questa procedura e cioè :
1) Avevo preso il file classes.dex
2) avevo usato il comando dex2jar classes.dex ottenendo un file jar che buttato poi in JDdecompiler da una struttura simile alle classi del programma ma come contenuto dei file non ci siamo proprio....se poi sbaglio quacosa dimmelo......
Negativo l'ho provato con tanto programmi quello che sui ottiene è un na serie di file java ( tra l'altro ogni file viene scomposto in tanti file) nei quali ci sono si le classi ma le variabili vengono sostituite con i loro riferimenti in memoria così come altri comandi...a meno che io non sbagli qualcosa ma non credo perché prendi il classes.dex che sui trova nella root, poi con il comando dex2jar classes.dex lo trasforma nel.jar ed il file ottenuto lo aperti con jd-gui. Tutto qui
Ho provato con 3 programmi diversi presi sul market ed 1 mia :D cmq mi interessava solo capire se in effetti le classi java ottenute fossero realmente quelle scritte ed ho visto che nemmeno si avvicinano alla realtà, magari ti puoi fare un'idea ma comunque non capisci nulla perchè molti istruzioni vengono sotituite con i riferimenti ed anche le variabili....
Insomma sono contento, perchè mi sembrava stano che uno scrivesse un programma e poi chiunque con 2 programmini poteva vedere il codice...certo è sempre meglio fare 2 verisoni dei propri programmi (1 lite ed una a pagamento) perchè se si mettono degli if che fanno chiudere il programma se ad esempio non è stato pagato allora questi decompilatori possono fare al caso proprio....
Ciao a tutti,volevo modificare il browser del mio galaxy s2,inserendo nativamente l'user agent,il modo da visualizzare tutti i siti in modalita' desktop,ho usato questa guida presa su xda [HACK/FIX] Changing useragent string in browser to Desktop (Permanently) - xda-developers
ho trovato la stringa,l'ho modificata,ma quando la rivado a compilare con ./apktool b nome cartella mi da' un po' di errori e non mi crea nessuna cartella.