Solución a Pidgin – no conecta (inicia sesión) a servicio MSN Messenger – 12.Nov.14

El dia de hoy por la mañana se presento un error al iniciar sesión con los usuarios que utilizan Pidgin, BitlBee, Trillian o algun otro cliente de mensajería instantánea con soporte para el protocolo MSN.

En Pidgin podras observar que se queda en “Available – Connecting…”

En Trillian Simplemente no aparece la lista de contactos.

En BitlBee Muestra:

<root> msn – Logging in: Authenticated, getting buddy list
<root> msn – Login error: Connection timeout

El al parecer el problema surge a partir de un cambio por parte de Microsoft respecto que IDs de aplicaciones estan permitidos para recuperar la lista de contactos, en ID que se utiliza en los clientes anteriores es (CFE80F9D-180F-4399-82AB-413F33A1FA11) de Windows Live Messenger 2008 (8.5), cuando el cliente intenta obtener la lista de contactos, el servidor responderá con: Cabecera de aplicación Invalida  (Invalid Application Header Application ID) o bloquea el acceso.

Solución

Actualización
Dejo de funcionar el ID de la aplicación MSN 2009, se buscara una nueva forma de solucionar temporalmente por mientras Pidgin actualiza su arbol de IDs

Las claves de cliente de Windows Live Messenger 2009 y 2012 funcionan. Si tienes intención de volver a compilar cualquiera de estas aplicaciones con su código fuente, sólo es cuestión de editar el código para cambiar el ID por uno del 2009 o del 2012, que son AAD9B99B-58E6-4F23-B975-D9EC1F9EC24A y 484AAC02-7F59-41B7-9601-772045DCC569 respectivamente.

Puedes descargar el dll actualizado que dejamos a continuación o crearlo tu mismo en especifico para tu equipo con los pasos que se mencionan mas adelante.

[wpfilebase tag=file id=48 /]

Instrucciones para remplazar el archivo DLL

Actualización
Por el momento dejo funcionar el ID que se actualiza en el DLL, pronto se actualizara con una solución
  • Descargamos el archivo dll
  • Cerramos Pidgin completamente.
  • Buscamos la ruta de instalación de Pidgin (Ej. C:\Program Files (x86)\Pidgin\plugins  C:\Archivos de Programa\Pidgin\plugins)
  • Creamos una copia del archivo libmsn.dll
  • Remplazamos con el archivo libmsn.dll actualizado que descargamos.
  • Con este cambio ya nos podremos conectar a MSN

En un equipo con versión de Windows diferente a la que fue actualizado el equipo, se tuvo que realizar el proceso en este para que funcione, si es tu caso, favor de seguir las siguientes instrucciones.

Podemos utilizar un Script en Python para reparar automáticamente el cliente (Gracias a dequis por crear el script), de todas formas si deseas esperar es cuestión de horas o pocos dias para que todos los clientes se actualicen, pero por mientras veamos como solucionarlo por medio del script

Instrucciones para utilizar en Script en Python en Windows

  • Podemos crear el archivo patch.py copiando el código fuente que se encuentra al final del articulo en Bloc de Notas (Notepad) con extensión .py o Descargar el archivo zip – patch.py.zip, Descomprimimos el archivo y obtendremos un archivo llamado patch.py [wpfilebase tag=file id=50 /]
  • Instalamos python (Recomendado versión 2.7.8)
  • Buscamos el archivo dll libmsn.dll en la ruta de instalación de pidgin (posiblemente funcione en otros clientes).
  • Lo copiamos en el mismo directorio donde guardamos el archivo patch.py (Recomendado guardar en C:\X Carpeta ambos archivos para mayor facilidad, nosotros creamos una capeta llamada Patch)Folder Patch
  • Abrimos cmd.exe (Inicio buscamos Ejecutar (Run) en este escribimos cmd y damos Aceptar (OK)).
  • Vamos a la carpeta donde guardamos los 2 archivos (patch.py y libmsn.dll) si fue en el C:\Patch\ utilizamos el comando cd C:\Patch
  • Ahora escribimos: C:\Python27\python.exe patch.py libmsn.dllComando Python
  • Nos crea un archivo libmsn.dll.out al cual le quitamos el .out Archivo dll out
  • Buscamos la ruta de instalación de Pidgin (Ej. C:\Program Files (x86)\Pidgin\plugins  C:\Archivos de Programa\Pidgin\plugins)
  • Creamos una copia del archivo libmsn.dll
  • Remplazamos con el archivo libmsn.dll que acabamos de parchar.

 

Código Fuente

#!/usr/bin/env python
"""
MSN ApplicationId patcher for pidgin/bitlbee/whatever
(because you're too lazy to rebuild the whole thing.)
 
Usage examples:
 
python patch.py /usr/sbin/bitlbee
python patch.py /usr/lib/purple-2/libmsn.so
 
It will output the modified file to the current directory.
Backup the original file and replace it with the new version.
 
If you're lucky, it will work.
If not, don't be lazy and rebuild it.
"""
 
import os
import sys
import mmap
import shutil
 
WLM_2008_ID = b"CFE80F9D-180F-4399-82AB-413F33A1FA11"
WLM_2009_ID = b"AAD9B99B-58E6-4F23-B975-D9EC1F9EC24A"
WLM_2012_ID = b"484AAC02-7F59-41B7-9601-772045DCC569"
 
## you can try switching these around!
OLD_ID = WLM_2008_ID
NEW_ID = WLM_2009_ID
 
## examples (remove # from the relevant lines)
 
## if you want the 2012 ID instead (it was reported to cause issues)
#OLD_ID = WLM_2008_ID
#NEW_ID = WLM_2012_ID
 
## if you want to patch an already patched binary to use 2009 instead of 2012:
#OLD_ID = WLM_2012_ID
#NEW_ID = WLM_2009_ID
 
 
def main():
if len(sys.argv) < 2:
print(__doc__.strip())
return
 
filename = sys.argv[1]
out_filename = os.path.abspath(os.path.basename(filename) + ".out")
 
shutil.copy(filename, out_filename)
print("Writing to " + out_filename)
 
fd = os.open(out_filename, os.O_RDWR | getattr(os, 'O_BINARY', 0))
map = mmap.mmap(fd, 0, access=mmap.ACCESS_WRITE)
 
changes = 0
 
offset = map.find(OLD_ID)
 
while offset != -1:
print("Found old ID at offset: %d (0x%x)" % (offset, offset))
map.seek(offset)
map.write(NEW_ID)
 
changes += 1
 
offset = map.find(OLD_ID)
 
if not changes:
print("Not found")
else:
print("%s IDs changed" % changes)
 
if __name__ == '__main__':
main()

 

 

 

 

 

Califica este articulo

Fernando O.

Soy analista de sistemas actualmente trabajo en una empresa con mas de 200 empleados que utilizan equipo de computo al cual se les da soporte en el departamento.
Uno de mis pasatiempos fuera de la empresa es escribir artículos para PortalMasTips donde documento los problemas, inquietudes y detalles interesantes que se presentan.

Deja un comentario...

Compartir
Twittear
+1
Compartir
Pin
Stumble