elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BATCH] [ANDROID] A ver si se podria hacer esto... :D
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BATCH] [ANDROID] A ver si se podria hacer esto... :D  (Leído 9,410 veces)
erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
[BATCH] [ANDROID] A ver si se podria hacer esto... :D
« en: 31 Mayo 2013, 03:13 am »

Tengo una duda... se muy poco de batch y esto se me va de las manos.

El caso es que quería hacer esto:

Primero un poco de información, este bat seria para poder deodexizar mi ROM de android, he probado miles de bats que hacen esto pero ninguna funciona. :(

Para deodexizar la ROM necesito hacer una cosas y una de ellas es esta:

1.Copiar toda la carpeta framework y app en el pc (esto lo sabría hacer)

2.Deodexizarlas así:

Código:
java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x (Nombre de la apk.apk)

Esto cambia solo al final con cada nombre de la apk

Citar
java -Xmx1024m -jar smali.jar out -o classes.dex

Este nunca cambia, después de hacer esto crea un archivo llamado "classes.dex" que tendría que ponerlo en la apk o jar previamente citada.

Este proceso es para apk seria los mismo para framework (.jar) pero poniendo .jar en vez de .apk


El caso es que tendría que hacer esto unas 200 veces con diferentes nombres pero de forma automática, no uno a 1 porque tardaría demasiado


Si queréis os puedo subir algún archivo para que veías como van los tiros ;)


« Última modificación: 31 Mayo 2013, 10:58 am por EleKtro H@cker » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #1 en: 31 Mayo 2013, 11:01 am »

Hola,
Antes de nada, usa títulos descriptivos, no cosas como "ayuda" o "¿como se puede hacer esto?".





Utiliza un FOR para recorrer los archivos que quieras y efectuar cada acción con cada archivo del recorrido.

Código:
For %%# in ("C:\*.*") do (Echo %%#)

Código:
For %%# in ("C:\*.apk") do (
    java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#"
)

...Lo mismo si necesitas automatizar algo con las carpetas, utiliza un FOR /D.

Saludos


« Última modificación: 31 Mayo 2013, 11:05 am por EleKtro H@cker » En línea



erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #2 en: 31 Mayo 2013, 13:50 pm »

Gracias voy a mirar un poco para que Sirve "FOR"  ;-)

EDIT: Ya me lo he mirado un poco y ya se para que sirve.

A ver si me aclaro con el código:

Esto sirve para buscar todos los *.apk en C:\ y la variable se para que sirve pero no se explicarlo...

Código:
For %%# in ("C:\*.apk") do

Y esto es para la variable no?

Código:
%%~f#

Lo que no entiendo es porque pones las ()


Una ultima cosa esto solo lo haría 1 vez con cada archivo no?
« Última modificación: 31 Mayo 2013, 14:12 pm por erikcatala » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #3 en: 31 Mayo 2013, 15:29 pm »

El For procesa los archivos uno a uno y efectua las ordenes que le indiques a ese archivo, y luego al siguiente archivo, y así hasta que se complete la serie de archivos encontrados/procesados.

En la variable (en este caso "%%#", puedes darle otro nombre siempre que cumpla el patrón permitido como "%%a") sirve para almacenar el nombre del archivo que se está procesando en ese momento,
La variable la puedes expandir para obtener información concreta sobre el archivo, aunque en este caso solo interesa obtener el nombre completo, así que no hay que expandir, el "~f" lo puse como ejemplo visual pero no es necesario aquí.

Los paréntesis son los operadores de agrupación, y sirven para agrupar un conjunto de ordenes,
"(Echo hola)" sirve igual que "Echo hola", pero en el For uso los paréntesis porque es la manera correcta de programar un For, tanto un For como un If.

Si ves códigos así por internet, están muy mal:
Código:
if "a" == "b" echo si & pause else echo no

Al no estar agrupado no se define el limite del grupo y el "Else" no se va a procesar.
Hay que hacerlo así:
Código:
if "a" == "b" (echo si & pause) else (echo no)

Y nada, después de esta pequeña clase... te aconsejo que sigas leyendo más, el For es "grande" para alguien que está empezando.

Saludos
En línea



erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #4 en: 31 Mayo 2013, 17:00 pm »

Me pareze a mi que voy a usar mucho el "FOR" :P

Ya he empezado a escribir el código a ver que te parece:

Copiar archivos del teléfono:

Código:
@ECHO OFF
cd Working
adb wait-for-device
adb pull /system/app "C:\Working\App"
cd Working
rmdir App /S /Q
md App
exit

Deodexizar:
Código:
cd "C:\Working\App"

For %%# in ("C:\Working\App*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" )

java -Xmx1024m -jar smali.jar out -o classes.dex

Mover classe.dex a la apk o jar citado anteriormente

del classes.dex


Esto no se para que sirve pero lo encontre en un bat que hacia lo mismo:
Código:
rmdir App /S /Q
md App
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #5 en: 31 Mayo 2013, 17:12 pm »

Me parece bien el código,
para mover archivos y carpetas puedes usar el comando "Move".

Esto no se para que sirve pero lo encontre en un bat que hacia lo mismo:
Código:
rmdir App /S /Q
md App

Escribe esto en la consola y sabrás para que sirven:

Código:
rmdir /?
md /?

PD: Porfavor, no uses rmdir sin saber para que sirve, es "peligroso" si se usa mal.

Saludos.
En línea



erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #6 en: 31 Mayo 2013, 17:25 pm »

Vale te haré caso  ;D

Ya se para que sirve cada cosa, no me acordaba que poniendo X /? salia la información, espero no olvidarme.

Pues ya tengo el código casi echo, solo me falta saber como copiar el classes.dex dentro de la apk y el jar ;)

Gracias por todo, ya es la 2 vez que me ayudas a crear mi bat  :silbar:
En línea

erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #7 en: 1 Junio 2013, 03:11 am »

Nadie sabe como puedo hacerlo?

Ya tengo todo el código escrito, solo me falta saber eso... :(

PD: Una cosa...

Esta parte aun tengo dudas :S

Código:
For %%# in ("C:\Working\App*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" )

java -Xmx1024m -jar smali.jar out -o classes.dex

La primera parte ya esta clara pero la segunda? eso lo hará cada vez con cada archivo? Osea, cada vez que se haga el la primera parte se hará la segunda parte seguidamente?
Al igual que borrar classes.dex, lo borrara cada vez?
« Última modificación: 1 Junio 2013, 03:15 am por erikcatala » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #8 en: 6 Junio 2013, 02:37 am »

La primera parte ya esta clara pero la segunda? eso lo hará cada vez con cada archivo? Osea, cada vez que se haga el la primera parte se hará la segunda parte seguidamente?
Al igual que borrar classes.dex, lo borrara cada vez?

What?

De verdad no he entendido nada,
lo que está entre parentesis se realiza cada vez, con cada archivo, la línea del final ...No.

solo me falta saber como copiar el classes.dex dentro de la apk y el jar ;)

He leido tu MP, pero ni manejo Java ni manejo Android, esto ya no pertenece a Batch, pregúntalo en la sección correspondiente.

Saludos!
En línea



erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: [BATCH] [ANDROID] A ver si se podria hacer esto... :D
« Respuesta #9 en: 6 Junio 2013, 10:02 am »

What?

De verdad no he entendido nada,
lo que está entre parentesis se realiza cada vez, con cada archivo, la línea del final ...No.

Es que es un poco dificil de explicar seria asi:

Este codigo le llamamos #1

Código:
For %%# in ("C:\Working\App*.apk") do ( java -Xmx1024m -jar baksmali.jar -c core.jar:core-junit.jar:bouncycastle.jar:ext.jar:framework.jar:framework2.jar:android.policy.jar:services.jar:apache-xml.jar:com.lge.core.jar -x "%%~f#" )

Este #2:

Código:
java -Xmx1024m -jar smali.jar out -o classes.dex

Y copiar el archivo .dex el #3


Y cuando se ejecute el bat tendria que hacer esto:

Ejecutar el #1 codigo solo 1 vez, despues el #2 una vez, el #3 otra vez mas.

Siempre 1 vez y después otra vez cambiando el nombre del archivo.


Esto hace lo que quiero, pero ni lo entiendo y algunas cosas no me sirven...

Código:
@echo off
ECHO WELCOME!
set x=%1
ECHO Deodexing apk..
java -Xmx512m -jar baksmali.jar -x apks/%x%.odex
xcopy "%cd%\apks\%x%.apk" "%cd%\working"
java -Xmx512M -jar smali.jar out/ -o classes.dex
xcopy "classes.dex" "%cd%\working\build"
cd working
7za x -o"build" %x%.apk >> Log-APK.txt
xcopy "7za.exe" "%cd%\build"
cd build
7za a -tzip Done.apk * -mx5 >> Log-APK.txt
ren Done.apk Done.zip
7za d Done.zip 7za.exe >> Log-APK.txt
ren Done.zip Done.apk
cd..
cd..
xcopy "%cd%\working\build\Done.apk" "deodexed"
del classes.dex
rmdir out /S /Q
cd deodexed
ren Done.apk %x%.apk
cd..
cd working
del %x%.apk
rmdir build /S /Q
md build
cd..
ECHO DEODEXED SUCCESSFULLY.
exit
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como podria hacer esto??
Hacking
alexzgz 1 3,029 Último mensaje 26 Febrero 2010, 19:19 pm
por Shell Root
[Batch] ¿Como se podría hacer esto...?
Scripting
SuperDraco 2 3,458 Último mensaje 10 Julio 2013, 10:11 am
por Eleкtro
como podria hacer un RFI con esto?
Nivel Web
Belial & Grimoire 1 3,908 Último mensaje 20 Febrero 2012, 04:10 am
por wirelesswifi
[Ayuda] Se puede hacer esto en Batch...!!!
Scripting
user_foro 4 3,356 Último mensaje 7 Agosto 2015, 23:24 pm
por user_foro
Qué tipo de menú utilizar para esto que quiero hacer? Android.
Java
@XSStringManolo 3 2,395 Último mensaje 3 Noviembre 2019, 18:45 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines