Autor Tema: La sorpresa  (Leído 7352 veces)

0 Usuarios y 1 Visitante están viendo este tema.

vk496

  • Visitante
La sorpresa
« en: 09-09-2014, 01:48 (Martes) »
Viendo que ya empiezo a pensar lento, y no me salen cosas, dejo "la sorpresa":

lsxzm

Código: [Seleccionar]
#!/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

Código: [Seleccionar]
#!/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

Salu2



Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #1 en: 09-09-2014, 02:16 (Martes) »
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 ...

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #2 en: 09-09-2014, 02:19 (Martes) »
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 ...
« Última modificación: 09-09-2014, 02:26 (Martes) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #3 en: 09-09-2014, 02:32 (Martes) »
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"


« Última modificación: 09-09-2014, 02:34 (Martes) por USUARIONUEVO »

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #4 en: 09-09-2014, 02:34 (Martes) »
Eso ya lo conseguí con ttyecho ;)

El problema va a ser cuando desmontarlo? Para eso no he tenido ninguna idea

Salu2

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #5 en: 09-09-2014, 02:36 (Martes) »
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

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: Re: La sorpresa
« Respuesta #6 en: 09-09-2014, 02:41 (Martes) »
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 .....
« Última modificación: 09-09-2014, 02:43 (Martes) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #7 en: 09-09-2014, 02:44 (Martes) »
#################################
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

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #8 en: 09-09-2014, 02:46 (Martes) »
Cambia /mnt/loop$$ por /mnt/loop

Estuve experimentando, y se me olvidó dejarlo como estaba

Salu2

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: Re: La sorpresa
« Respuesta #9 en: 09-09-2014, 02:52 (Martes) »
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.
« Última modificación: 09-09-2014, 02:56 (Martes) por USUARIONUEVO »

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #10 en: 09-09-2014, 02:55 (Martes) »
Si... Si se tiene una carpeta estática, no se podrá hacer mas de uno a la vez....

Salu2

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #11 en: 09-09-2014, 02:58 (Martes) »
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....

« Última modificación: 09-09-2014, 02:59 (Martes) por USUARIONUEVO »

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #12 en: 09-09-2014, 03:01 (Martes) »
Si tienes un módulo de 300Mb, estas desde LiveUSB y necesitas extraer solo un par de archivos.... Yo creo que viene bien

Salu2

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: Re: La sorpresa
« Respuesta #13 en: 09-09-2014, 03:04 (Martes) »
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 ...




« Última modificación: 09-09-2014, 03:05 (Martes) por USUARIONUEVO »

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #14 en: 09-09-2014, 03:05 (Martes) »
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

vk496

  • Visitante
Re: Re: La sorpresa
« Respuesta #15 en: 09-09-2014, 03:11 (Martes) »
Me suena haber visto algo de crypt....

Salu2

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #16 en: 09-09-2014, 03:13 (Martes) »
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.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14463
Re: La sorpresa
« Respuesta #17 en: 09-09-2014, 03:25 (Martes) »
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

vk496

  • Visitante
Re: La sorpresa
« Respuesta #18 en: 09-09-2014, 13:34 (Martes) »
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

Desconectado geminis_demon

  • Colaborador
  • *
  • Mensajes: 2383
  • Prácticas precisas precisan práctica
Re: La sorpresa
« Respuesta #19 en: 09-09-2014, 15:10 (Martes) »
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.

La luz cree que viaja más rápido que cualquier otra cosa, pero se equivoca; da lo mismo lo rápido que pueda viajar, porque al final, la luz descubre que la oscuridad ha llegado antes que ella, y la está esperando.