Promocion Web
Santa Klaus nos cuenta..
En algún momento..
.. alguien preguntó cómo eliminar los
directorios de FrontPage, MSN gaming Zone, Xerox, y algunos
otros en Windows XP. Y en otro momento yo respondí que se
podía cambiar el nombre al fichero
WINDOWS\SYSTEM32\SFCFILES.DLL
Yo lo tenía renombrado y no había notado nada porque en lo
tengo configurado para que trabaje al mayor rendimiento, es
decir, que las ventanas son como las de w95, no hay sombra
bajo los iconos del escritorio ni sobre el cursor, no hay
animaciones en los menús emergentes, etc, etc.
Al poner alguna de estas características he visto que no
funcionaban y lo he achacado a la falta del fichero
SFCfiles. Pero al volver a darle su nombre original vuelven
a aparecer las dichosas carpetas que Mocosoft quiere
meternos en la cabeza.
Entonces cogí el Hexworkshop y abrí la DLL. Los datos de
texto están escritos en unicode. Esta codificación utiliza
dos bytes por carácter (si se preguntan por qué se usan dos
es para poder dar cabida a otros idiomas diferentes del
inglés, sobre todo los orientales) de manera que el segundo
(al menos en inglés) es siempre cero. Es decir, el texto
%Program Files%
se representa en hexadecimal como
2500 5000 7200 6F00 6700 7200 6100 6D00
4600 6900 6C00 6500 7300 2500 5C00
Si deseamos buscar estos datos lo haremos en hexadecimal
porque en ASCII no podemos teclear el caracter nulo (00).
Buscamos esa cadena a lo largo del fichero y ponemos a cero
todos los textos que no nos gusten, como por ejemplo todos
los que se refieren a MSN gaming zone o a Movie Maker. Los
demás hemos de dejarlos tal y como están.
Nota: %Program Files% se refiere a la carpeta Archivos de
Programa. En español es difrente que en inglés, pero los
símbolos de porcentaje que enmarcan a "Program Files"
indican que se trata de una variable que tomará el valor
adecuado a cada idioma. Esto no debe preocuparnos ¿de
acuerdo?.
Pues bien, una vez puestos a cero todos los elementos
indeseados guardamos el fichero sacando antes una copia de
seguridad, por si hemos puesto un cero donde no debíamos.
¡Tacháaaaaaaaaan!, las carpetas no vuelven a aparecer.
Que lo disfruteis.
¿Cuál
es la difrencia entre USB 1.0 y 2.0? Por ahí
se dice que la velocidad. Si el hardware es
el mismo, ¿qué es lo que cambia?.
Tengo un portátil con
un pentium 133 y 16 Mb de RAM. Si, es un poco
antiguo, pero hace su trabajo e incluso más.
Tiene un puerto de infrarrojos y otro USB.
El de infrarrojos no es que sea muy rápido,
pero al menos no se cuelga nunca. El
USB ya es otra historia. Compré un
disco duro USB y cada vez que copio archivos
de más de 500 Kb, y a veces con menos,
el sistema se cuelga. Con la memoria USB también
ocurre, aunque con menos frecuencia porque
es más lenta que el disco duro.
Seguramente me dirán
que se cuelga porque es USB 1.0, pero no es
cierto: se cuelga porque el sistema operativo
está mal diseñado. Si mi USB
no es rápido pues que sea lento, pero
que no entre en coma... esa es la filosofía
de cualquier programador. En cambio la de
microsoft es: si no le funciona, adquiera
nuestro software. O bien: "consulte con
su proveedor de hardware".
¡Como que me van a hacer
caso a mí los de Toshiba! Me dirán
que es problema del software, y tienen razón
como demostraré ahora. Y los de microsoft
me dirán que lo que pone en el contrato
de licencia es que ellos no son responsables.
Así que mandamos a ambos a la mierda
y solucionamos nuestros problemas de manera
más sencilla que recurriendo a los
tribunales.
Con cualquier lenguaje de
programación, yo he utilizado Delphi,
podemos escribir un programa que abra el fichero
de origen, lea bloques de 16 Kb y los escriba
directamente en otro fichero (ojo con el último
bloque, seguramente tendrá
leídos menos de 16 Kb exactos). ¿Por
qué 16 Kb? Porque aunque microsoft
diga lo contrario, la memoria sigue estando
segmentada y 16 Kb ofrece rapidez y seguridad.
Podeis probar con bloques de 32 Kb, pero no
recomiendo el límite de 64Kb. 8 Kb
también se puede usar, pero rinde menos
que 16 Kb.
Así de fácil.
Ahora copio ficheros desde y en el dispositivo
USB. No se cuelga nunca y es mucho más
rápido que el explorer de microsoft.
Uno se pregunta qué es lo que hace
el explorer para colgarse. Y también
por qué es tan lento.
La cosa a ido a peor desde
W98. En XP, con un procesador a 2GHz y 512
Mb de RAM me aparece un mensaje que dice "Preparándose
para copiar...". ¿Preparando el
qué? ¿Y por qué un ordenador
tan potente es tan leeeeentooooo?
Respuesta: el ordenador no es lento, es un
maquinón. Lo lento es el sistema operativo.
El que quiera algo de efectividad
debe escribirse sus propios programas. No
sólo serán más rápidos
y no se colgarán, sino que además
podemos modificarlos y compartirlos para que
entre todos lo hagamos crecer y mejorar. Pero
claro, esa es la filosofía del código
abierto... :o), odiada por todos los fabricantes
de software.
santaklaus(arroba)vilecha(punto)com
PocketStars
v 3.2.5 es un programa que se intala en los
sistemas windows y en Pocket PC. Se puede
descargar una versión de prueba durante
15 días de www.nomadelectronics.com.
Nos
bajamos la versión de prueba para practicar
un poco. Según el manual, a los 15
días se desactivan algunas de sus capacidades.
Se puede activar en el menú Help/Registration...
pero nosotros vamos a crackearlo de una forma
poco ortodoxa: en vez de buscar el código
de activación vamos a hacer que siempre
nos queden 15 días de prueba. Lo podemos
hacer así porque no aparece ningún
nag molesto que nos avise de ello, ni nada
parecido.
Las
herramientas que necesitamos son:
-
Un desemsamblador. Yo uso Win32DASM.
- Un editor hexadecimal. Yo uso HexWorkShop.
Los
pasos son los siguientes:
1.
Instalamos el programa.
2. Antes de ejecutarlo por primera vez lo
cargamos con el Win32DASM. La razón
es que muchos programas generan claves escondidas
en el registro de windows, un lugar muy apropiado
para esconderlas puesto que se trata de un
vertedero en el que continúamente se
entierran datos.
Echamos
un vistazo a las funciones que importa el
programa (menú functions/imports).
Se suele hacer para ver si llama a funciones
de mensajes o de comparación de strings.
Verermos que importa funciones de unas cuantas
DLL's. Muchas de las funciones se importan
de MFC71.DLL
y tienen nombres como noname0200.
Hay 509 funciones de estas y parece que sus
autores no desean dar nombres ilustrativos
a las funciones. Si pretendían desanimarnos
no lo han conseguido, porque hay otras formas
de atacar.
También
echamos un vistazo a las referencias del menú
(refs/Menu references). Aquí no encontramos
nada interesante.
Vamos
refs/Dialog references y vemos que aquí
las referencias son de la forma DIALOGID_00A4.
Parece que siguen empeñados en no darnos
información, pero como tenemos algo
de adaptabilidad podemos conseguirla por otros
medios.
Vamos
a refs/String Data References. Allí
encontramos algunas interesantes; por ejemplo
la última:
"CLSID\{238396EB-CCD5-4d84-BAA2-AD07C74FAD01}"
Este
es presumiblemente el lugar del vertedero
donde el programa esconde sus datos (aún
no lo sabemos, sólo lo imaginamos).
No ejecutamos el programa aún, sino
que abrimos Regedit para buscar esa clave
y resulta que no existe. Bien, es una clave
propia de este programa.
3.
Ejecutemos el programa. Además de intentar
conectar con un Pocket PC mediante ActiveSync
(que cancelaremos) vemos que crea la clave
anterior en el registro. Contiene un valor
DWORD llamado t1. ¡Qué
poco originales!; se adivina fácilmente
que es el tiempo de primera ejecución
(no de la instalación). Pero está
en un formato raro. A mí me valía
256FD3. En decimal su valor es de 2453459.
4.
Ahora viene lo que parece más difícil
si no se tienen conocimientos suficientes,
pero no os preocupeis porque después
de este tutorial los tendreis. Los programas
de Astronomía (y muchos otros) utilizan
la llamada fecha Juliana, que simplemente
es la cuenta de días transcurridos
desde el 1 de enero de -4713.
El
que maneja algo de Astronomía está
acostumbrado a estas fechas, y las que rondan
los dos millones y media corresponden a estos
años, alrededor de los siglos XX y
XXI. No os quejeis, estamos crackeando un
programa de Astronomía y se supone
que sabemos algo de ella.
Bien,
¿a qué fecha corresponde 2453459?
Yo apostaría a que es la de primera
ejecución, pero podría ser la
fecha de expiración (el nombre t1 sugiere
lo primero). Nos vamos a http://www.numerical-recipes.com/julian.html
y allí tenemos un conversor de fechas.
Pero es mucho más irónico calcular
la fecha juliana del día en que ejecutais
el programa mediante...ja,ja,ja... el programa
PocketStars (en el menú Calculators/Julian
day).
Vale,
se corresponde la fecha de primera ejecución
con el valor del registro.
5.
Podemos decir que ya está todo en primera
aproximación. Un primer crack consistiría
en escribir un fichero de registro, el cual
se introduce automáticamente en el
registro cuando se hace doble click sobre
él. Estos ficheros son de texto con
extensión .reg y sirven para incluir
o excluir claves del registro. Para nuestro
programa tendría el siguiente contenido:
Windows Registry
Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{A38396EA-ACD5-4d84-BAA2-4D07C74FAD01}]
"t1"=dword:00256fd3
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{A38396EA-ACD5-4d84-BAA2-4D07C74FAD01}]
"t1"=dword:00256fd3
y
lo podríamos llamar CrackStars.reg
Cada
día habría que incrementar el
número para que aún quedasen
15 días y eso es bastante pesado, por
lo que haremos algo más divertido y
educativo. Pero antes de continuar os habreis
fijado que hay dos lugares en los que figura
el dato. Voy a explicar porqué busqué
la clave t1 en más partes:
Tras
probar a poner el valor 00256fd4 (ojo con
el final, es un 4, no un 3) para ver si me
daba números mayores de 15 en los días
restantes, me fijé que al volver al
registro había restaurado el valor
00256fd3. Por tanto debía tenerlo almacenado
en alguna parte y lo busqué en el registro.
No
diremos más sobre esto porque no es
el camino que vamos a seguir.
6.
Si desensamblamos el ejecutable y miramos
en los alrededores de la referencia al CLSID
veremos que hay una llamada a RegCreateRegExA
y más abajo otra a RegSetValueA.
Vamos
a dar un pequeño listado del desensamblado:
|:00417B3B
, :00417B62 , :00417CF8 , :00417D12 , :00417DD0
|:00417E1B , :00417F0D , :00417F36
|
:00415AE0 83EC10 sub esp, 00000010
:00415AE3 57 push edi
:00415AE4 8B7C2420 mov edi, dword ptr [esp+20]
:00415AE8 8B07 mov eax, dword ptr [edi]
:00415AEA 8D4C2408 lea ecx, dword ptr [esp+08]
:00415AEE 51 push ecx
:00415AEF 8D542424 lea edx, dword ptr [esp+24]
:00415AF3 52 push edx
:00415AF4 6A00 push 00000000
:00415AF6 681F000200 push 0002001F
:00415AFB 6A00 push 00000000
:00415AFD 6A00 push 00000000
:00415AFF 6A00 push 00000000
:00415B01 89442420 mov dword ptr [esp+20],
eax
:00415B05 B041 mov al, 41
*
Possible StringData Ref from Data Obj ->"CLSID\{238396EB-CCD5-4d84-BAA2-AD07C74FAD01}"
|
:00415B07 6800154500 push 00451500
:00415B0C 6800000080 push 80000000
:00415B11 C744244400000000 mov [esp+44], 00000000
:00415B19 C6050015450043 mov byte ptr [00451500],
43
:00415B20 A207154500 mov byte ptr [00451507],
al
:00415B25 A20E154500 mov byte ptr [0045150E],
al
:00415B2A A210154500 mov byte ptr [00451510],
al
:00415B2F C6051F15450034 mov byte ptr [0045151F],
34
*
Reference To: ADVAPI32.RegCreateKeyExA, Ord:01CDh
|
:00415B36 FF1500E04200 Call dword ptr [0042E000]
:00415B3C 85C0 test eax, eax
:00415B3E 7411
je 00415B51
:00415B40 8B442424 mov eax, dword ptr [esp+24]
:00415B44 C70000000000 mov dword ptr [eax],
00000000
:00415B4A 33C0 xor eax, eax
:00415B4C 5F pop edi
:00415B4D 83C410 add esp, 00000010
:00415B50 C3 ret
*
Referenced by a (U)nconditional or (C)onditional
Jump at Address:
|:00415B3E(C)
|
:00415B51 8B542408 mov edx, dword ptr [esp+08]
:00415B55 8B44241C mov eax, dword ptr [esp+1C]
:00415B59 33C9 xor ecx, ecx
:00415B5B 83FA02 cmp edx, 00000002
:00415B5E 8B542424 mov edx, dword ptr [esp+24]
:00415B62 0F94C1 sete cl
:00415B65 85C0 test eax, eax
:00415B67 56 push esi
:00415B68 890A mov dword ptr [edx], ecx
:00415B6A 741F je 00415B8B
:00415B6C 8B4C241C mov ecx, dword ptr [esp+1C]
:00415B70 8B542424 mov edx, dword ptr [esp+24]
:00415B74 6A04 push 00000004
:00415B76 8D44240C lea eax, dword ptr [esp+0C]
:00415B7A 50 push eax
:00415B7B 6A04 push 00000004
:00415B7D 6A00 push 00000000
:00415B7F 51 push ecx
:00415B80 52 push edx
*
Reference To: ADVAPI32.RegSetValueExA, Ord:01F9h
|
:00415B81 FF1504E04200 Call dword ptr [0042E004]
Que nadie se me asuste. No nos vamos a leer
todo... :o) sólo lo necesario. Después
de la llamada a la creación de clave
hay una comparación y un salto. Este
salto se produce si no existe la clave.
Bien,
el salto, resaltado en negrita, se produce
cuando no existe la clave. Esta función
crea la clave si no existe o la lee si existe.
La documentación sobre los parámetros
de las funciones del API de windows las podemos
encontrar en muchos lugares, como la ayuda
de Delphi. Pero el nombre ya es bastante explicativo
¿no?.
Si
se produce el salto se pone un valor en la
clave recién creada, que no es necesario
ir a buscar entre el código para saber
que se trata de la fecha actual, la de instalación.
Esa fecha viene como parámetro y se
calcula a partir de :00415B51.
Así
pues, lo que haremos será cambiar la
línea
:00415B3E
7411 je 00415B51
por
:00415B3E
7511 jne 00415B51
¿Cómo
afecta esto al programa? Al llegar a este
punto preguntará si existe la clave,
y si existe salta para poner la fecha actual
como primera fecha. Cada vez que ejecutemos
el programa ¡será el primer día
de ejecución! :o).
7.
¿Cómo cambiar ese valor? Los
códigos hexadecimales de estas dos
instrucciones son
je
74
jne 75
Así
que basta reemplazar el 74 por el 75 y ya
está. Esto se hace con el editor hexadecimal.
Pero cuidado, hay muchos códigos 74
en el programa y tenemos que elegir el adecuado.
No basta la dirección del programa,
puesto que cada uno se carga en la parte de
memoria que puede. Hay que buscar unos cuantos
valores hexadecimales significativos. Por
ejemmplo, con el hexWorkShop podemos buscar
la cadena
85C074118B442424
y
cuando la encontremos comparar algunos bytes
más por encima y por debajo para ver
si coincide con los códigos que muestra
el desensamblador.
Una
vez cambiado el 74 por el 75 guardamos el
programa (sacando una copia de seguridad del
original, por si acaso) y lo probamos.
Como
es nuestro primer día nos dirá
que quedan 15 días para la desactivación.
Así que en nuestro programita .reg
escribimos los siguiente:
Windows
Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{A38396EA-ACD5-4d84-BAA2-4D07C74FAD01}]
"t1"=dword:00256fd1
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{A38396EA-ACD5-4d84-BAA2-4D07C74FAD01}]
"t1"=dword:00256fd1
y
al introducirlo en el reguistro y arrancar
el PocketStars debería ponernos 13
días en el diálogo
de registro. Pero no, pone 15, que es el cambio
que hemos hecho. Así pues, funciona.
Notas:
1.
Siempre que se modifique un fichero hay que
sacar una copia de seguridad.
2. ¿Podráimos
haber adelantado el reloj antes de instalar
y ejecutar el programa y después atrasarlo
para que faltasen por ejemplo 1000 días?
Podríamos haberlo intentando, pero
esta es una protección antigua y no
creo que hubiese funcionado.
3. No lleva mucho tiempo
rastrear las protecciones y con un poco de
intuición, la manera más cómoda
y rápida de romperlas. Me ha llevado
más tiempo preparar este texto que
romper el programa.
4. Ahora que el programa
ya está crackeado carece de interés.
Es mejor escribir uno mismo sus programas
a medida.
5. Supongo que habreis mirado
a qué fecha corresponde 2453459. En
efecto, el 30 de marzo de 2005 (hoy para el
que escribe).
santaklaus(arroba)vilecha(punto)com
Si
la última vez experimentamos la maquinaria
de Windows machacando nuestra carne, hoy la
sentiremos sobre nuestros huesos;
Hoy
vamos a ver el dispositivo lpt1, que en la
jerga informática significa "line
printer #1", y se refiere a la conexión
a través del puerto paralelo, ese de
25 patillas que ahora se usa menos porque
los dispositivos moderno usan USB.
Lo
de impresora de líneas es porque en
los primeros tiempos las impresoras (matriciales)
imprimían línea a línea
en vez de carácter a carácter,
y eran máquinas grandes disponibles
en los centros de computación.
¿Y
qué tiene lpt1? Pues es el nombre del
dispositivo impresora, llamado así
en MS-DOS (y en todos los windows subsecuentes).
Probemos
en el explorer a crear una carpeta llamada
lpt1:
click derecho/nuevo/carpeta, la llamamos lpt1
y pulsamos ENTER. El nombre que aparece es...tachaaaaaaaán..."Carpeta
nueva". Es otra de las maravillas de
windows. Microsoft dice que windows es un
sistema operativo, pero realmente no es más
que una interface para el DOS de antaño.
Lpt1 es buena prueba de ello.
Nota:
siempre que deseemos actualizar el contenido
del explorer pulsaremos F5.
Ahora
hagamos lo mismo en el prompt del sistema.
Que noooooooooooo, que el funcionamiento del
prompt y de los comandos del explorer no es
el mismo, y ahora mismo lo vamos a ver:
Escribamos
el comando md Lpt1. Significa que vamos a
crear un directorio llamado LPT1. ¿Qué
ocurre? Nada. Literalmente, porque ni da un
mensaje de error ni crea un directorio (cosa
que sí hace el explorer, pero llamándola
como quiere). En MS-DOS, cuando algo iba mal
aparecía un mensaje de error, y cuando
todo iba bien no aparecía ningún
mensaje, sólo se volvía al prompt.
Aquí ha ido mal (no se ha creado el
directorio) pero no ha aparecido ningún
mensaje de error.
Ahora
hagamos una trampa. Tecleemos
md
\\.\C:\Lpt1
Tachaaaaaaaaán,
otra vez. El directorio ha sido creado...je.
Si
nos vamos al explorer podremos verlo con carpetita
amarilla y todo. Cambiemos el nombre de Lpt1
desde el explorer y llamémosle Lpt,
es decir, le borramos el 1 final. Tachaaaaaaaaaaaaaán.
El directorio se convierte en fichero. Y luego
dicen que el cambio espontáneo del
sexo de las ranas es raro...
Aún
no han terminado las sorpresas. Vayamos a
la ventana del DOS y digámosle lo siguiente:
dir
L*.*
(es
decir, lístame todo lo que comienza
por L).
El
listado incluye un fichero llamado Lpt (lo
que sería de esperar del cambio de
atributo-sexo) y ¡una carpeta llamada
Lpt1 que desde el explorer no se vé!.
Vayamos
al directorio Lpt1:
cd
Lpt1
Obtenemos
el mensaje de error "El nombre del directorio
no es válido". Pues si no es válido
¿por qué lo utiliza el sistema?
Está
bien, borremos el directorio:
rd
Lpt1
De
nuevo tenemos un mensaje de error: "El
parámetro no es correcto".
Está
bien, está bien, vamos a otra cosa.
Por ejemplo, vamos a borrar el fichero Lpt,
el que se generó por arte de magia:
del
Lpt
¡Anda!,
esta vez si que funciona y ha desaparecido
del listado (dir L*.*). ¡Ya no está!
No puede ser, windows no puede haber funcionado
bien, es imposible, windows jamás ha
funcionado ni funcionará bien... Vamos
al explorer y resulta que allí aparece
un fichero llamado Lpt (aunque sigue sin dar
muestras de existencia la carpetita Lpt1).
Ya
me parecía a mí.
Probemos
a borrarlo desde el explroer. Tendremos el
mensaje (redactado con mucha originalidad):
"No
se puede eliminar Archivo: No se puede leer
del disco o archivo de origen."
Ahora
resulta que el fichero Lpt no se llama Lpt,
sino Archivo. Y que no puede leer del disco
o del "archivo de origen".
Pos
fale. No problemo, igual que creamos un archivo
que no existe o una carpeta imposible de crear
las podemos destruir. Equispé pretende
dominar el ordenador, y nos prohíbe
hacer algunas cosas, pero a nosotros nunca
nos han gustado las prohibiciones y vamos
a hacer lo que nos dá la gana con NUESTRO
ordenador.
rd
\\.\C:\Lpt1
borrará
el directorio que no existe en el explorer
pero sí en la sesión de DOS.
Si vamos al explorer comprobaremos que sigue
existiendo el fichero Lpt, pero no hay carpeta
Lpt1. Si vamos al DOS veremos que no hay ni
fichero Lpt ni carpeta Lpt1.
Intentemos
borrar Lpt...je, je. De nuevo el software
de última generación nos presentará
el fichero en el explorer pero nos dirá
que no existe el fichero...justo lo que los
no entendidos en informática necesitan
para confundirse del todo.
Pulsamos
F5 un montón de veces, o sea, mantenemos
F5 pulsada, a ver si el sistema se entera
de que delante del monitor hay gente...Nada,
ni caso. El fichero Lpt sigue ahí,
insultándonos, riéndose de nosotros.
Ejecuto
ProcessXP, que es un Administrador de tareas
pero mucho mejor que el ofrecido por microsoft,
para ver si el handle del fichero aparece
por alguna parte (con este programa se pueden
buscar handles de fichero, para ver quién
los está utilizando), así que
busco lpt y me aparecen unos cuantos LPT1
utilizados por el spooler de la impresora.
Pero del Lpt ni rastro. Voy al explorer y
¡ha desaparecido! El solito, sin que
nadie se lo diga, ha viajado a otra dimensión,
y el equixpé sin interarse.
Ya
está bien por hoy. Hemos visto la gran
calidad de los productos microsoft y no creo
necesario repetirlo más.
santaklaus(arroba)vilecha(punto)com
Hagan
click derecho en cualquier directorio e intenten
crear un archivo que se llame con.txt (que
podría ser la abreviatura de conservas_y_embutidos.txt).
El sistema responderá que ya existe
ese archivo, lo cual es falso. Lo mismo ocurre
si intentamos llamar al archivo con.xls, o
con.rtf.
Curiosamente,
XP no deja crear archivos así llamados,
ni siquiera con otras aplicaciones. Entonces,
¿cómo se explica que me encontrase
en un Windows 2000 un archivo llamado CON.SERV.LS?
Intenté renombrarlo (si, estando como
administrador, por supuesto) y me decía
que el nombre del archivo era demasiado largo.
Intenté borrarlo y me negaba el permiso.
El
problema es que los sistemas de Microsoft
reservan algunos nombres que no pueden ser
utilizados por el usuario. En los productos
de esta empresa CON se reserva para la CONsola.
¿De
qué sirve ser administrador de un sistema
Windows si no puedes administrarlo?
La
solución: borré el archivo desde
la línea de comandos: "Del ."
me borró el archivo y no dijo ni pío.
¿En qué se basa el explorer
para manipular los archivos? Nadie lo sabe,
seguramente ni siquiera lo saben en Microsoft.
¿Quereis
otro experimento? Escribid en la línea
de comandos "edit con.txt" y vereis
el software de microsoft en acción.
Verdaderamente estos muchachos no saben gran
cosa de programación...¿sabeis
lo que dice EDIT? Pues nada más y nada
menos que "Cargando C:\CON:" después
de haber tenido que pulsar CTRL-C varias veces.
Supongamos
que escribo esto con wordpad y lo guardo como
"Sobre con.txt". Ya sabemos que
no puedo llamarlo CON.txt a pesar de ser un
nombre más que apropiado para un texto
que habla sobre CON. Ahora intentemos cambiarle
el nombre a CON.TXT. El mensaje es:
"No
se puede cambiar el nombre a Sobre con. Ya
existe un archivo con el mismo nombre. Especifique
otro nombre de archivo."
¿Qué
ha hecho el sistema? En realidad no hay ningún
nombre que sea con.txt, sino que está
intentando cambiar el nombre al mismo, es
decir, intentando renombrarlo sin renombrarlo...
que es lo que todo buen sistema operativo
debería hacer :oP
La
forma en que el archivo llamado CON.SERV.LS
llegó al W2000 sigue siendo un misterio,
y lo seguirá siendo para siempre, puesto
que he decidido dejar de perder el tiempo
con esta cuestión.
santaklaus(arroba)vilecha(punto)com
RECICLAJE
La
industria de la electrónica se ha felicitado
por la nueva normativa según la cual
los fabricantes tienen que asumir el gasto
del reciclaje de los productos. Para gente
normal esto sería un revés,
pues tener que desembolsar dinero para reciclar
no es del agrado de ningún empresario.