sábado 16 de julio de 2011

Consejos gratuitos para la hora de cobrar


Cuando dos técnicos de PC se sientan por casualidad (por casualidad o no, tanto que se sienten como que sean colegas) a compartir un mate o birra por mas de media hora, hay un tema de conversación que siempre de algún modo termina saliendo: el tema de los honorarios,.
Y yo no se si es que el viento nos amontona o es una sensación común a los laburantes independientes que tienen que lidiar con clientes, pero mis amigos y yo vivimos con la sensación de estar cobrando de menos.

Por eso, para mis amigos y para mi, para que lo recordemos a la hora de tirar un precio, para que lo completemos con el tiempo, van estos consejos gratis, que doy gratis porque estoy seguro de que nadie me pagaría por darlos, aunque quizás me pagarían mejor si los siguiera.

1) (Y principal) El laburo que hacemos es técnico, y saber distinguir el monitor de un televisor tiene su valor. No por nada todos nos pasamos horas instalando todo lo que nos cayó en las manos en vez de jugar al quake, no por nada sabemos arrancar el hirens y los pibes de 13 nos rompen el culo en el counter-strike.

Si estamos cobrando, y suponemos que podríamos vivir de esto, nuestra hora de trabajo debería valer lo suficiente como para mantenernos. Saquemos una cuenta, que nos gusta. Un empleado público (administrativo sin antiguedad) gana aproximadamente $3500 por 6 horas de trabajo de lunes a viernes*. Eso son 30 horas a la semana por $900= 30 pesos la hora.Por supuesto, este empleado tiene estabilidad, obra social, vacaciones y jubilación incluidas en sus 30 pesos. Digamos entonces 40 para equiparar. Es un piso bastante bajo, pero nos dice que una instalacion que nos lleva 3 horas no se puede cobrar menos de 120 pesos.

*Es cierto que se complica vivir con 3500 al mes, sobre todo si uno alquila y tiene, pongamos, un auto con el que trabaja y algún hijo que mantener. Pongo el objetivo en un mínimo para resaltar el punto.

2) La asistencia telefónica también es trabajo. Hay clientes que solo llaman cuando se les rompe algo y clientes que nos tienen al teléfono con el catálogo de Compumundo para ver qué notebook se compran. Y casi nunca dicen “que te debo?” antes de cortar. Por lo que podemos tener dos posturas: o les cobramos la próxima vez que nos traigan una máquina para arreglar (que puede ser nunca, claro) o ponemos la hora de laburo a 50 pesos.

3) Los trabajos tienen garantía. Al menos algunos de nosotros nos hacemos responsables por las máquinas y partes que vendemos, y los trabajos que salen del taller. Y eso es algo a tener en cuenta a la hora de presupuestar. Puede que el cliente conecte la máquina y no nos llame hasta la próxima o puede llamar al otro día porque no le anda el programa x, o porque el teclado quedó configurado distinto al que tenía, o porque conectó la impresora y no anduvo, o porque el disco que recién pusimos se partió al medio. Hay que ser explícitos a la hora de aclarar qué esta incluido y qué no, pero no tanto como para que el cliente piense que nuestro trabajo falla muy seguido. No es fácil. Y otra vez, el tiempo perdido en garantías se cobra después, o mejor antes. Digamos 60 pesos la hora.

4) Digamos que un cliente nos pregunta: A cuanto una reinstalación del xp? Nosotros nos atenemos al presupuesto como está hasta ahora, y teniendo en cuenta que la reinstalación se puede hacer en unas 2 horas decimos “120 pesos”.
El cliente acepta el presupuesto, y nos trae la maquina que hay que reinstalar. Es un pentium 3 con un disco de 10Gb y 128Mb, lleno hasta la manija de fotos. La lectora de CD no funciona desde hace años y la mother no bootea desde el pendrive. Al encender el equipo nos damos cuenta de que el trabajo va a tardar al menos 4 horas, entonces llamamos al cliente para acomodar el presupuesto. Si es mas que el doble, puede que el cliente (que mantiene el pentium 3 y no piensa gastar un peso) se lleve la maquina con el trabajo. Si es menos estamos regalando nuestro trabajo. En ambos casos estamos perdiendo plata, salvo que le cobremos por el presupuesto (que levante la mano el técnico independiente que pueda).

Y este es un ejemplo afortunado: también puede ser que la reparación se extienda al doble o triple del tiempo que estipulamos porque si, porque la mother no acepta el desatendido y hay que hacerlo a mano, instalar service packs, bajar drivers etc, porque el antivirus que instalamos se niega a arrancar y hay que buscar uno que lo haga, porque la webcam dice ser X pero el chip está tocado y el driver oficial no funca, y (coloque aquí su anécdota de horas perdidas).

Entonces, promediando las reparaciones que nos llevan mas tiempo de lo que pensábamos con las que nos llevan menos, salimos perdiendo otra vez. Pongamos entonces 70 pesos la hora.

5) A veces no podemos solucionar las cosas en nuestro taller (que por lo que vimos acerca de los tiempos suele ser lo mejor), y tenemos que ir a lo del cliente. Esto supone tiempo de traslado, movilidad, logística para encontrarlo o para encontrar al usuario que sabe que le pasa al equipo. Todo ese tiempo invertido se cuenta al la hora de cobrar, o de presupuestar, por lo que la hora de trabajo a domicilio no puede cobrarse menos de 90 pesos. Puede hacerse quizás un descuento en la segunda hora dividiendo el gasto del viaje, pero eso ya lo dejo a su criterio.

Invito a cualquiera que ejerza de técnico a exponer su tarifario, su criterio o su sistema. estoy seguro de que sus consideraciones van a servir para que un colega cobre mejor!

Enjoy! O mejor: charge!

PD: Cuanto son 70 pesos? Para aquellos colegas que no sean de Argentina, o para aquellos que lean este divague en el incierto futuro (buuuh!), 70 pesos son, aproximadamente:

15 litros de nafta super,
2 kilos de carne para hacer al horno,
14 litros de leche entera, etc.
Saquen ustedes la cuenta según su pais.

PD2: Hay un par de cuestiones que surgieron en los comentarios y que me parece atinado presentar acá.

1) Cuando la reparación es una pavada (por ejemplo llegar a lo del cliente y comprobar que la maquina está desenchufada, caso real BTW), y uno tiene la tentación de cobrar 20 pesos por el viaje, conviene no hacerlo. Es mejor cobrar una visita completa o no cobrar nada a que el cliente se quede con la impresión de que nuestro trabajo vale 20 pesos. Sentando precedentes así tenemos mas probabilidades de perder al cliente cuando queramos cobrar lo que el trabajo vale realmente o peor, abrimos la puerta a que el cliente nos recomiende a otros no porque trabajamos bien sino porque cobramos poco. Y eso nos lleva al punto...

2)Cobrar lo que el trabajo vale tiene otro efecto secundario positivo: espanta a los clientes con el bolsillo mas duro. Estos son los que siempre van a querer hacernos trabajar "de onda", los que nos van a llamar por cada pavada que les pase, los que van a cambiar de técnico ni bien encuentren otro que cobre mas barato, y van a volver con los problemas mas difíciles, los que el tecnico barato no puede solucionar; los que nos van a pedir un presupuesto para una máquina nueva cada seis meses y van a terminar comprando una en Carrefour. Hay que escapar de estos para tener tiempo para clientes fieles, que sepan lo que vale lo que hacemos y que confíen en que lo hacemos bien. Hay que cobrarles por todo y alegrarse cuando nos dicen "bueno, después te llamo...".

Enjoy!

jueves 14 de abril de 2011

Dragones.

En la película “Cómo entrenar a tu Dragón” hay un momento en que al protagonista le muestran un libro que tiene un extenso catálogo de dragones, con su peligrosidad, formas de ataque y modo de combatir. Nuestro héroe no tarda en comprobar que el libro es inútil porque a pesar de contener mucha información acerca de cada dragón, a la hora de enumerar métodos de defensa todos decían lo mismo: “Muy peligroso. Tirar a matar”.

Los que hacemos soporte técnico conocemos la sensación. Quizás de un modo menos épico pero no sin entusiasmo, nos enfrentamos con distintos tipos de alimañas, entre las que cuentan los virus. Y no han sido pocas las veces en las que, buscando algun método eficiente para deshacernos de alguno, nos topamos con el famoso “tirar a matar”.

La mayor parte de las páginas con información acerca de virus y métodos de remoción son como estas: Ejemplo1 , ejemplo2 .

Estos son los primeros resultados de una búsqueda acerca de la dupla de virus mgking.exe/arking.exe, conocidos y molestos virus de pendrive. Podemos notar a simple vista que las páginas están hechas con una plantilla, en la que se han rellenado los datos de los archivos y claves de registro que crea el virus, y el modo en que los antivirus lo llaman.

Y es completamente entendible, claro. Los virus mutan mucho mas que los dragones, y mantener un archivo extenso es una tarea que reite de Sísifo. Los pobres vendedores de lo que sea que vendan estas páginas tienen demasiado trabajo persiguiendo las búsquedas mas realizadas, tratando de recibir visitas a costa de agrandar su catálogo de páginas todas-con-la-misma-recomendación.

Debo decir que al menos sus sugerencias son interesantes (sobre todo en el primer link) : arranque en modo seguro, borre tales archivos, trate de matar los procesos, borre las claves de registro, use process explorer, pase el ccleaner. Eso es tener suerte en la búsqueda, porque lo mas usual es “Instale nuestro antivirus y nuestro antimalware, haga varios escaneos completos del sistema”, proceso que por supuesto lleva varias veces mas tiempo que reinstalar todo lo que hay en la máquina, y es recomendable únicamente en el caso de tener que perder mucho tiempo pero que parezca que estamos haciendo algo: “estoy pasando el antivirus”.

En el ABC de cualquier técnico/soporte que no resuelva todo reinstalando o tirando una imagen están todos estos métodos, junto con otros que los complementan o los completan: Borrar temporales y archivos sospechosos desde un miniXP, deshabilitar entradas con autoruns, restaurar asociaciones con FixEXE o habilitar la visualizacion de ocultos con RRT.

Estas acciones son similares para todos los virus que nos encontramos, y configuran el mínimo a probar antes de tomar la decisión de reinstalar.
Ya todos sabemos que no tiene sentido mirar el manual.

PD: un apunte sobre mgking/arking: una vez que entran en el sistema, el antivirus ya no los detecta, pero si captura los autorun.inf, b9v.exe y demases que estos amigos colocan en TODAS las unidades, sean discos físicos o de red. Por eso empecé a extender el consejo acerca de la carpeta \autorun.inf a las unidades de disco comunes. Si les interesa, aca les dejo un script para limpiar/crear los autorun.inf despues de deshabilitar el virus:

cls
echo Borrando/creando autoruns.
for %%d in ( C D E F G H I J K L M N O P Q R S T U V W X Y Z ) do (
if exist %%d:\autorun.inf attrib -s -h -r %%d:\autorun.inf
if exist %%d:\autorun.inf del /A:S %%d:\autorun.*
mkdir %%d:\autorun.inf
)
echo Presione cualquier tecla para salir...
pause > nul


Disfruten!

lunes 11 de abril de 2011

Qué le pasó al Hirens?

Hace un par de años (allá por febrero de 2009), el autor de este blog se separaba del amor de su vida, y escribía acerca del hirens 9.7 un apunte intrascendente acerca de cómo bootearlo desde el pendrive. Meses después mencionaba el hirens 10 de pasada en un post, sin dedicarle mas tiempo por ser mínimo el cambio de versión. Entre nosotros, también era mínimo el cambio en el autor; no porque no fuera necesario sino porque éste no sabía que lo fuera. Aunque acá estamos hablando del hirens, claro.

Ocupado en armarse una vida, mas interesado en sobrevivir que en postear, descargando sus obsesiones en otras redes, quien escribe alquiló un departamento, armó una rutina, se equivoco parejo y trató de seguir adelante sin chequear si había nuevas versiones del hirens, y tampoco si la vida que llevaba se prestaba para un upgrade.

En agosto del 2010 ese recorrido lo dejó donde había empezado, con diez kilos y varias manías de menos. Al tiempo de escribir la última entrada de este blog (llamada oportunamente “El regreso del Freak”) había vuelto a casa con mi esposa. Y si, soy yo quien escribe.

Mientras tanto, en algún punto del recorrido, el hirens que me acompañó desde el inicio del blog también había cambiado, abandonando los vicios de pirata, creciendo en tamaño y agregando utilidades.

Cual fue el motivo de su cambio? No lo se, como tampoco tengo claro cual fue el mio. Quizás haya sido simplemente el momento propicio.

Ahora, para los que como yo mantuvieron la versión 10, improviso un mínimo changelog:

  • Se eliminaron las aplicaciones comerciales: no tenemos, por ejemplo, el Acronis Disk Director y el Ghost. Se reemplazaron por sucedaneos gratuitos (no siempre con éxito)
  • Se agregaron un par de distribuciones de Linux (basicamente versiones de Recovey Is Posible, RIP).
  • Se modifico el mini XP para incluir drivers para placas wifi, entre otras mejoras.
  • Se agregaron MUCHAS utilidades para correr desde el miniXP, entre las que destacan el Partition Wizard Home Edition (que en este caso, hace de buen reemplazo del Acronis), la RRT (remove restrictions tool, para quitar restricciones del registro) y WinNTsetup, una utilidad de la gente de MSFN que automatiza la instalación de cualquier windows XP (inclusive los n-liteados) desde el propio miniXP que estamos arrancando (en el link tienen una versión que además instala vista/seven).


En resumen: tanto el autor de este blog (en adelante yo) como el Hirens Boot CD cambiamos. Habrá quienes se interesen mas por el primer término y quienes estén mas atraidos por el segundo. En todo caso, elijan el que quieran.
El nuevo hirens creció en tamaño, mientras yo recuperé con creces mis 10 kilos. Aquel perdió algo de funcionalidad en máquinas antiguas pero, a diferencia de mi, puede convivir en nuestros pendrives con su predecesor via el booteador de ISOs por aquí conocido.
Ambos perdimos velocidad y ganamos experiencia.

Espero que Hirens también sea más feliz.

lunes 9 de agosto de 2010

El regreso del freak: The Super Duper ISO booter

Desde el comienzo de los tiempos el ser humano buscó un modo de bootear una imagen iso desde un pendrive de forma automágica, es decir, sin tocar un solo archivo de configuracion, por el solo expediente de colocarla en una carpeta. Siglos han pasado desde entonces, y para que semejante hazaña sea posible fue necesario que primero se inventaran (o descubrieran según seamos aristotélicos o platónicos) los pulgares oponibles, las herramientas, el lenguaje, la rueda, el fuego, la imprenta, la electricidad, las computadoras, los cds, las imagenes ISO, los puertos usb, los discos extraibles, syslinux, grub4dos y grub2.

A nosotros, seres humanos que vivimos una época en la que todo lo anterior existe, nos queda entonces la obligación de disfrutar de nuestros inpulsos frikis haciendo uso de las herramientas a nuestro alcance.

En eso me encontraba cuando empece a investigar el entonces nuevo grub2, descubriendo que incorpora un interprete LUA, que hasta donde pude ver (tengo la referencia del lenguaje para leer, solo me da paja hacerlo) es un lenguaje de programación similar a C y que puede usarse como lenguaje scripting. Y entonces me surgió la curiosidad de saber si bootmanager+scripting me podían dar el famoso boot automático de isos por el que varios lectores preguntaron al comienzo de las andadas de este, su blog amigo, cuando incursionabamos en pendrives booteables. Y resultó que sí.

Y el pueblo: ¿Quiere saber de que se trata?

O mejor dicho: si no quiere saberlo, puede saltar directamente a la sección "Todo masticado", en la que encontrara una bonita descarga con, justamente, todo masticado.

Para los que quieran saber de que se trata, les cuento: Se trata de una coleccion de utilidades, scripts archivos de configuración robados de otros proyectos y colocados todos juntos para que funcione. Para dar crédito a los autores originales vos a explicar como funciona.

El script de instalacion es una modificacion (y semi traduccion) del que se encuentra al final de la pagina del hirens para bootear por usb, y se encarga de copiar los archivos grub.exe, syslinux.conf, menu.lst, sgd.iso y m.lua a la raíz del pendrive. Luego crea el directorio /iso y mueve sgd.iso ahi, y al final instala el sector de arranque de syslinux en el pendrive. Con esto tenemos todo instalado.

Al bootear, el pendrive lee el sector de arranque y carga el syslinux. Este lee el archivo de configuración syslinux.cfg y carga el grub4dos (grub.exe modificado para que no saltee el floppy) , que lee el menu.lst y carga la iso del Super Grub Disk (modificada para agregarle la entrada del Super Duper Iso Booter) , que lee el script m.lua (que es modificacion del script bootiso.lua que trae el SGD2) y nos muestra un menú con todas las iso que haya en el directorio /iso. Cuando seleccionamos una entrada del menú, grub2 vuelve a cargar grub4dos, con parametros de configuración que mapean la iso y bootean desde el sector de arranque.

Y por qué es tan complicado?

Es complicado porque al hacerlo me encontré con algunos problemas:

- No instalo directamente grub4dos como arranque porque syslinux es mas compatible con maquinas viejas, y de todos modos uso grub.exe después.
- No puedo bootear la iso desde syslinux porque no lo soporta.
- No pude editar el floppy de SGD2 porque no pude montarlo en linux o en windows. Si alguien quiere hacerlo y poner el grub.cfg de la iso lo espero en mediafire.
- No puedo generar el menú desde grub4dos porque no soporta scripts.
- No puedo bootear las iso desde grub2 porque no soporta chainload, y eso nos deja sin bootear muchas cosas (el hirens, por ejemplo. O el silverdisk).

Verán que son muchos items, poniendo solo los que se me ocurrieron y no pude resolver. Por otra parte, la ventaja del método actual es que nos quedan a la vista un syslinux.cfg y un menu.lst para agregarle lo que queramos!

Un poco de código:

CorraMe.bat

@echo off
echo.
set udrv=
for %%x in (syslinux.cfg syslinux.exe grub.exe menu.lst sgd.iso m.lua) do if

not exist files\%%x goto error
set /p udrv=Ingrese la letra del disco USB (Por ejemplo F:)
if "%udrv%"=="" goto nodrv
echo.
echo !! CUIDADO !!
echo.
echo ESTO INSTALARA SYSLINUX EN %udrv%
echo PRESIONE CUALQUIER TECLA PARA CONTINUAR (O CIERRE ESTA VENTANA)
pause
echo Copiando archivos al pendrive ...
for %%x in (syslinux.cfg grub.exe menu.lst sgd.iso m.lua) do echo copy /y

files\%%x %udrv%\ && copy /y files\%%x %udrv%\
for %%x in (syslinux.cfg grub.exe menu.lst sgd.iso m.lua) do if not exist

%udrv%\%%x goto errcopy
mkdir %udrv%\iso
move %udrv%\sgd.iso %udrv%\iso

echo Instalando el boot en el USB...
echo files\syslinux.exe -ma %udrv% -f
files\syslinux.exe -ma %udrv%
if errorlevel 0 goto ok
echo syslinux.exe error
pause
goto end
:ok
echo done
pause
goto end
:nodrv
echo nothing is selected
pause
goto end
:errcopy
echo Error while copying
pause
goto end
:error
echo file(s) missing (syslinux.cfg syslinux.exe grub.exe menu.lst sgd.iso

m.lua)
pause
:end



Este es el "instalador", modificacion del que viene en el paquete de syslinux del hirens. Primero chequea que existan los archivos necesarios en /files, después pide la letra de la unidad y copia los archivos. crea el directorio /iso y mueve ahi el sgd.iso .Despues escribe el boot en el mbr y sale, Lo que sigue son los mensajes de error que nos muestra si algo falla. Verán que no están traducidos, con lo que notarán mi lazyness.

Syslinux.cfg

default /grub.exe

Simple, carga el grub.

Menu.lst

timeout 2
default 0

title SuperGrubDisk ISO
find --set-root /iso/sgd.iso
map /iso/sgd.iso (0xff) || map --mem /iso/sgd.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)

Encuentra la iso del super grub disk, la mapea directamente o en memoria y bootea desde ahi. Esta forma de cargar las iso en grub4dos está robada del proyecto winsetupfromusb.

Grub.cfg (dentro de la iso)

...
#Super iso booter
menuentry "Super duper iso booter" {
search -f --set /m.lua
configfile /m.lua
}
...

Agregado la entrada del menu. Search es el reemplazo de find (diferencia entre grub4dos y grub2), y se pasa como archivo de configuracion el script que genera el menu

m.lua

#!lua

isofolder = "/iso"

function enum_file (name)
local title = string.match (name, "(.*)%.[iI][sS][oO]")

if (title) then
local source = "search -f --set /grub.exe \n linux /grub.exe --config-file=\"root (hd0,0); map /iso/" .. name .." (0xff) || map --mem /iso/" .. name .. " (0xff); map --hook; root (0xff); chainloader (0xff)\" "

grub.add_menu (source, title)
print ("titulo: "..title.. " ruta: "..source)
end
end

grub.enum_file (enum_file, isofolder)

Este es el mas robado (lo que implica que no hubiera podido programarlo yo sin leer muuuucho mas)! Para mas datos, está robado específicamente del script listisos.lua de esta pagina de ubuntuforums. Crea una funcion que por cada archivo terminado en .iso (mayuscula o minuscula) agrega una entrada del menu con los parametros definidos en source y title. Yo solo le cambié la llamada a la funcion bootiso.lua por la llamada directa a grub4dos con los parametros de arranque.

Y listo!

Todo masticado!


Acá tienen la descarga del instalador en rar. Se descomprime en cualquier lado (el escritorio, por ejemplo, aunque yo lo dejaría en el pendrive por si hay que restaurar) y al ejecutar CorraMe.bat pregunta la letra de la unidad y se instala ahí.
Para agregar una iso al menu solo hay que copiarla en la carpeta /iso en el pendrive.


Notas:

- Cuidado! Si hay otro sector de arranque, syslinux.cfg o menu.lst en la raiz del pendrive hagan un backup antes de instalar, porque el CorraMe.bat sobreescribe sin preguntar.
- El grub4dos intenta mapear la imagen directamente, y si falla lo hace en memoria. Esto último sucede cuando la imagen iso esta fragmentada en el pendrive, y aparte de ser lento consume memoria, por lo que si vamos a tirar isos de 700Mb en la carpeta, es recomendable wincontig.
- Desde seven o vista, hay instrucciones en la última posdata!
- Las isos booteadas no siempre andan.
- Puede fallar!



PD: para toquetear los archivos de configuracion y probar, les recomiendo este probador de boot basado en qemu (robado del paquete UBCD4Win) .

PD2: (Arreglado. No les debo nada) .Les debo los links a las paginas de hirens, grub4dos, grub2, syslinux, lua, wincontig, UBCD4WIN y mil mas. Capaz que mas tarde, es decir dentro de seis meses, con mi ritmo de publicación.

PD3: Soy lento para despedirme y escribo muchas posdatas. Pero si alguien prueba esto deje un comentario, para saber que no soy el único friki al que le interesa esto. O que si.

PD5: Enjoy!

PD4: En W7 o Vista tenemos una problema: necesitamos ser administradores para poder escribir el mbr, pero el sistema cambia el path a \windows\system32 cuando ponemos el modo administrador, con lo que el batch no encuentra los archivos. Para solucionar eso debemos:
1) Abrir una consola en modo administrador. Eso se hace buscando en el menu "cmd", y después con boton derecho sobre el ícono "Ejecutar como administrador".
2) Cambiar el path al lugar donde tenemos el archivo CorraMe.bat. En mi pendrive, el comando es cd "F:\boot tools\SuperIsoBooter"
3) Ejecutar el batch a mano desde la consola.
4) Debería funcionar!
Of course, si alguien tiene una solucion mas elegante, lo espero en los comentarios y será agradecido. No eternamente, pero agradecido.

miércoles 17 de febrero de 2010

Obsesiones surtidas: sincronizar la hora de una maquina en una LAN

Versión larga

Hay ocasiones en las que uno se embarca en tareas que (a ojos de terceros) pueden parecer desproporcionadas para su propósito original. Así, hay quienes queman una biblioteca para deshacerse de un libro, o escriben un libro para hacer de marco a un capítulo que ya tienen (la historia de Cortázar y el capítulo de los tablones en Rayuela es probablemente falsa, pero ilustra).

Pongamos como ejemplo un poema reciente, escrito para sacar de mi cabeza el loop de la primera estrofa, robada de "cada loco con su tema".

Sentidos

Por lo general
Me gustan las palabras
mas que los sonidos,
y los sonidos
mas que los colores

Pero claro

El frio del vaso
el sabor de una cerveza
en un dia de calor

El olor a manzana
verde en la cabeza
recien lavada de mis hijas

Tu piel en la yema
de mis dedos
como preámbulo

La obra de arte
de tu cuerpo desnudo

Valen mas que mil volando.




El poema y este blog, como todo lo que escribo, tienen ese defecto.

Hace unos días estuve tratando de resolver un problema: una máquina que no mantiene la fecha, que está atrás de un proxy sin soporte NTP y que no puedo abrir fisicamente. Las búsquedas en google acerca del tema me daban siempre salidas de relojes atómicos, foros con preguntas sin responder, servidores de hora shareware y demás.

Así que de intentar actualizar por internet pase a actualizar por lan, y de intentar instalar un servidor NTP propio a buscar como hacer un script usando los viejos "time" y "date".En algún momento, investigando las opciones del comando NET TIME me encontré este articulo del soporte de Microsoft, que solucionó mi problema.


Versión corta

El comando que hay que usar es:

net time \\maquinaenlaredconlahorabienpuesta /set /y

Conviene ponerlo en un .bat y cargarlo al inicio de la sesión.
Y eso es lo que quería decir!

PD: Tres días, tres entradas. Para mantener mi ritmo de publicacion de los últimos tres meses debería dejar de escribir hasta Agosto!

martes 16 de febrero de 2010

Obsesiones surtidas: Mejorando la compatibilidad de Grub4dos en el pendrive

Grub4dos es una herramienta increíble: puede bootear directamente linux, xp, vista y seven, puede montar diskettes o imagenes iso, y tiene una linea de comandos poderosa, que nos permite buscar las opciones corectas en vivo.

En mi pendrive de laburo el grub4dos se encarga de bootear un par de mini XP, el Hirens 10, la consola de recuperacion de XP, las ISO de Acronis TrueImage y Puppy 4.21 y el Slitaz, una mini distro que es rápida y maneja bien NTFS.

Lamentablemente para nosotros, los habitantes del subdesarrollo, algunas máquinas de las que son mayoría por estos lares (maquinas con DDR y sin SATA, sin muchas opciones para bootear desde usb) tienen problemas para llegar al menú.

PROBLEMAS Y SOLUCIONES

El primer problema es en el booteo. El síntoma es que al arrancar desde el pendrive el sistema se queda colgado con un cursor parpadeante en la esquina superior izquierda, y es incapaz de cargar el grub. La solución que nos propone la gente del Hirens es cargar grub.exe desde syslinux, que es un arranque mucho más amigable. El archivo que descargamos de la página de hirens no hace mas que instalar el syslinux, copiar a la raiz del pen el grub.exe y el archivo syslinux.cfg, que contiene solo la sentencia “default /grub.exe”. Elegante y conciso. Y funciona. Por supuesto, nosotros no podemos dejar tranquilo ese syslinux.cfg, pero eso es de otros posts que ya pasaron!

El otro problema, con el que me encuentro mas veces de las que quisiera, nos deja en la línea de comandos de grub sin mostrarnos nuestro menú. Esto sucede porque la bios esta reconociendo el pendrive como un diskette, y nuestro grub4dos esta seteado explícitamente para no buscar en floppies.

Cómo sabemos si es esa la causa? Buscando nuestro menu.lst desde la linea de comandos con find /menu.lst el comando nos devuelve un bonito (fd0).

La solución más directa es hacer a mano lo que el grub no quizo hacer automáticamente.

Tipeamos:

find --set-root /menu.lst
configfile /menu.lst


Y tendremos nuestro menú. Hay que tener en cuenta que estamos booteando con fd0 como root, lo cual no suele gustarle al hirens, pero los chainloaders del xp o las iso no tienen mayores problemas para arrancar.

Pero... para los enfermos como yo existe una solucion más permanente, que nos evita el delay de cargar a mano el menú. Podemos modificar las opciones de arranque del grub4dos.

Parte de la magia de este bootloader está en su capacidad de cargar automáticamente el menu.lst. Si lo arrancamos en una máquina lenta, y tocamos las teclas del cursor al iniciar, podemos entrar en un menú intermedio, cuyas entradas buscan al archivo menu.lst en el directorio raiz /, en /grub y en /boot/grub. Al editar estas entradas vemos al culpable de nuestras desdichas. La línea que busca el menu.lst es así:
find --set-root --ignore-floppies --ignore-cd /menu.lst

y la siguiente

configfile /menu.lst

Bien! Ahora sólo nos queda sacar la parte de “ignore floppies” del menú intermedio, para que el boot funcione de primera.

Pero dónde está ese menú? Esta es la parte divertida del procedimiento. El menú está en el archivo grub.exe (y en el grldr, pero como usamos syslinux ese no nos importa), y podemos editarlo directamente con un editor hexadecimal.

Voy a usar el TinyHexer, que es el que llevo en el pendrive. No por nada en particular.

El truco es buscar la cadena de texto “--ignore-floppies --ignore-cd /menu.lst” en el archivo, seleccionar la parte de “--ignore-floppies“ y eliminarla. Acá una muestra de cómo se ve en mi editor:



That´s all folks!

PD: Para los que quieren todo cocinado, aca les dejo mis Grub.exe y grldr modificados.

PD2: Calmadas nuestras obsesiones, ya podemos seguir viendo los capitulos de Fringe que nos quedan. Hasta luego!

lunes 15 de febrero de 2010

Ingeniería social básica, o el juego de los 3 bits

Ingeniería social es el nombre que los freaks de la informatica como yo le dan al trato con otros seres humanos. A mi en particular siempre me interesó el tema, sea desde el lado oscuro de la fuerza, investigando las formas que los hackers, spammers y creadores de virus usaban para que los usuarios ejecuten sus programas , o desde el otro lado (¿el lado claro?) mirando como los que saben de usabilidad se las arreglaban para que un tipo pudiera manejar algo totalmente nuevo como si ya supiese.

En nuestro trabajo como técnicos hay ocasiones en las que tenemos que usar ingeniería social para sacar información de los usuarios acerca de la falla del equipo. En este caso no se trata de conseguir un dato que el cliente nos quiera ocultar (como una contraseña, por ejemplo), sino de guiarlo para que nos de una informacion que él no sabe que tiene. Las dificultades de la tarea son varias:

a) El tipo cree que no sabe nada, por lo que nuestra investigación le resulta incómoda y/o vergonzante. Cuando le preguntamos que problema tiene solo suele repetir "yo de esto no se nada", y es complicado sacarlo de ahí.
b) El cliente está en shock. La máquina es como una parte de su cuerpo, y verla ahí inerte le provoca pavor, por lo que no atina ni siquiera a apagarla y volverla a prender.
c) Superado cierto número de preguntas, el susodicho empieza a pensar que nosotros no sabemos nada. Y es que nosotros deberíamos saber que le pasa a la máquina por ósmosis o clarividencia.

Lo cierto es que no somos nosotros los que pasamos varias horas por día frente a la máquina, y si lo fuéramos no seríamos capaces de cobrar por ellas. Por lo que muchas veces necesitamos esa información para trabajar.

Hace unos días volví a ver un capítulo de Cosmos (el 11: La persistencia de la memoria), en el que Sagan habla del juego de las 20 preguntas. Así como Akinator, con 20 preguntas bien elegidas contestadas con sí o no se puede identificar cualquier cosa de este mundo. No es poco: 20 bits nos dan (2^20)-1 posibilidades, poco mas de un millón. Con esa cantidad sería sencillo hacer un pre-diagnóstico de la máquina, lo que nos ahorraría tiempo de trabajo.

Pero la vida no es tan sencilla, y mas que Carl Sagan o el genio de la web nuestros clientes son como el genio de la lámpara o el rey de los minisúper: no nos permiten mas de tres preguntas.

Así con esos tres bits, tenemos que tratar de aproximar el diagnóstico.

Dejo un par de ejemplos como muestra:

Atención telefónica

Cliente: La máquina no anda (información=0).
Técnico: 1- ¿Prende alguna luz, o hace algún ruido?
C: Si, pero después no anda (1 bit)
T: 2- ¿Llega a mostrar el fondo de escritorio, y el botón inicio?
C: Si, pero la flechita no se mueve (digamos 2 bit)
T: 3- En su teclado tiene una tecla con el logo de windows. Está entre el control y el alt izquierdo. Si la aprieta: ¿Se ve el menú de inicio?
C: No sé, la compu está en mi casa y yo en el trabajo.(0 bits)

Ya está. Se gastaron las preguntas. Logramos reducir el problema a algunas posibilidades: O hay un programa al inicio que cuelga la PC, o hay un problema de temperatura, o bien el mouse está roto o desconectado. En el caso de que el cliente esté en su casa y comprenda la pregunta 3, la respuesta es la diferencia entre ir a lo del cliente con un mouse nuevo por las dudas o ir a retirar la máquina para ver en el taller.
También nos faltó el famoso “¿Ha probado apagarla y volverla a encender?”, que podría haber sido la tercera pregunta. Pero no hay nada que hacer ahora. Apostamos, y perdimos.

Otro caso similar:

Cliente: La máquina no anda.
Técnico: 1- ¿Prende alguna luz, o hace algún ruido?
C: Si, pero después no anda (1 bit)
T: 2- ¿Llega a mostrar el fondo de escritorio, y el botón inicio?
C: No, se queda la pantalla en negro con letras blancas (1bit).
T: 3- ¿Pasan varias pantallas con letras y después vuelve a empezar?
C (se fija): Sí, eso! (1bit)

En este caso tuvimos éxito. De "no anda" llegamos a "se reinicia continuamente", lo que nos dice que es un laburo real, con urgencia para el cliente y cobrable. Si la respuesta 3 era negativa podía ser un disco roto, o un diskette viejo en la diskettera, con un mensaje de "non system disk...". Por desgracia, para determinar eso nos hubiera faltado una pregunta. O una bola de cristal nueva.

Saludos!
Los dejo con sus clientes. Pregunten bien, y Good Show!

PD: Para aquellos preocupados por cuestiones de género, el post hace referencia a un cliente masculino. Por comodidad en la lectura me abstengo de poner cliente/a, tipo/mina, susodicho/a y demás correcciones.
Por el mismo motivo, el que se sienta mas cómodo podrá reemplazar "cliente" por "usuario". No suelo usar "luser", porque no quiero ofender al que me mantiene. Will you bite the hand that feeds you?

martes 10 de noviembre de 2009

Convite VIP

Cualquier día, en el laburo de 486...

Usuario: Che, 486. Podés venir? Tengo un mail que no puedo abrir.
486 recorre los diez metros hasta la maquina de Usuario, tratando de interpretar "mail que no puedo abrir": ¿Contraseña olvidada?¿Mayúsculas encendidas?¿Falla del navegador?¿Ausencia de conexión?¿Attachment no estandard?... Las apuestas son infinitas, aunque la experiencia suele acotar las posibilidades. Llega hasta la máquina y ve ésto.


(No exactamente, lo vio en Hotmail+IE. La captura es en gmail+firefox)

486 (a primera vista): No lo abras, es un virus.
Usuario: Cómo sabés?
486: Uno: Está en portugués. Dos: Intenta imitar el formato de los links a los adjuntos de hotmail, pero las palabras tambien estan en portugués. Tres: Quiere que abras el adjunto a toda costa. Cuatro: Todos los links llevan a "http://hostsite2008.blogspot.com/feeds/posts/default". Por eso: no lo abras, es un virus.
Usuario: Bueno, pero igual no anda!
486: Cómo sabés?
Usuario: Porque lo bajé al escritorio, le hice doble click y no hace nada...

Conclusión.
Querido encargado de mantenimiento de pcs con internet:Nunca subestimes las ganas que tiene un usuario de abrir un attach de fuente desconocida. En este caso, la bestezuela habilito los links del mensaje, bajó el archivo y lo ejecutó tratando de ver su invitación a la fiesta VIP. Y hasta llamó al técnico!


Información adicional para el gremio: El famoso convite vip es un virus bastante simple (hasta donde pude ver, al menos). Se ejecuta al inicio del sistema, y cada vez que uno se loguea en su cuenta de hotmail se automanda a todos los contactos. También deshabilita la opción para ver archivos ocultos. Hasta ahora lo detectan la mitad de los antivirus (con una falla alarmante de Avast!) , y aunque Firefox reporta la web como atacante, IE nos da el cartelito de abrir o guardar como si nada, por lo que no viene mal tener algun apunte para su desinfección.

El virus un proceso que se esconde detrás de una llamada legítima a una dll (RUNDLL32.exe), cosa bastante astuta porque lo hace más difícil de encontrar con Process explorer (RUNDLL32.exe es parte del sistema, y tiene firma digital de MS). De todos modos, el HijackThis lo botonea así:

(ya saben, click para ampliar y todo eso)

Para sacarlo cerramos todo, matamos el proceso rundll32.exe, habilitamos la vista de ocultos y de sistema y borramos a mano el archivo C:\WINDOWS\SYSTEM32\Snxmsh.exe. También corremos el HijackThis y arreglamos la entrada en el registro. En caso de que no nos permita habilitar la vista de ocultos podemos usar el bonito RegUnlocker.

Enjoy!

viernes 11 de septiembre de 2009

Cómo preparar un XP instalable desde USB en 3 pasos / Destripando WinSetupFromUSB



Los muchachos de MSFN y Boot-Land nos simplifican la vida poniendo en una gui sencilla de usar todo el conocimiento de sus foros sobre instalacion de xp desde pendrive, bla, bla, bla, etc.

Y que hay que hacer?

1) Bájese el WinSetupFromUSB desde acá e instálelo en su máquina.
2) Dígale al programita dónde está su cd de instalacion de windows y su pendrive/disco externo. Apriete GO.


3) Mientras espera, ponga un hielo grande en un vaso. Agregue una medida de Fernet Branca y cuatro o cinco de Coca Cola. Tómeselo y disfrute mientras espera.

Listo!

Y basta de intro y how-to. Pasemos a lo que nos interesa: Cómo lo hacen?

Básicamente, WinSetupFromUSB es una interfaz que maneja otras herramientas que ya conocemos. Espiando en su directorio de instalacion encontramos cosas que ya vimos (y llevamos en el pendrive por las dudas): grub4dos, syslinux, pe2usb, HP format tool, y otras que conocimos por bootland como RMprepUSB. También hay scripts y programas para preparar la instalación, y por lo que veo algún driver que reemplaza al que debíamos conseguir del SP1 del windows server 2003.

Así que cuando preparamos la instalación el programa se encarga de modificar lo necesario y copiar todo al pendrive, y además instala un boot basado en grub4dos, que divide la instalación en dos partes, arrancando la primera desde setupldr.bin (as usual) y la segunda desde el mismo pendrive corriendo ntldr, como vemos en su entrada del menú:

title First part of Windows XP Professional setup
root (hd0,0)
chainloader (hd0,0)/$WIN_NT$.~BT/SETUPLDR.BIN
savedefault 1

title Second part of Windows XP Professional setup
root (hd0,0)
chainloader (hd0,0)/NTLDR
savedefault

Todo muy lindo hasta acá. Ahora las malas noticias: La instalación sólo funciona tal como viene en mothers nuevas (que por lo menos reconozcan el pen como (hd0,0) y no como (fd0) ) y si bien dice soportar desatendidos, es necesario que hayan sido armados dejando habilitada la opcion para instalar desde DOS (que no está en nuestros desatendidos favoritos, como el winchiquito o las versiones updateadas del UE7). Como trampa, es posible engañar al instalador para que nos permita crear el usb copiando de un cd de windows original los archivos faltantes (todos los que empiezan con "winnt"), pero aun si esto pudiera hacernos pasar de la pantalla de carga de drivers (que yo no pasé) de todos modos creo que sería un dolor de cabeza: los desatendidos mas populares son muy dependientes del cd. Quizás los técnicos debamos esperar a que, ahora que existe la herramienta, algun amigo como BJ se ponga a armar el paquete con los scripts actualizados para pendrive.

Y entonces... por que tanto entusiasmo?

Bueno; para mi lo mejor que tiene este programa es algo que ya alabé en el instalador de Geexbox, y antes en unetbootin: por medio de una interfaz intuitiva, nos deja con configuraciones que funcionan para hacer las cosas que queremos hacer. Una mirada al menu.lst, por ejemplo, nos revela el modo más práctico de bootear desde una imagen iso que tenemos en el pen:

title Start AcronisMedia.iso from partition 0
root (hd0,0)
map /AcronisMedia.iso (0xff) || map --mem /AcronisMedia.iso (0xff)
map --hook
root (0xff)
configfile /grub4dos.lst || chainloader (0xff)

Esto es para mi como tener a Jaclaz (famoso en los foros que mas me interesan, y primero en la lista de agradecimientos) dictándome los comandos!
Vemos que mapean la iso a la dirección (0xff), y en la misma línea hacen lo mismo pero montándola en memoria (supongo que esa doble barra significa que hacen una cosa o la otra, segun cual funcione. Quizas sea mucho suponer). Después cambian la raiz a la iso montada, y al final se tiran a cargar bien una configfile de grub o directamente intentan cargar el bootsector con chainloader. Esta segunda opción es la que funciona con esta iso en particular (el cd de recuperacion de Acronis True Image). También funca para el silverdisk, y se me hace que entre las dos cubren gran parte de los booteables. Por suspuesto, también podemos hurgar un poco en la iso y escribir la linea correcta, que para algo venimos practicando con grub4dos!

Y no los molesto más. Si les interesa comentar lo que pudieron hacer arrancar (y cómo) los voy agregando al post. Por mi parte, pienso probar hirens, puppy y slitaz para empezar, ni bien tenga algo de tiempo para algo de diversion geek.

Mientras tanto, disfruten!
(Y si no pueden invitar, al menos cuenten).

viernes 21 de agosto de 2009

Virus de pendrive... en pendrives, donde va a ser!

Hace algunos años, los tecnicos de pc tuvimos que empezar a lidiar con los virus. En un principio se trataba de cadenas de código autoreplicante, que se anexaban a los ejecutables y los "infectaban". En esa época los antivirus se encargaban de escanear y limpiar los ejecutables y, cuando las rutinas de deteccion descubrían el virus antes de que estuviera lista la rutina de desinfección, colocar el archivo en cuarentena esperando la cura.

Los mecanismos de infeccion eran azarosos para los que no andabamos por BBSs: el único modo era contagiarnos mediante algun diskette con archivos infectados, o un virus del sector de arranque. Cuando se popularizaron las grabadoras, quizas alguno haya llegado por un cd. Después vinieron los virus de macros en documentos de office, y luego la fauna de troyanos que conocemos ahora.

A mi siempre me interesaron los aspectos de ingeniería social en la distribución, es decir, aquellos que en vez de explotar vulnerabilidades del sistema se encargaban de explotar debilidades del usuario. Para nombrar un par, los archivos de extensión doble del tipo "miramisfotosentopless.jpg.scr" en el msn, y las páginas de falsos escaneos de disco como la que vimos aca me parecen ideas geniales.

Hace algún tiempo (dos o tres años aca en argentina, o desde que empece el blog) se popularizaron los discos extraibles en cualquiera de sus formas: pendrives, mp3, tarjetas de memoria etc, y los hacedores de virus observaron ese crecimiento con los ojitos brillantes por la emoción. Entonces se dedicaron a crear virus de pendrive.

Desafortunadamente para ellos, los diseñadores de pendrives y sistemas operativos ya no son como entonces: los discos extraibles no tienen autorun automático como los cds, y no se puede infectar el bootsector como en los diskettes. Es decir, que no hay manera de que el pendrive con virus infecte a la máquina sin intervención del usuario. Con solo enchufarlo no basta.

Y como cualquiera sospecharía de un archivo llamado "miraestevideocachondo.wmv.exe" en la raíz del disco (bueno, no cualquiera, seguro que algunos le harían doble click si se encontraran el pendrive tirado, pero digo cualquiera con dos dedos de frente, se entiende...), nuestros amigos tuvieron que buscar otras formas, principalmente de ingeniería social, para que el usuario ejecute el virus por si mismo en el uso normal del pen.

Detallo aqui los dos métodos que vi "in the field", con la esperanza de que mis lectores-técnicos de campo agreguen las joyas que hayan encontrado:

1) El viejo autorun.inf: Como ya vimos en este blog, es posible crear un autorun para asignar resultados específicos a las acciones sobre el pendrive. Así, un doble click al disco extraible desde Mi PC ejecuta sin preguntar el archivo que se indique en la linea open= o shellexecute= , mientras que si hacemos boton derecho sobre la unidad tendremos un menú que podemos personalizar a gusto. También se ejecuta la linea open= si aceptamos la accion predeterminada en el cuadro de dialogo de reproduccion automágica.

Usando este mecanismo, muchos virus de pendrive (la mayoría) se copian a la raiz del disco, y crean un autorun.inf oculto, que ejecuta el virus ante cualquier acción del desprevenido usuario. De estos vi también algunos que crearon una carpeta (oculta también) que pretendía pasar como una de sistema (recycler, por ejemplo) para dormir tranquilos ahi dentro.

El especimen mas raro que encontré de este tipo es uno que consistía en un autorun.inf solitario (sin ejecutable a la vista) ,de 140k. Al abrirlo, aparecía la maraña de caracteres especiales que uno ve cuando abre un binario con un editor de texto, con alguna cadena legible a lo largo del archivo. Me imagino que sería un combo autorun/virus, lo cual sería interesante para tratar de descubrir como corno ejecutas un .inf, o algún método para evitar el borrado del autorun, lo cual sería inteligente, o algun truco para hacerme creer eso, lo cual sería humillante. Elijan la que quieran.

2) La nunca bien ponderada falsa carpeta: Esta la vi ayer, y me parece genial. Una compañera de laburo/cliente le compro un Mp5 a la hija, y me lo trajo porque no podía cargarle música, ni sacar las fotos de adentro, y el antivirus saltaba cada vez que quería abrir una carpeta. A pesar de eso, el aparato funcaba. Cuando lo conecté encontré algo como esto:


El fucking virus había ocultado las carpetas reales, y había creado sendos ejecutables con el mismo nombre e icono! También había un ejecutable suelto y un autorun, para no dejar vector de ataque sin usar. El usuario entraba al aparato, y solo podía ver los ejecutables, por supuesto, sin las extensiones… lo cual es un excelente modo de hacer que cualquiera haga doble click sobre tu virus.

A pesar de la inventiva de los muchachos, hay que decir que cualquiera de estos métodos queda al descubierto cuando tenemos acceso al pendrive con vista de extensiones, archivos ocultos y de sistema; y que es posible (por ahora, al menos) explorar cualquier pendrive sin riesgo abriendo el explorador de windows a mano, y simplemente eligiendo la unidad con un click en el arbol de directorios. Por supuesto, en una máquina limpia! Porque teniendo control sobre la maquina host, cualquiera puede ocultarte lo que no quiera que veas.

Para terminar, les dejo una segunda recomendación: inmunicen su pendrive, y los de sus usuarios. No es necesario instalar nada, ni llevar un antivirus. Basta con seguir el método de CoskiBukowski, creando una carpeta en la raiz con el nombre autorun.inf, asi cuando ponemos el pendrive en una maquina con virus el maldito no puede crear su autoarranque, y el pendrive colecciona los ejecutables sin contagiar. Esto nos deja sin el bonito autoarranque, pero nos libera de revisar el pendrive cada vez que pasamos por una maquina sospechosa.

Fin. Enjoy!