Seguridad Wireless - Wifi
Suite Seguridad Wireless => Colaboracion y desarrollo de nuestras lives => Mensaje iniciado por: vk496 en 09-09-2014, 01:48 (Martes)
-
Viendo que ya empiezo a pensar lento, y no me salen cosas, dejo "la sorpresa":
lsxzm
#!/bin/sh
#Edicion por vk496 para seguridadwireless.net
#Creditos a 82issa
#https://github.com/Byzantium/Byzantium/blob/master/porteus-scripts/
fu(){
echo "Uso: lsxzm /path/to/specific/module.xzm"
exit
}
fa(){
echo "Este comando muestra el contenido de un .xzm sin extraerlo"
echo
fu
}
sa(){
echo "You are having some sort of syntax error."
exit
}
if [ -f "$1" -a "$1" != "" ]; then
while read line; do
echo /$line
done <<<"$(unsquashfs -l $1 | cut -d/ -f2-)"
exit
elif [ "$1" = "" ]; then fu
else
case $1 in
-?)fa;;
--help)fa;;
--about)fa;;
*)sa;;
esac
fi
done
Y aquí viene el interesante, y en el que mas hay que trabajar:
mloop
#!/bin/bash
# Script to mount most archives on a loop device
# Sistema de subshells para Dolphin por vk496 para seguridadwireless.net
# Switch to root
if [ `whoami` != "root" ]; then
echo "Please enter root's password below"
mod=`readlink -f $1`
su - -c "/opt/porteus-scripts/mloop $mod"
exit
fi
#Sacamos el PTS de Dolphin
PTS=$(ps -e --forest | sed -n "/dolphin/,/$$/p" | grep pts | awk '{print $2}')
#No estoy seguro del $$
mpoint=/mnt/loop$$
tmp=/tmp/mloop
xfile=$1
x=`ls -1 /dev/loop* | awk -F/ '{print$3}' | tr -d [:alpha:] | sort -n | tail -n1`
lp=$(($x+1))
ext=$(echo $xfile | grep -o '\.[^.]*$')
usage()
{
clear
echo
echo "##########################"
echo Usage of $0:
echo "##########################"
echo -e "\033[1m$0 module.xzm\033[0m"
echo -e "\033[1m$0 file.iso\033[0m"
echo -e "\033[1m$0 /path/to/file.dat\033[0m"
echo -e "\033[1m$0 /path/to/file.img\033[0m"
echo -e "\033[1m$0 /path/to/initrd.xz\033[0m"
echo
echo "File given will be mounted on a loop at /mnt/loop"
echo "You can use uloop to unmout loop."
echo
echo
}
if [ "$xfile" == "" -o "$xfile" == "--help" -o "$xfile" == "-h" -o "$xfile" == "-help" -o "$xfile" == "help" ]; then
usage
exit
fi
#######################
# Begin mount process
#######################
# Check for loop mount dir
if [ ! -d $mpoint ]; then
mkdir $mpoint
else
xls=`ls $mpoint`
fi
if [ "$xls" != "" ]; then
umount $mpoint
uloop
fi
#Create a new loop
mknod /dev/loop$lp b 7 $lp
xmodule()
{
mount -t squashfs -o loop $xfile $mpoint
clear
echo
echo "#################################"
echo "Your module has been mounted at:"
echo $mpoint
echo
echo "You can unmount it by typing uloop"
echo
echo "Here is a list of the files:"
ls $mpoint
#Hace falta SI o SI tener ttyecho
ttyecho -n /dev/"$PTS" cd $mpoint
echo "$PTS
$xfile
" >/root/tta
exit
}
xiso()
{
mount -t iso9660 -o loop $xfile $mpoint
clear
echo
echo "#################################"
echo "Your image has been mounted at:"
echo $mpoint
echo
echo "You can unmount it by typing uloop"
echo
echo "Here is a list of the files:"
ls $mpoint
echo
exit
}
xdat()
{
mount -t auto -o loop $xfile $mpoint
clear
echo
echo "#################################"
echo "Your data file has been mounted at:"
echo $mpoint
echo
echo "You can unmount it by typing uloop"
echo
echo "Here is a list of the files:"
ls $mpoint
echo
exit
}
ximg()
{
mount -t auto -o loop $xfile $mpoint
clear
echo
echo "#################################"
echo "Your .img file has been mounted at:"
echo $mpoint
echo
echo "You can unmount it by typing uloop"
echo
echo "Here is a list of the files:"
ls $mpoint
echo
exit
}
xinit()
{
clear
echo
echo "Backing up initrd ...."
if [ ! -d $tmp ]; then
mkdir $tmp
else
rm -rf $tmp/*
fi
cp $xfile $xfile.bak
cp $xfile $tmp
echo $xfile > $tmp/initrd.txt
pushd $tmp
xz -d initrd.xz
popd
mount -t auto -o loop $tmp/initrd $mpoint
echo
echo "##################################################"
echo "Your original initrd.xz is still intact"
echo "and has been backed up as $xfile.bak"
echo
echo "A copy of your initrd.xz file has been mounted at:"
echo $mpoint
echo
echo "You can unmount it by typing uloop which will"
echo "recompress the initrd upon unmounting. New initrd.xz will"
echo "located at original location"
echo
echo "Here is a list of the files:"
ls $mpoint
echo
exit
}
# write the unloop script
echo
echo "Please wait while i gather some info ...."
echo
uloop()
{
cat > /usr/bin/uloop << "EOF"
#!/bin/bash
if [ `whoami` != "root" ]; then
su -c "uloop"
exit
fi
if [ -d /mnt/loop ]; then
mls=`ls /mnt/loop`
fi
if [ "$mls" != "" ]; then
umount /mnt/loop
fi
echo
echo "/mnt/loop has been unmounted"
echo
mvinit()
{
pinit=$(cat /tmp/mloop/initrd.txt)
chkinit=$(echo $pinit | awk -F / '{print$NF}')
if [ "$chkinit" == "initrd.xz" ]; then
rm -f $pinit
mv /tmp/mloop/initrd.xz $pinit
echo
echo "Your initrd.xz file has been repacked and moved to:"
echo $pinit
echo
else
echo
echo "This IS NOT a valid initrd.xz file"
echo
fi
exit
}
# Check for leftover initrd.xz
if [ -f /tmp/mloop/initrd.xz ]; then
echo
echo "There is still an initrd.xz file"
echo "located at /tmp/mloop/. Please remove"
echo "it and run uloop again"
echo
fi
# Compress the initrd file
if [ -f /tmp/mloop/initrd ]; then
pushd /tmp/mloop
xz --check=crc32 --x86 --lzma2 initrd
popd
mvinit
fi
exit
EOF
chmod +x /usr/bin/uloop
}
# check for umount loop script
uloop
# check that file given exists
if [ ! -f $xfile ]; then
echo
echo "Sorry, that file was not found"
exit
fi
case "$ext" in
.xzm)
xmodule
;;
.iso)
xiso
;;
.dat)
xdat
;;
.xz)
xinit
;;
.img)
ximg
;;
esac
clear
echo
echo "Sorry, no supported file found"
exit
Hace falta tener ttyecho. Os dejo este que he compilado:
http://goo.gl/JMdZI4 (http://goo.gl/JMdZI4)
Salu2
-
bueno , he probado el lsxzm
se podia ver el contenido de los xzm desde
/mnt/live/memory/images
________________
si el modulo xzm esta en otro hdd , no puede abrirlo.
en realidad creo que es por que la carpeta tenia en el name un espacio ...
-
lsxzm , linea 24
done <<<"$(unsquashfs -l $1 | cut -d/ -f2-)"
por
done <<<"$(unsquashfs -l "$1" | cut -d/ -f2-)"
fin del drama de los espacios... ;D ;D ;D
hay un limite ,y es que la shell , tiene para mostrar solo 1000 lineas, asi que se veran solo los 1000 ultimos ficheros ... si hay mas, no se veran los primeros.
________________________________
Acabo de mirar lo de las mil lineas de tope, y es una config en el prifle de la konsola de kde , ...
editar , desplazamiento ... pero lo maximo que deja poner son 99999 , osea si hay 100,000 o mas , tampoco lo veras todo ...
-
el segundo script , me monto bien el xzm, pero no lo desmonta
wifislax ~ # uloop /mnt/loop11573
/mnt/loop has been unmounted
pero sigue montado , y accesible.
ahora viendo esto creo que quieres que tras montar el xzm , se abra la ruta..
donde el "usage" .... mejor asi ..
echo -e "\033[1m$0 /path/to/module.xzm\033[0m"
echo -e "\033[1m$0 /path/to/file.iso\033[0m"
echo -e "\033[1m$0 /path/to/file.dat\033[0m"
echo -e "\033[1m$0 /path/to/file.img\033[0m"
echo -e "\033[1m$0 /path/to/initrd.xz\033[0m"
-
Eso ya lo conseguí con ttyecho ;)
El problema va a ser cuando desmontarlo? Para eso no he tenido ninguna idea
Salu2
-
Por cierto, deberías mirar el repo:
https://github.com/Byzantium/Byzantium/blob/master/porteus-scripts/
Puede que haya algo mas que pueda ser interesante. Yo solo me he fijado en esos 2
Salu2
-
Eso ya lo conseguí con ttyecho ;)
El problema va a ser cuando desmontarlo? Para eso no he tenido ninguna idea
Salu2
no entiendo lo que quieres decir , ...
se supone que se monta , para mirar algo de dentro sin necesidad de abrirlo que tarda mas , ... despues de ver lo que queremos se supone ya deberiamos cerrar el asunto ...
el script dice , usar uloop , puede sea algun script de ellos ...por eso no funcione.
aunque mirando el mensaje dice
/mnt/loop has been unmounted
cuando en realidad yo di la orden
uloop /mnt/loop11573
__________________________________________
File given will be mounted on a loop at /mnt/loop
You can use uloop to unmout loop.
sin embargo se montan con un numero despues de loop .....
-
#################################
Your module has been mounted at:
/mnt/loop20729
You can unmount it by typing uloop
Here is a list of the files:
root usr var
open DEVICE: No such file or directory
-
Cambia /mnt/loop$$ por /mnt/loop
Estuve experimentando, y se me olvidó dejarlo como estaba
Salu2
-
Cambia /mnt/loop$$ por /mnt/loop
Estuve experimentando, y se me olvidó dejarlo como estaba
Salu2
ok ,ahora ya lo desmonta , imagino si intentamos montar otro xzm, como el loop esta usandose saldra un aviso y no nos dejaria...
me aitorespondo , si intentas meter otro xzm , lo que pasa es que desmonta el que ya estaba antes, de forma que siempre queda montado solo uno , el ultimo , y se desmonta facil.
uloop es un script que crea mloop , ... no necesita ruta por que la lleva fija ....desmonta directamente /mnt/loop sin pasarle parametros ni nada.
uloop
y ya desmonta.
-
Si... Si se tiene una carpeta estática, no se podrá hacer mas de uno a la vez....
Salu2
-
no le veo a esto demasiada utlidad , ...mas que nada por que si necesitas editar algo , .... no puedes , asi que al final te toca descomprimir el xzm , hacer los cambios y volver a crear el xzm.
los xzm montados solo tienen permiso lectura ;D
lo que si estaria util , es poder montarlo , editar un fichero ,desmontar y quedase guardado ..eso si , pero solo para ver lo que hay dentro ... no se....
-
Si tienes un módulo de 300Mb, estas desde LiveUSB y necesitas extraer solo un par de archivos.... Yo creo que viene bien
Salu2
-
Si tienes un módulo de 300Mb, estas desde LiveUSB y necesitas extraer solo un par de archivos.... Yo creo que viene bien
Salu2
/mnt/live/memory/images
si es de un modulo que no es del sistema aun vale ... pero para los de serie, te basta con ir a esa ruta ..
incluso puedes usar el buscador de ficheros, sobre esa ruta , para aber dentro de xzm ,esta el fichero tal o cual ...
-
Sin activarlo XD
Pero bueno, si no le ves utilidad, no problem. Solo aseguraté de mirar la repo, a lo mejor hay algo que vale la pena
Salu2
-
Me suena haber visto algo de crypt....
Salu2
-
pero men ,....
cuando lo ACTIVAS , estas haciedo lo mismo que ese script ... lo monta en un loop .. y no gasta ..lo que no hay que usar es AUTOINSTALAR ,por que entonces te come las 300 megas de ram.
en live ACTIVAR SI ,AUTOINSTALAR NO ..a menos que necesites instalarlo por algo.
autoinstalar esta pensado para el hdd , donde ya no se usan loops.
-
con todo este royo , me he dado cuenta de algo ....
la accion de activar un xzm , lo monta en un loop , pero tambien copia el xzm a
/mnt/memory/images/modules/fichero.xzm
esta claro que va a consumir lo que ocupe ese xzm , ..NO OCUPARA LO MISMO QUE SI LO EXTRAES , un modulo xzm de 40 megas puede alvergar 200 megas en ficheros ... autoinstalar se comeria los 200 ...activar solo los 40 del xzm ... pero eso se puede mejorar..
no es necesario , copiar el xzm para montarlo , se puede montar directamente desde donde este , y el consumo entonces seria de tan solo 2-3 megas que es lo que se come de ram cada loop , ...
ESO SI SERIA INTERESANTE .... HABRIA QUE MIRAR ESO
-
Pues menos mal que te has dado cuenta de eso.... Yo creía que hacía falta "extraer" el contenido cuando se activaba el módulo.
Por eso a veces te decía que durante el desarrollo de los scripts, no podía con ciertos módulos. Solo para ver que tenían dentro, debía extraer TODO el módulo (de ahí este post, para evitar hacer eso para unos pocos archivos). En LiveUSB tengo unos 500Mb de espacio para trabajar.... Y se me esfuman en 0,
Salu2
-
Si te refieres al servicemenu de activar modulo mediante clic derecho, lo hice así porque después de activar un módulo lo eliminaba, y me daba mucho coraje que me elimine el módulo, si yo solo te he dicho que lo actives, ¿y si no tengo cpia que? ¿quien eres tu para eliminar mi módulo? ¡no toques! ¿porque tocas?!!... ;D
Entonces lo puse que primero lo copie y después lo active, y así elimina la copia y no el original.
-
pues después de activar , no elimina el xzm , de la carpeta /mnt/live/memory/
-
Pues entonces lo copia 2 veces ;D
Uno es el que no elimina, que eso lo hacía ya por su cuenta y yo no me había enterado, y otro es el que yo le puse que copiara que ese si lo elimina.
Voy a mirarlo.
EDITO:
No hace falta ni mirarlo, es normal que no lo elimine porque lo tiene montado en un loop, no se puede eliminar mientras está montado.
Y en realidad no es que eliminara el módulo cuando le das a activar, lo que hace es moverlo a /mnt/memory/images/modules/fichero.xzm, pero claro yo veía que desaparecía y me quedaba en plan... ¿donde está mi módulo :P?
Entonces ahora lo que hace el servicemenu es copiarlo a un directorio temporal y el script que se encarga de "activarlo" lo mueve a /mnt/memory/images/modules/fichero.xzm y desde ahí lo monta.
Todo está bien.
-
No me he enterado...
Todo tiene que ser como está o se puede evitar llenar memoria de mas?
Salu2
-
A ver, yo tengo una teoría sobre como funciona el sistema live:
Los módulos que están en la carpeta módules no se extraen, solo se montan en la raiz del sistema, y cada vez que modificamos un archivo, este se copia en /mnt/live/memory/changes, pero el archivo original sigue intacto comprimido en su módulo.
Entonces cuantos mas archivos se modifiquen en el sistema, mas espacio se ocupa en la ram, porque todo lo que está en /mnt/live/memory/changes está almacenado en la ram.
Por eso llega un momento en el que nos quedamos sin espacio.
Entonces cando usamos la opción "activar modulo", ocurre lo mismo, el módulo se monta en la raiz del sistema, y como está montado no se puede eliminar, así que no hay forma de ahorrar mas espacio.
Está bien como está.
-
https://sites.google.com/site/blognetenti/mtool.xzm?attredirects=0&d=1 (https://sites.google.com/site/blognetenti/mtool.xzm?attredirects=0&d=1)
La idea es hacer lo mismo que hace Dolphin cuando le das doble click a un archivo .tar.gz, se "mete" allí dentro (en el caso de mtool, solo en modo lectura)
En el futuro se puede cambiar mtool a algo mas intuitivo: viewxzm por ejemplo
Por ahora, debido a mis limitaciones en entorno KDE, solo funciona el invento cuando tienes una subshell abierta desde Dolphin (La pestañita Terminal)
Dentro del paquete está ttyecho y xdtool
El segundo paquete está porque a veces, cuando se abría /mnt/loop, te salían los paquetes del xzm anterior, y no el que acabas de abrir. Lo que hace xdtool es simplemente recargar la ventana.
Salu2
-
bueno , pues aclarado , ...si que es verdad que si eliminas un xzm activado , se estropean cosas.
la diferencia como digo , es tener claro , que en modo live ,la mejor opcion es SIEMPRE ACTIVAR MODULO , n o la opcion de autoinstalar.
autoinstalar = descomprime el xzm a la raiz , el consumo sera equibalente al tamaño del contenido del xzm
activar = montar el xzm en un loop , el consumo sera menor SIEMPRE , 3 o 4 megas del loop + tamaño del xzm comprimido
por ejemplo
un xzm de 50 megas conprimido y al abrirlo tenga 150
autoinstalado ocuparia los 150 megas
activado ocuparia los 50 en xzm + 4 del loop = 54