sábado, 20 de agosto de 2022

Excel e historia (VII): Las funciones inhabilitadas de Excel... ¡Aunque usted no lo crea!

Con la emisión de la versión 4.0 de Excel (1992) aparecieron varias funciones que son válidas incluso en las versiones de Excel de hoy en día como por ejemplo ALEATORIO.ENTRE, DIA.LAB, JERARQUIA, etc.; es más, lo real es que no existe una sola función que haya aparecido en alguna versión de Excel y que Microsoft luego haya decidido dar de “baja”, o en todo caso, no les ha dado de “baja” por completo ¿Cómo es eso? Pasaremos a conocerlo a continuación.

En 1992 todavía estaba en boga el lenguaje que programación que aquel entonces traía consigo Excel, es decir Excel Macro Language – XLM (Enlace), por lo que Microsoft incluye en la versión 4.0 del programa a tres funciones poco conocidas: ID.REGISTRO (REGISTER.ID), LLAMAR (CALL) y REGISTRAR (REGISTER). Estas funciones están agrupadas en las del tipo “Funciones definidas por el usuario instaladas en complementos” y aún se encuentra información sobre ellas en las páginas web de Microsoft: Enlace1, enlace2. y enlace3.

La función ID.REGISTRO devuelve el número de identificación del registro de la librería (DLL) especificada. Si la DLL no está registrada, la función realiza el registro y devuelve el identificador del registro. La sintaxis para su uso es la siguiente:

= ID.REGISTRO (Nombre_de_la_librería; Nombre_de_la_función; Tipo – Opcional)

“Tipo” es el texto que especifica el tipo de datos del valor devuelto y los tipos de datos de todos los argumentos de la DLL. La primera letra del argumento Tipo especifica el valor que se devolverá.

La función LLAMAR permite (permitía) usar funciones contenidas en librerías (DLL), creadas en C o C++, directamente en las hojas, pasando a través de dicha función los argumentos necesarios para que la función de la librería pueda interactuar en las celdas. La sintaxis para el uso de dicha función era la siguiente:

=LLAMAR (Ruta_de_la_Librería; Nombre_de_la_función; Cadena_Tipo; argumento1;… ; argumento27)

“Cadena tipo” hace referencia a un conjunto de letras que indican el tipo de cada argumento, siendo la primera letra el valor devuelto por LLAMAR y las siguientes las correspondientes al tipo de argumentos usados en dicha función.

La función LLAMAR también puede interactuar con la función C API "Excel4" de Excel lo que le permite utilizar parte de las funciones XLM en las hojas de cálculo.

La función REGISTRAR registra una librería (DLL), incluyendo las de la API de Win32. También puede especificar un nombre de función personalizada y nombres de argumentos. Su sintaxis es la siguiente:

=REGISTRAR (Nombre_de_la_librería; Nombre_de_la_función; Tipo; alias_de_la_función; argumento - Opcional; tipo_de_macro; categoría)

“Tipo” es una cadena que especifica los tipos de valor devuelto y los argumentos de las funciones. “Alias_de_la_función” es un nombre personalizado que puede dar a la función. “Argumento” se usa para nombrar los argumentos de la función. “Tipo_de_macro” es un número u sado para usa una función (se usa el 1). “Categoría” es un número de categoría (utilizado en la antigua funcionalidad de Excel).

Los números usados para los tipos, argumentos y similares se pueden ver en el enlace relacionado a “Llamar y registrar” que está líneas arriba.

Los problemas con estas funciones se comienzan a reportar a finales del siglo pasado y se hacen conocido como "Vulnerabilidad LLAMAR" y la “Vulnerabilidad de la función ID.REGISTRO”, las cuales permitían a un hacker ejecutar comandos a su gusto especificando una librería malintencionado mediante cualquiera de dichas funciones. Dichos problemas se reportaron para Excel 97 y Excel 2000 e incluso fue publicado el 26 de julio del 2000 por Microsoft a través de su “Boletín de seguridad de Microsoft MS00-051” (Enlace). El 28 de febrero del 2003 Microsoft publica un parche (uno para Excel 97 y uno para Excel 2000) que soluciona dichas vulnerabilidades, aunque a con la actualización SP3 de Excel 2000, Microsoft inhabilita las tres funciones e incluso cuando se intenta usar en las versiones actuales de Excel, sale el siguiente mensaje:

Lo raro es que Microsoft no las ha dejado de lado en su documentación web y se da a entender que funcionan y/o son válidas en las versiones actuales de Excel y ni siquiera hay mención a que están inhabilitadas, aunque no podemos usarlas y por eso, como dije al inicio, oficialmente no hay funciones que la corporación haya dado de “baja” pero ¿Podrían ser estas consideradas como las primeras y/o únicas hasta ahora? Eso es algo que solo Microsoft puede responder, aunque creo que podemos nosotros ir sacando conclusiones. ¡Hasta la próxima!

Abraham Valencia
Lima, Perú

No hay comentarios.:

Publicar un comentario